diff --git a/XCS_Experiments/Experiment_XCS_XNCS_Maze5.ipynb b/XCS_Experiments/Experiment_XCS_XNCS_Maze5.ipynb new file mode 100644 index 0000000..888659e --- /dev/null +++ b/XCS_Experiments/Experiment_XCS_XNCS_Maze5.ipynb @@ -0,0 +1,2609 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import copy\n", + "\n", + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_maze" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "('0', '1', '0', '1', '1', '1', '1', '1')\n", + "\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" + ] + } + ], + "source": [ + "maze = gym.make('Maze5-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS\n", + "from lcs.agents.xcs import Configuration as XCSConfig\n", + "from lcs.agents.xncs import XNCS\n", + "from lcs.agents.xncs import Configuration as XNCSConfig\n", + "\n", + "from utils.xcs_utils import *\n", + "from utils.nxcs_utils import *\n", + "\n", + "XCScfg = XCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_maze_metrics)\n", + "\n", + "XNCScfg_no_mods = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=100,\n", + " update_env_input = False,\n", + " cover_env_input = False,)\n", + "\n", + "XNCScfg_update = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=100,\n", + " update_env_input = True,\n", + " cover_env_input = False,)\n", + "\n", + "XNCScfg_cover = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=100,\n", + " update_env_input = False,\n", + " cover_env_input = True,)\n", + "\n", + "XNCScfg_both = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=100,\n", + " update_env_input = True,\n", + " cover_env_input = True,)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting XCS\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with enviromental input during cover\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with enviromental input during update\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with all enviromental inputs\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n" + ] + } + ], + "source": [ + "from utils.xcs_utils import avg_experiment as XCSExp\n", + "from utils.nxcs_utils import avg_experiment as XNCSExp\n", + "\n", + "number_of_experiments = 10\n", + "explore = 1000\n", + "exploit = 1000\n", + "print(\"Starting XCS\")\n", + "df = XCSExp(\n", + " maze=maze,\n", + " cfg=XCScfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False\n", + " )\n", + "print(\"Starting XNCS\")\n", + "df_no_mods = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_no_mods,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False\n", + " )\n", + "print(\"Starting XNCS with enviromental input during cover\")\n", + "df_cover = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_cover,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False\n", + " )\n", + "print(\"Starting XNCS with enviromental input during update\")\n", + "df_update = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_update,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False\n", + " )\n", + "print(\"Starting XNCS with all enviromental inputs\")\n", + "df_both = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_both,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False\n", + "\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "df_all = pd.DataFrame(df)\n", + "\n", + "df_all['steps_in_trial_no_mods']=df_no_mods['steps_in_trial']\n", + "df_all['steps_in_trial_update'] =df_update['steps_in_trial']\n", + "df_all['steps_in_trial_cover'] =df_cover['steps_in_trial']\n", + "df_all['steps_in_trial_both'] =df_both['steps_in_trial']\n", + "\n", + "df_all['population_no_mods']=df_no_mods['population']\n", + "df_all['population_update'] =df_update['population']\n", + "df_all['population_cover'] =df_cover['population']\n", + "df_all['population_both'] =df_both['population']\n", + "\n", + "df_all['average_specificity_no_mods']=df_no_mods['average_specificity']\n", + "df_all['average_specificity_update']=df_update['average_specificity']\n", + "df_all['average_specificity_cover']=df_cover['average_specificity']\n", + "df_all['average_specificity_both']=df_both['average_specificity']\n", + "\n", + "df_all['fraction_accuracy_no_mods']=df_no_mods['fraction_accuracy']\n", + "df_all['fraction_accuracy_update']=df_update['fraction_accuracy']\n", + "df_all['fraction_accuracy_cover']=df_cover['fraction_accuracy']\n", + "df_all['fraction_accuracy_both']=df_both['fraction_accuracy']\n", + "\n", + "df_all['knowledge_no_mods']=df_no_mods['knowledge']\n", + "df_all['knowledge_update']=df_update['knowledge']\n", + "df_all['knowledge_cover']=df_cover['knowledge']\n", + "df_all['knowledge_both']=df_both['knowledge']" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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bOMdDEs6BUNequmwlHpAnfkrtYlK/sUYd+4k86dlnOkxjjydkR66f9E3HwktRtZ0aEodJ6W0lXO+hi6eVyrpHBsbS0xMTI2Wdd69ezePPPIIAOvXr2fr1q1Fz02ePJlly5ZV5C3XuIULF/LQQw+Vus6l77euUMm/kNVkIunlWZjDWpOc58tJv+3cnpNZoRouinKpypi4vbSSzkCNlnXu2rUrc+bMAepuMqyouvp+q32Eb22V9sU8TNHRpEz/GHlM4u/yF95d/geeYTUdmlILvb3zbY6nHy/z+lYpyTVZsNdrr3gAaOnVkme6l17dvKSSzhdUZVnndu3asWnTJtzd3fHx8eGDDz5g4sSJTJgwgUmTJqHT6Zg9ezaffPIJn3/+OVqtlm+//bYovo0bN/L++++TlJTEO++8w5gxlxfz/fbbb5kzZw4mk4kePXowd+5ctFotLi4uPProo6xYsQJHR0d+//13HBwc6NChA1FRUWg0GnJycmjRogVRUVHo9f8VQps8eTKjRo0qej0XF5eishYvvfQS3t7enDhxgv79+zN37lw0Gg0LFizgzTffJCAggObNm2NvbyvCt3z5cl577TVMJhPe3t4sWbKE3Nzcy95vy5YtmTZtGnFxcQB8+OGH9OnTp9Tfa01QZ/5A/unTpM6bh/Oo0RyPlsR6HmacnQX6PFLToSn1xIWB9Nfa4n+hpPPjjz/Ohx9+eFFJZ7B9G3jvvfewWP6rBVPWss7jx49nyZIlRUXhiuvTpw9btmzhyJEjREREsGnTJgC2b99Oz549i9YLCwtj2rRpPP744+zfv59+/foBkJiYyObNm1mxYkXRN5fijh07xtKlS9myZQv79+9Hq9WyZImt5qPRaKRnz54cOHCA/v378+WXX+Lu7k6HDh3YsMFWYHj58uUMHz78osR/NTt37uS9997j0KFDnD59ml9++YXExERefvlltmzZwtq1azl69GjR+n379mX79u3s27ePcePG8c4775T4fh999FEef/xxdu3axc8//8z9999f5piqU4M/85dWK4kvvYzWyYmsYfcgfzlDfuA/tB4xG3QVL7ur1G9XO0O/VGaOibj0HJr7u+KgL2Eil3K4UklnqLqyzv369WPjxo2EhoYyffp05s2bx5kzZ/Dy8sLFxeWqMd98881oNBpat25NcnLyZc//888/7Nmzh27dugGQm5uLn58fAHZ2dowaZSul3qVLF9auXQvA2LFjWbp0KYMGDeKHH37gwQcfvGocxXXv3p2IiAgAxo8fz+bNm9HpdAwcOJALVYTHjh3LyZMnAUhISGDs2LEkJiZiMpkIDw8vcb9///33RQeNrKwssrOzcXV1LVd8Va3Bn/lnLltG7p49+D39NDu3xJDhmMQNgUBTVcRNqTyV0eYPVy/pDFVT1rl///5s2rSJTZs2FSXHZcuWFZ3ZX82FphOgxPLEUkomTZrE/v372b9/PydOnGDWrFmA7dvOhYOXVqvFbDYDcNNNN7Fq1SrS09PZs2cPgwcPvmy/Op2u6HOQUl50PeTSA+KFx1c6UD788MM89NBDHDp0iC+++IK8vLwS17NarWzbtq3ovZw5c6bWJX5o4Mm/4Nw5zr07G6fu3cnrNJjcZD2xvhsZMvKTmg5NqWfMFong2ur6lKWkM1RNWefg4GBSU1OJjIwkIiKCvn37Mnv27BKTv6urK9nZ2eV6b0OGDGHZsmWcO3cOgPT09MuqlV7KxcWF7t278+ijjzJq1Ci02su/UYWFhbFnzx4Afv/9dwoKCoqe27lzJ9HR0VitVpYuXUrfvn3p0aMH69evJy0tjYKCAn766aei9c+fP09gYCAAixYtuuL7HTZsGJ988l8O2b9/fzk+ierToJN/8ptvIvPzafTKLLb9ugmTNo/urSzoPVVNc6Vyma1WtBpNqc0vV1NSSefjx48XtXsX9/zzz5OQkFD0ePr06QwaNIhu3brRtm1bBgwYgJOTU1FZ5xYtWtCxY0defvnlK5Z17tGjB82bNwdszUBnzpyhb9++l61344038uuvv9KxY8eiawNX07p1a1577TWGDRtG+/btGTp0aInfai41duxYvv32W8aOHVvi81OmTGHDhg10796dHTt24OzsXPRcr169mDlzJm3btiU8PJxbbrmFgIAAZs2aRa9evbjuuuvo3Llz0fqzZs3i9ttvp1+/fvj4+Fzx/c6ZM4fdu3fTvn17Wrduzeeff16mz6C6VWlJ58pU2SWds9evJ2HadHwffQSn28cz/8WdHPPbymtPP4ins1+lvY5Sf1xLSefYNCP5ZivN/Wvf1/+GaP369cyePfuib0f1QXlKOjfIM3+r0UjSq69i17QJ3vfdx97vf0ZIHf7tDCrxK1XCbJGqlLNSqzTI3j4pcz7GfDaR0O+WYM2M4+AJd+Ldj3PP4ClX31hRKsBslTjoG+S5Vq00cODACg1mq08a3F9j7uEjpH/zDR7jxuLUqROnv/0cafYir3k8LbwuH9yiKJXBbLWiU7N3KbVIg/prlGYziS+9iNbbC78nnoBjf7A5Lows+zRuGKy6dipVwyolFlXUTallGlTyT1/8DflHj9Ho+RfQ2mtI/f1jcvNaEx98gEGhA2s6PKWeslRSH39FqUwNJvmbEs6Q8vHHuAwahOvwYbDxHTandsMsTHQd0AydpkFe/lCqgdmikr9S+zSI5C+lJOmVV0AIGr34AiLlBHlbFpKQO4AovwPc1v7mmg5RqcfMhSNMr7XNX5V0VipTg0j+WX/+iXHTJvweexR9QAD8+ST7TCMQVjt8u2lxt3ev6RCVeuxCs8+1dvVUJZ1rLylliQXxarN639ZhOX+e5DfexKFtWzzvugsOLUNGb2Zf3mISXaOY1Gd0TYeo1EFJb7xB/rGylXQ2WaxozVaS7HWlVvW0b9WSRs89V+q+VEnn8pV0Tk5OZtq0aUV1jT777DN69+7N+++/z/z58wG4//77eeyxx3jmmWcIDQ0tKhA3a9YsXF1d+d///se7777Ljz/+SH5+PrfccguvvPIKMTExjBw5kkGDBrFt2zZ+++23Ektj1Fb1/sz/3OzZWDIzCfi/VxEFBljzPNEutyFzXMhrmUgzz2Y1HaLSAFRWa78q6Vy+ks6PPPIIAwYM4MCBA+zdu5c2bdqwZ88eFixYwI4dO9i+fTtffvllUZnmpUuXFm37448/cvvtt7NmzRoiIyPZuXMn+/fvZ8+ePWzcuBGAEydOMHHiRPbt21enEj80gDN/p+7d0QcG4dCqFayaCYZzbNDfjFF/nusH174JFpS64Wpn6MUlZORgzjMTFuBWKa+tSjqXvaTzv//+W3RtQ6vV4u7uzubNm7nllluK6vzceuutbNq0iUceeYRz585x9uxZUlJS8PT0JCQkhDlz5rBmzRo6deoEgMFgIDIykpCQEEJDQy86+NUl9T75u994o+1O0iHY+QWZLR8iZ70zCRGb+V/o8zUbnNIgVGZph+Ilnfv27cu4ceMICAi4aJ3nnnuOMWPG0L9/f+Diks4X6tdfql27drRr144JEyYQHh5+WfLv378/n376KXFxcbz++uv8+uuvVVLS+c0337zsudJKOj/77LOllnQuSWn1zMaMGcOyZctISkpi3LhxRes/++yzPPDAAxetGxMTc1GhuLqm3jf7AGC1wsr/gaMnG3OHYREWOg0MR6u5tkk1FKUszJU0wEuVdL5YWUo6DxkyhM8++wwAi8VCVlYW/fv357fffiMnJwej0civv/5a9D7GjRvHDz/8wLJly4quSwwfPpz58+djMBgAOHPmTFGcdVm9P/MH4MB3EL8D0/Vzif0mj1ifw7zcsXqmVjuYkMn2qDQ8nOzwcrLDy8UOb2c7PJ3tcLXXXVOJX6VuMFutOOmv/V+tpJLOCxcuZMOGDZcl7Oeff76omQJsJZ0NBgPdunVDr9ej1+v53//+V1TS+YEHHsDR0RFnZ+dSSzpfuJbQr18/nn322SuWdB4zZgy///77RRekS1O8pLPVakWv1/Ppp59etR197Nix3H777RcdwIr76KOPmDp1Kl9//TVarZbPPvuMXr16MXnyZLp37w7YLvhe+KzatGlDdnY2gYGBRd+ohg0bxrFjx+jVqxdgO+h8++23JR5s6pL6X9I5Jx0+6QreTdkR+jG7l50h6/pDPHvTo5UfZDFSSr7ZHsury48WzeJ0KTutBk9nPZ5Odni72OHlbI+Xk97206XwYOFsh6ezHndH281Rr1UHjBpS0ZLOR86cx9PZjsYejlUQlaL8pzwlnav0zF8IMR8YBZyTUrYtXOYFLAXCgBjgDillRpUF8e//QW4G8vrZ7Pk4mhTnZCb0G1VlLweQV2Dhxd8O89OeBAa39OPNW9thMltJN5pIN5pIM5rIKPyZbswn3VhAujGfQxmZpBtNZOWZr7hvvVbg7qjHzfG/A8Klt0uf83axw9fFXh00aoDVKrFIVddHqX2qutlnIfAJsLjYspnAP1LKt4QQMwsfl2827PJo3Bmc/Yg7H4BMTyWvSyJNPC/v8lZZzmbmMu3bPRxMOM8jQ5rx2JBmaAr/8YO9nMq0jwKLlQyjifQcE+kGExk5BZzPvfiWVfgzzWAiKsVoW5ZXwJW+yDnoNQR7OhHi5URw4c1235FgTyec7RtGC2B1u/CtT6tVyV+pXar0P15KuVEIEXbJ4tHAwML7i4D1VGXy7zwBgHXv/02eLpcR1/WqspfadjqNh77bS77ZyrwJXRjWplGF9qPXavBzc8DPzaFc21mtEoPJzPmciw8Q57LziU/PIT4jh7j0XHZEp2PIv/jbhbez3UUHhKKDhKcTjT0c1UQkFWS5UNpB0zD6Vih1R02c7vlLKRMBpJSJQogrTp0lhJgKTAUICQmp0IvFp+egyTVjOAlnwo7weNjTFdpPaaSULNgSw+t/HiPU24l5E7rS1O/qfZ8rm0YjcHPQ4+agJ7iU9aSUZOYUEJeeQ1zhQSG+8P7++ExWHkosKkkA4O9mzys3tWFE24BS9qqUxKwqeiq1VK3+ri+lnAfMA9sF34rs4+U/jiCPxNEZd5r0DEQjKvcMLNdk4blfD/HrvjMMbe3P+3d0wNVBf/UNa5AQAs/CHkcdgj0ue95ssZJ4Po/49Bxi03P4Zlss077dy7DW/rw6ui2N3Mv3jaQhUxU9ldqqJr6LJgshAgAKf1Zph9knhjSjXa4TsZ5H+eBvZ55Yup/jSVmVsu/49BzGfL6V3/af4Ymhzfni7i61PvGXhU6rIdjLid5NfRjfPYTfH+rDzJEt2XAyhaHvb+Cb7bFYr9CDqTaxWiV/H03mq01RnMvOq/bXN1usZOUVAKBTbf5KLVMTyf8PYFLh/UnA71X5YrnRKdib7XHtBBN6tGDV4SRGfLiJexbsZHtUWqmj/Uqz5VQqN32ymbi0HL6a2JVHil3YrW/0Wg3TBjRhzeP9aR/szou/HeaOL7YRmVy+gTzVxWS28tPueIZ/uJH7F+/mtZXH6PvWOp5edoATSVUfc77ZwpmMXI4nZXM+twAvZzs0ldDTqj6XdI6JiaFt27bles0PP/yQnJycosdlKTNRVa6//noyMzMrdZ+ZmZnMnTu3UvdZXJUmfyHE98A2oIUQIkEIcR/wFjBUCBEJDC18XGV2bjxOhmMSE4fdyMs3tmHrzME8MbQ5BxLOM27edm6Zu5XVhy9u4y6NlJIvN0Yx4esd+LjY8/tDfRjSyr8q30KtEertzLf39WD27R04lWLg+jmb+GDtSfLNlqtvXA0M+Wa+2hTFgHfX8dSyg2g1gg/HduTvJ/oztlswfxw4y/APNzJx/k42nkyp8IH/SnJMZmLTjJxMyiY9x4SHo57m/q4EeTpVSjdbVdL5Ypcm/5r0559/4uHhUan7rOrkX+8Heb219R1Sz2Uy++Y3Llqea7KwbE888zZFEZ+eS4SPM1P6R3BLp0Ac9CWP3MsxmXnm50MsP3CWEW0aMfuODrg00C6SqYZ8XltxlN/2n6WJrzNv3daebmFeNRbLwi0xLN4WQ1aemR7hXkwb2ISBzX0vSroZRhPf7Yxj4dYYUrLzaeHvyn39whndsTH2uquP1iw+gGbTjydJjbcN97dYJQUWq+0EQti+Kem1AlHOWp4+wS70u6N5qesUFBTQpUsX7r333qJqlHZ2dsTExDBq1Cj69OlD165dmTJlCg899BBdu3Zl8uTJhISEsG7dussqe6anp9OyZUtiY2NxdLzyILTylHTu2bMnWq0WX19fPv74Y77++mvc3NzYvXv3FUs6x8TEMGLECHr06MG+ffto3rw5ixcvxsnJiX/++Ycnn3wSs9lMt27d+Oyzz/jiiy948sknadGiBT4+Pqxbt67E0s/+/hefmBmNRh5++GEOHTqE2Wxm1qxZjB49moULF/LHH3+Qk5PD6dOnueWWW3jnnXf47LPPiI6O5p133gFg4cKF7Nmz57KRy2FhYezevRuDwcDIkSPp27cvW7duJTAwkN9//x1HR0cGDhxIx44d2blzJ1lZWcyfP5/u3bsza9YsXFxcikp1tG3btqj66e+//06LFi0YOnQoTzzxBGPHjiUrKwuz2cxnn312WXmN8gzyqvf9z2b2fpp3Rr922XJHOy0TeoWx7n8D+Xh8JxzttDz7yyH6vbOOuetPcT634KL149JyuHXuVlYcPMtTw1vw2d2dG2ziB/BxsefDcZ1YeE838gqs3P75Np779VBRG3d1iEvL4YXfDtHnrX/5dP0pejXx5tcHe7P0gV4MauF32dm2p7MdMwY1ZfMzg3h3THuEgKeXHaTv2+v45N9IMoyXnzFfkbSVbcgtsJBXYMEqJXY6DU52Wuy0mnIn/rKqryWdwVYeeerUqRw8eBA3Nzfmzp1LXl4ekydPZunSpUUJ+7PPPuORRx6hcePGrFu3jnXr1gEll36+1Ouvv87gwYPZtWsX69at46mnnsJoNAK2ukYXXmfp0qXEx8czZswYfvnll6Ltly5dytixY0v+5RSKjIxkxowZHDlyBA8PD37++eei54xGI1u3bmXu3Lnce++9pe7nrbfeokmTJuzfv593332X7777juHDh7N//34OHDhAx44dS93+ahpE9iqth49Oq+HGDo0Z1T6ALafS+GLjad5ZfYK5605zZ48Q7u0TzsnkbB7+fp+tS+fkbgxsccXeqQ3OwBZ+rH2iP++vOcn8LdH8fTSZV0dXbbfQw2fO8/mG0/x5KBGdRsOtnQOZ0j+CJr5la/O112m5vWswY7oEsflUKl9timb2mpN8su4UY7oEcV/fCMJ9Sq7WaLFKMnJM+PZvhLvFD3udFl9Xezyc9JXSrl8W9bGkM9iatfr0sZVZv/vuu5kzZw5Dhw4lPDyc5s1t34gmTZrEp59+ymOPPXbZ9lcq/VzcmjVr+OOPP5g9ezYAeXl5xMXFAbYicO7utln9WrduTWxsLH379iUiIoLt27fTrFkzTpw4URTjlYSHhxcl5i5duhATE1P03Pjx4wFbldSsrKxyXSfo1q0b9957LwUFBdx8880q+VcWIQR9m/nQt5kPh8+c54uNUXy1KYoFW6KxWCXN/FyZN7ELod51t4RrVXGy0/HCqNbc1LExM38+VCXdQqWUbD2dxucbTrMpMhVXex1T+kdwb59w/Ms5GO4CIQT9mvnSr5kvJ5Oz+XpTND/uSmDJjjiGtPRnSr9wuod7IYQgzZBPVm4Bx5OysFglznY6Gns44upQvcX56mtJZ+Cyz1EIUa7rMlcq/VyclJKff/75stnKduzYcVGMxbcfO3YsP/74Iy1btuSWW2656u/70v3k5uZe9J6KE0Kg0+ku+raVl1dyz7T+/fuzceNGVq5cyYQJE3jqqaeYOHFiqbGUpt43+1RE20B3Ph7fiQ1PDeKuHqGM6x7CLw/2Von/KtoHeVS4W6iUtnbzvAIL2XkFZOaYSMnOJ+l8HisPJnLTJ1u466sdHE/K5pkRLdny7GCeHdmqwon/Us39XXl7THu2zBzMw4Oasic2nbHztjP60y08s+wgvd/6l6w8M852Opr4utDEzwU3R321Jv76XNIZIC4ujm3btgHw/fff07dvX1q2bElMTAynTp0C4JtvvmHAgAEVfp3hw4fz8ccfFx1U9u3bd9Vtbr31Vn777Te+//77qzb5XM2FmcI2b96Mu7s77u7uhIWFsXfvXgD27t1LdHQ0cPn7i42Nxc/PjylTpnDfffcVbVNR6sy/FMFeTsy6qU1Nh1GnXOgWOrJtI5779RAv/naYuetOYafTYLZIzFZr4QVSWXSh1GyVV+1tFe7jzJu3tiv1gnxl8HW154lhLXhwUFN+3pvA15uj+WVfArd2CsLfTUvYFZqDqkN9LukM0KpVKxYtWsQDDzxAs2bNmD59Og4ODixYsIDbb7+96ILvtGnTAJg6dSojR44kICCgqN3/al588UUee+wx2rdvj5SSsLCwiw6SJfH09KR169YcPXq0qAx0RXl6etK7d++iC74At912G4sXL6Zjx45069atqInL29ubPn360LZtW0aOHEnbtm1599130ev1uLi4FHXVrah639tHqTlSSn7dd4Z/j59DqxHoNBp0GoFOKwp/Fn+sKWGZ7XEjNwf6N/etkfpCVqvEZLHioNdWuKSzogAMHDiQ2bNn07XrZR1vKk2tKemsNGxCCG7tHMStnYNqOpQK02gEDmrGN6UeUslfURSlGlxptrGaoi74Kko51JVmUqXhKe/fpkr+ilJGDg4OpKVVvB6UolQVKSVpaWk4OJS995tq9lGUMgoKCiIhIYGUlJSaDkVRLuPg4EBQUNmvr6nkryhlpNfrCQ8Pr+kwFKVSqGYfRVGUBkglf0VRlAZIJX9FUZQGqM6M8BVCpACxFdzcB0itxHAqm4rv2qj4ro2K79rU9vhCpZS+ly6sM8n/Wgghdpc0vLm2UPFdGxXftVHxXZvaHt+VqGYfRVGUBkglf0VRlAaooST/eTUdwFWo+K6Niu/aqPiuTW2Pr0QNos1fURRFuVhDOfNXFEVRilHJX1EUpQGq98lfCDFCCHFCCHFKCDGzBl4/WAixTghxTAhxRAjxaOHyWUKIM0KI/YW364tt82xhvCeEEMOrIcYYIcShwjh2Fy7zEkKsFUJEFv70rIn4hBAtin1G+4UQWUKIx2r68xNCzBdCnBNCHC62rNyfmRCiS+Fnf0oIMUdU0qTAV4jvXSHEcSHEQSHEr0IIj8LlYUKI3GKf5ec1FF+5f6fVHN/SYrHFCCH2Fy6v9s+vUkgp6+0N0AKngQjADjgAtK7mGAKAzoX3XYGTQGtgFvBkCeu3LozTHggvjF9bxTHGAD6XLHsHmFl4fybwdk3Fd8nvMwkIrenPD+gPdAYOX8tnBuwEegECWAWMrML4hgG6wvtvF4svrPh6l+ynOuMr9++0OuO75Pn3gJdq6vOrjFt9P/PvDpySUkZJKU3AD8Do6gxASpkopdxbeD8bOAYElrLJaOAHKWW+lDIaOIXtfVS30cCiwvuLgJuLLa+p+IYAp6WUpY30rpb4pJQbgfQSXrvMn5kQIgBwk1Juk7ZMsbjYNpUen5RyjZTSXPhwO1Bq/d/qjq8UteLzu6Dw7P0O4PvS9lGV8VWG+p78A4H4Yo8TKD3xVikhRBjQCdhRuOihwq/g84s1EdREzBJYI4TYI4SYWrjMX0qZCLYDGOBXg/FdMI6L/+Fqy+d3QXk/s8DC+5curw73YjsTvSBcCLFPCLFBCNGvcFlNxFee32lNfX79gGQpZWSxZbXl8yuz+p78S2pfq5G+rUIIF+Bn4DEpZRbwGdAE6AgkYvsaCTUTcx8pZWdgJDBDCNG/lHVr5DMVQtgBNwE/FS6qTZ/f1Vwpppr6LJ8HzMCSwkWJQIiUshPwBPCdEMKtBuIr7++0pn7X47n4JKS2fH7lUt+TfwIQXOxxEHC2uoMQQuixJf4lUspfAKSUyVJKi5TSCnzJf00T1R6zlPJs4c9zwK+FsSQXfm298PX1XE3FV2gksFdKmVwYa635/Iop72eWwMVNL1UeqxBiEjAKuKuwKYLC5pS0wvt7sLWpN6/u+CrwO62Jz08H3AosLRZ3rfj8yqu+J/9dQDMhRHjhmeM44I/qDKCwffBr4JiU8v1iywOKrXYLcKFXwR/AOCGEvRAiHGiG7aJRVcXnLIRwvXAf20XBw4VxTCpcbRLwe03EV8xFZ1u15fO7RLk+s8KmoWwhRM/Cv5OJxbapdEKIEcAzwE1Sypxiy32FENrC+xGF8UXVQHzl+p1Wd3yFrgOOSymLmnNqy+dXbjV9xbmqb8D12HrYnAaer4HX74vtq95BYH/h7XrgG+BQ4fI/gIBi2zxfGO8Jqrh3ALaeUAcKb0cufEaAN/APEFn406sm4it8PScgDXAvtqxGPz9sB6JEoADbGd59FfnMgK7Yktxp4BMKR91XUXynsLWdX/g7/Lxw3dsKf/cHgL3AjTUUX7l/p9UZX+HyhcC0S9at9s+vMm6qvIOiKEoDVN+bfRRFUZQSqOSvKIrSAKnkryiK0gCp5K8oitIAqeSvKIrSAKnkryilEEJ4CCEeLOX5rWXYh6Fyo1KUa6eSv6KUzgO4LPlfGNQjpexd3QEpSmXQ1XQAilLLvQU0KazdXgAYsA3+6Qi0FkIYpJQuhbWbfgc8AT3wgpSy9ozmVJRLqEFeilKKwkqsK6SUbYUQA4GVQFtpKy1MseSvA5yklFlCCB9sJZObSSnlhXVq6C0oSonUmb+ilM/OC4n/EgJ4o7AiqhVb6V5/bJPPKEqto5K/opSP8QrL7wJ8gS5SygIhRAzgUG1RKUo5qQu+ilK6bGzTb16NO3CuMPEPwjbVpKLUWurMX1FKIaVME0JsKZzIOxdIvsKqS4DlQojd2CpmHq+mEBWlQtQFX0VRlAZINfsoiqI0QCr5K4qiNEAq+SuKojRAKvkriqI0QCr5K4qiNEAq+SuKojRAKvkriqI0QP8PHWA+UpATZJYAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['average_specificity',\n", + " \"average_specificity_no_mods\",\n", + " \"average_specificity_update\",\n", + " \"average_specificity_cover\",\n", + " \"average_specificity_both\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[[\"fraction_accuracy_no_mods\",\n", + " \"fraction_accuracy_update\",\n", + " \"fraction_accuracy_cover\",\n", + " \"fraction_accuracy_both\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['population',\n", + " \"population_no_mods\",\n", + " \"population_update\",\n", + " \"population_cover\",\n", + " \"population_both\",\n", + " ]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['knowledge'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"Knowledge\")\n", + "ax.legend([\"XCS\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[[\"knowledge_no_mods\",\n", + " \"knowledge_update\",\n", + " \"knowledge_cover\",\n", + " \"knowledge_both\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"Knowledge\")\n", + "ax.legend([\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['steps_in_trial',\n", + " \"steps_in_trial_no_mods\",\n", + " \"steps_in_trial_update\",\n", + " \"steps_in_trial_cover\",\n", + " \"steps_in_trial_both\",\n", + " ]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "98.33000000000001\n", + "82.91999999999999\n", + "81.52000000000001\n", + "82.37000000000002\n", + "79.90999999999998\n" + ] + } + ], + "source": [ + "print(sum(df[\"steps_in_trial\"])/number_of_experiments)\n", + "print(sum(df[\"steps_in_trial_no_mods\"])/number_of_experiments)\n", + "print(sum(df[\"steps_in_trial_update\"])/number_of_experiments)\n", + "print(sum(df[\"steps_in_trial_cover\"])/number_of_experiments)\n", + "print(sum(df[\"steps_in_trial_both\"])/number_of_experiments)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificityknowledgesteps_in_trial_no_modssteps_in_trial_updatesteps_in_trial_cover...average_specificity_coveraverage_specificity_bothfraction_accuracy_no_modsfraction_accuracy_updatefraction_accuracy_coverfraction_accuracy_bothknowledge_no_modsknowledge_updateknowledge_coverknowledge_both
trial
0100.00.0000000.066623134.8162.19.92734664.65753499.9100.0100.0...10.4419329.7809260.9970.9990.2690.2500.0684930.4794529.65753410.342466
10042.1855.9037630.410774788.41600.09.53706398.49315144.016.948.5...11.77712511.7739370.9990.9320.8940.8040.75342523.63013725.68493243.424658
20053.4718.2790990.526575796.51600.010.20881398.69863043.051.758.1...14.65856213.8953750.9950.9310.9080.8431.64383632.53424720.13698640.684932
30051.3983.8103720.473368790.41600.010.14075098.69863047.634.154.8...17.60793716.5268751.0000.9100.9620.8871.16438434.86301416.78082241.780822
40026.31081.7535360.256992800.41600.010.08493799.10958954.051.958.0...17.67537517.4765620.9990.9060.9600.8711.36986336.57534213.83561640.410959
50066.7751.0108960.670094796.71600.09.97393798.69863046.239.539.6...18.52993718.2685000.9970.9100.9760.8991.23287737.19178111.84931537.465753
60058.8609.1006320.590315797.01600.09.43750098.28767155.226.343.3...18.53006218.0526880.9900.8710.9610.8980.89041136.50684910.34246637.191781
70072.6600.0000570.710829798.81600.09.45243798.69863056.462.842.0...18.65043718.4787500.9990.8920.9560.8980.82191836.30137010.34246638.013699
80037.9854.4074420.376949808.21600.09.84406298.21917853.745.550.6...18.26381318.2086250.9990.8710.9610.9121.09589035.06849311.02739737.191781
90053.9822.7037450.504875789.11600.09.46656397.94520554.938.763.5...18.31750017.6908120.9960.8870.9580.8681.64383636.4383569.72602737.671233
100033.1949.7182340.244841791.71600.09.85568898.56164456.040.546.0...17.84400018.3183130.9990.8690.9670.9051.36986333.4246589.10958937.191781
110061.5617.1974870.500789837.01600.019.84225099.7260278.527.023.5...16.60281316.6181250.9910.7760.9630.7811.43835626.3698638.08219226.917808
120029.81008.0650190.207826804.61600.016.60137599.10958937.935.218.7...16.67093816.5062500.9860.7710.9260.7621.36986326.9863018.21917827.191781
130028.21008.4831660.191078806.41600.014.64431398.97260330.510.922.9...16.18818816.6500000.9720.7150.9550.7571.30137024.4520558.83561624.520548
140057.6683.9675930.422139792.71600.013.85675098.01369927.633.024.0...16.13250016.2727500.9780.6890.9510.7411.30137022.67123310.06849323.698630
150069.3499.0749000.455973820.01600.014.23487599.17808218.915.421.6...15.09312515.7471250.9880.7320.9070.6951.50684921.3013709.24657522.945205
160032.7920.0514220.224133838.81600.013.51700098.97260330.857.720.4...15.23706315.7637500.9810.7190.9360.7790.82191821.8493158.63013721.643836
170029.2933.0537400.219860852.91600.013.39162599.17808218.656.534.8...14.74825015.6055620.9780.6430.9360.7311.09589016.9863018.49315120.479452
180032.2908.0121820.190979828.31600.012.53912598.97260323.041.725.7...15.28468815.3050000.9730.8050.9080.7311.64383617.6712339.38356220.273973
190046.7708.5324080.286555835.41600.011.88518798.28767122.529.927.7...14.73656215.2683750.9840.7550.9420.7801.98630117.8082199.52054818.013699
\n", + "

20 rows × 27 columns

\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 100.0 0.000000 0.066623 134.8 162.1 \n", + "100 42.1 855.903763 0.410774 788.4 1600.0 \n", + "200 53.4 718.279099 0.526575 796.5 1600.0 \n", + "300 51.3 983.810372 0.473368 790.4 1600.0 \n", + "400 26.3 1081.753536 0.256992 800.4 1600.0 \n", + "500 66.7 751.010896 0.670094 796.7 1600.0 \n", + "600 58.8 609.100632 0.590315 797.0 1600.0 \n", + "700 72.6 600.000057 0.710829 798.8 1600.0 \n", + "800 37.9 854.407442 0.376949 808.2 1600.0 \n", + "900 53.9 822.703745 0.504875 789.1 1600.0 \n", + "1000 33.1 949.718234 0.244841 791.7 1600.0 \n", + "1100 61.5 617.197487 0.500789 837.0 1600.0 \n", + "1200 29.8 1008.065019 0.207826 804.6 1600.0 \n", + "1300 28.2 1008.483166 0.191078 806.4 1600.0 \n", + "1400 57.6 683.967593 0.422139 792.7 1600.0 \n", + "1500 69.3 499.074900 0.455973 820.0 1600.0 \n", + "1600 32.7 920.051422 0.224133 838.8 1600.0 \n", + "1700 29.2 933.053740 0.219860 852.9 1600.0 \n", + "1800 32.2 908.012182 0.190979 828.3 1600.0 \n", + "1900 46.7 708.532408 0.286555 835.4 1600.0 \n", + "\n", + " average_specificity knowledge steps_in_trial_no_mods \\\n", + "trial \n", + "0 9.927346 64.657534 99.9 \n", + "100 9.537063 98.493151 44.0 \n", + "200 10.208813 98.698630 43.0 \n", + "300 10.140750 98.698630 47.6 \n", + "400 10.084937 99.109589 54.0 \n", + "500 9.973937 98.698630 46.2 \n", + "600 9.437500 98.287671 55.2 \n", + "700 9.452437 98.698630 56.4 \n", + "800 9.844062 98.219178 53.7 \n", + "900 9.466563 97.945205 54.9 \n", + "1000 9.855688 98.561644 56.0 \n", + "1100 19.842250 99.726027 8.5 \n", + "1200 16.601375 99.109589 37.9 \n", + "1300 14.644313 98.972603 30.5 \n", + "1400 13.856750 98.013699 27.6 \n", + "1500 14.234875 99.178082 18.9 \n", + "1600 13.517000 98.972603 30.8 \n", + "1700 13.391625 99.178082 18.6 \n", + "1800 12.539125 98.972603 23.0 \n", + "1900 11.885187 98.287671 22.5 \n", + "\n", + " steps_in_trial_update steps_in_trial_cover ... \\\n", + "trial ... \n", + "0 100.0 100.0 ... \n", + "100 16.9 48.5 ... \n", + "200 51.7 58.1 ... \n", + "300 34.1 54.8 ... \n", + "400 51.9 58.0 ... \n", + "500 39.5 39.6 ... \n", + "600 26.3 43.3 ... \n", + "700 62.8 42.0 ... \n", + "800 45.5 50.6 ... \n", + "900 38.7 63.5 ... \n", + "1000 40.5 46.0 ... \n", + "1100 27.0 23.5 ... \n", + "1200 35.2 18.7 ... \n", + "1300 10.9 22.9 ... \n", + "1400 33.0 24.0 ... \n", + "1500 15.4 21.6 ... \n", + "1600 57.7 20.4 ... \n", + "1700 56.5 34.8 ... \n", + "1800 41.7 25.7 ... \n", + "1900 29.9 27.7 ... \n", + "\n", + " average_specificity_cover average_specificity_both \\\n", + "trial \n", + "0 10.441932 9.780926 \n", + "100 11.777125 11.773937 \n", + "200 14.658562 13.895375 \n", + "300 17.607937 16.526875 \n", + "400 17.675375 17.476562 \n", + "500 18.529937 18.268500 \n", + "600 18.530062 18.052688 \n", + "700 18.650437 18.478750 \n", + "800 18.263813 18.208625 \n", + "900 18.317500 17.690812 \n", + "1000 17.844000 18.318313 \n", + "1100 16.602813 16.618125 \n", + "1200 16.670938 16.506250 \n", + "1300 16.188188 16.650000 \n", + "1400 16.132500 16.272750 \n", + "1500 15.093125 15.747125 \n", + "1600 15.237063 15.763750 \n", + "1700 14.748250 15.605562 \n", + "1800 15.284688 15.305000 \n", + "1900 14.736562 15.268375 \n", + "\n", + " fraction_accuracy_no_mods fraction_accuracy_update \\\n", + "trial \n", + "0 0.997 0.999 \n", + "100 0.999 0.932 \n", + "200 0.995 0.931 \n", + "300 1.000 0.910 \n", + "400 0.999 0.906 \n", + "500 0.997 0.910 \n", + "600 0.990 0.871 \n", + "700 0.999 0.892 \n", + "800 0.999 0.871 \n", + "900 0.996 0.887 \n", + "1000 0.999 0.869 \n", + "1100 0.991 0.776 \n", + "1200 0.986 0.771 \n", + "1300 0.972 0.715 \n", + "1400 0.978 0.689 \n", + "1500 0.988 0.732 \n", + "1600 0.981 0.719 \n", + "1700 0.978 0.643 \n", + "1800 0.973 0.805 \n", + "1900 0.984 0.755 \n", + "\n", + " fraction_accuracy_cover fraction_accuracy_both knowledge_no_mods \\\n", + "trial \n", + "0 0.269 0.250 0.068493 \n", + "100 0.894 0.804 0.753425 \n", + "200 0.908 0.843 1.643836 \n", + "300 0.962 0.887 1.164384 \n", + "400 0.960 0.871 1.369863 \n", + "500 0.976 0.899 1.232877 \n", + "600 0.961 0.898 0.890411 \n", + "700 0.956 0.898 0.821918 \n", + "800 0.961 0.912 1.095890 \n", + "900 0.958 0.868 1.643836 \n", + "1000 0.967 0.905 1.369863 \n", + "1100 0.963 0.781 1.438356 \n", + "1200 0.926 0.762 1.369863 \n", + "1300 0.955 0.757 1.301370 \n", + "1400 0.951 0.741 1.301370 \n", + "1500 0.907 0.695 1.506849 \n", + "1600 0.936 0.779 0.821918 \n", + "1700 0.936 0.731 1.095890 \n", + "1800 0.908 0.731 1.643836 \n", + "1900 0.942 0.780 1.986301 \n", + "\n", + " knowledge_update knowledge_cover knowledge_both \n", + "trial \n", + "0 0.479452 9.657534 10.342466 \n", + "100 23.630137 25.684932 43.424658 \n", + "200 32.534247 20.136986 40.684932 \n", + "300 34.863014 16.780822 41.780822 \n", + "400 36.575342 13.835616 40.410959 \n", + "500 37.191781 11.849315 37.465753 \n", + "600 36.506849 10.342466 37.191781 \n", + "700 36.301370 10.342466 38.013699 \n", + "800 35.068493 11.027397 37.191781 \n", + "900 36.438356 9.726027 37.671233 \n", + "1000 33.424658 9.109589 37.191781 \n", + "1100 26.369863 8.082192 26.917808 \n", + "1200 26.986301 8.219178 27.191781 \n", + "1300 24.452055 8.835616 24.520548 \n", + "1400 22.671233 10.068493 23.698630 \n", + "1500 21.301370 9.246575 22.945205 \n", + "1600 21.849315 8.630137 21.643836 \n", + "1700 16.986301 8.493151 20.479452 \n", + "1800 17.671233 9.383562 20.273973 \n", + "1900 17.808219 9.520548 18.013699 \n", + "\n", + "[20 rows x 27 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracyknowledge
trial
099.9100.0000000.078630139.2114.810.1247850.9970.068493
10044.0821.7872960.6966311600.01145.311.5178750.9990.753425
20043.01013.5222100.6914761600.01246.214.6269370.9951.643836
30047.6770.5321100.8240091600.01273.416.7270621.0001.164384
40054.0802.7420841.0424101600.01293.418.0002500.9991.369863
50046.2955.1422320.8724781600.01299.917.9157500.9971.232877
60055.2802.6254381.0889721600.01314.317.5907500.9900.890411
70056.4818.6305141.0873481600.01322.818.3598750.9990.821918
80053.7658.8361510.9309831600.01324.618.5097500.9991.095890
90054.9700.8029951.0057751600.01323.117.8518130.9961.643836
100056.0800.0197660.8356071600.01319.518.3068750.9991.369863
11008.51188.1294260.1475981600.01318.716.6058120.9911.438356
120037.9730.8516170.5631571600.01332.716.5188130.9861.369863
130030.5973.6069140.4162961600.01333.616.4393750.9721.301370
140027.6963.8102100.4035361600.01338.215.9615630.9781.301370
150018.91083.6435340.2997681600.01335.115.7123750.9881.506849
160030.8958.2188000.5550501600.01342.215.3016250.9810.821918
170018.61149.9290630.2508101600.01341.415.1163130.9781.095890
180023.0950.1478900.3626701600.01343.714.6545000.9731.643836
190022.5963.4986860.3570411600.01359.714.9236870.9841.986301
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 99.9 100.000000 0.078630 139.2 114.8 \n", + "100 44.0 821.787296 0.696631 1600.0 1145.3 \n", + "200 43.0 1013.522210 0.691476 1600.0 1246.2 \n", + "300 47.6 770.532110 0.824009 1600.0 1273.4 \n", + "400 54.0 802.742084 1.042410 1600.0 1293.4 \n", + "500 46.2 955.142232 0.872478 1600.0 1299.9 \n", + "600 55.2 802.625438 1.088972 1600.0 1314.3 \n", + "700 56.4 818.630514 1.087348 1600.0 1322.8 \n", + "800 53.7 658.836151 0.930983 1600.0 1324.6 \n", + "900 54.9 700.802995 1.005775 1600.0 1323.1 \n", + "1000 56.0 800.019766 0.835607 1600.0 1319.5 \n", + "1100 8.5 1188.129426 0.147598 1600.0 1318.7 \n", + "1200 37.9 730.851617 0.563157 1600.0 1332.7 \n", + "1300 30.5 973.606914 0.416296 1600.0 1333.6 \n", + "1400 27.6 963.810210 0.403536 1600.0 1338.2 \n", + "1500 18.9 1083.643534 0.299768 1600.0 1335.1 \n", + "1600 30.8 958.218800 0.555050 1600.0 1342.2 \n", + "1700 18.6 1149.929063 0.250810 1600.0 1341.4 \n", + "1800 23.0 950.147890 0.362670 1600.0 1343.7 \n", + "1900 22.5 963.498686 0.357041 1600.0 1359.7 \n", + "\n", + " average_specificity fraction_accuracy knowledge \n", + "trial \n", + "0 10.124785 0.997 0.068493 \n", + "100 11.517875 0.999 0.753425 \n", + "200 14.626937 0.995 1.643836 \n", + "300 16.727062 1.000 1.164384 \n", + "400 18.000250 0.999 1.369863 \n", + "500 17.915750 0.997 1.232877 \n", + "600 17.590750 0.990 0.890411 \n", + "700 18.359875 0.999 0.821918 \n", + "800 18.509750 0.999 1.095890 \n", + "900 17.851813 0.996 1.643836 \n", + "1000 18.306875 0.999 1.369863 \n", + "1100 16.605812 0.991 1.438356 \n", + "1200 16.518813 0.986 1.369863 \n", + "1300 16.439375 0.972 1.301370 \n", + "1400 15.961563 0.978 1.301370 \n", + "1500 15.712375 0.988 1.506849 \n", + "1600 15.301625 0.981 0.821918 \n", + "1700 15.116313 0.978 1.095890 \n", + "1800 14.654500 0.973 1.643836 \n", + "1900 14.923687 0.984 1.986301 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracyknowledge
trial
0100.00.0000000.076243149.2126.79.7443460.9990.479452
10016.91044.7427440.2072571600.01147.511.7029380.93223.630137
20051.7872.1701380.6722141600.01242.914.2190000.93132.534247
30034.11023.2460930.4565911600.01269.116.6540000.91034.863014
40051.9901.2194030.7014311600.01292.317.5156250.90636.575342
50039.5755.3153250.5451061600.01302.218.1301870.91037.191781
60026.31085.8963990.3592021600.01308.517.8415630.87136.506849
70062.8806.5303450.8464881600.01312.617.9580630.89236.301370
80045.5870.8808580.6303381600.01311.718.6941880.87135.068493
90038.7861.2821740.5214271600.01319.219.0701870.88736.438356
100040.5983.1181930.4813901600.01307.218.2846250.86933.424658
110027.0937.8700580.3242801600.01314.116.6985630.77626.369863
120035.2853.8351980.3871381600.01330.217.0533750.77126.986301
130010.91125.6431050.1331661600.01333.616.9884370.71524.452055
140033.01022.3328060.3485131600.01336.416.4160630.68922.671233
150015.41081.1775460.1676161600.01340.515.7660620.73221.301370
160057.7613.7993790.6182111600.01345.815.9256880.71921.849315
170056.5623.7066430.6273411600.01351.715.4895000.64316.986301
180041.7764.3277910.4919891600.01359.115.3465000.80517.671233
190029.9926.9747760.3303551600.01352.914.9494380.75517.808219
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 100.0 0.000000 0.076243 149.2 126.7 \n", + "100 16.9 1044.742744 0.207257 1600.0 1147.5 \n", + "200 51.7 872.170138 0.672214 1600.0 1242.9 \n", + "300 34.1 1023.246093 0.456591 1600.0 1269.1 \n", + "400 51.9 901.219403 0.701431 1600.0 1292.3 \n", + "500 39.5 755.315325 0.545106 1600.0 1302.2 \n", + "600 26.3 1085.896399 0.359202 1600.0 1308.5 \n", + "700 62.8 806.530345 0.846488 1600.0 1312.6 \n", + "800 45.5 870.880858 0.630338 1600.0 1311.7 \n", + "900 38.7 861.282174 0.521427 1600.0 1319.2 \n", + "1000 40.5 983.118193 0.481390 1600.0 1307.2 \n", + "1100 27.0 937.870058 0.324280 1600.0 1314.1 \n", + "1200 35.2 853.835198 0.387138 1600.0 1330.2 \n", + "1300 10.9 1125.643105 0.133166 1600.0 1333.6 \n", + "1400 33.0 1022.332806 0.348513 1600.0 1336.4 \n", + "1500 15.4 1081.177546 0.167616 1600.0 1340.5 \n", + "1600 57.7 613.799379 0.618211 1600.0 1345.8 \n", + "1700 56.5 623.706643 0.627341 1600.0 1351.7 \n", + "1800 41.7 764.327791 0.491989 1600.0 1359.1 \n", + "1900 29.9 926.974776 0.330355 1600.0 1352.9 \n", + "\n", + " average_specificity fraction_accuracy knowledge \n", + "trial \n", + "0 9.744346 0.999 0.479452 \n", + "100 11.702938 0.932 23.630137 \n", + "200 14.219000 0.931 32.534247 \n", + "300 16.654000 0.910 34.863014 \n", + "400 17.515625 0.906 36.575342 \n", + "500 18.130187 0.910 37.191781 \n", + "600 17.841563 0.871 36.506849 \n", + "700 17.958063 0.892 36.301370 \n", + "800 18.694188 0.871 35.068493 \n", + "900 19.070187 0.887 36.438356 \n", + "1000 18.284625 0.869 33.424658 \n", + "1100 16.698563 0.776 26.369863 \n", + "1200 17.053375 0.771 26.986301 \n", + "1300 16.988437 0.715 24.452055 \n", + "1400 16.416063 0.689 22.671233 \n", + "1500 15.766062 0.732 21.301370 \n", + "1600 15.925688 0.719 21.849315 \n", + "1700 15.489500 0.643 16.986301 \n", + "1800 15.346500 0.805 17.671233 \n", + "1900 14.949438 0.755 17.808219 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracyknowledge
trial
0100.00.0000000.066730144.0121.010.4419320.2699.657534
10048.5986.2020150.6018061600.01153.311.7771250.89425.684932
20058.1713.6661590.7582381600.01240.414.6585620.90820.136986
30054.8853.8358430.7693151600.01275.617.6079370.96216.780822
40058.0800.1077650.7988711600.01299.517.6753750.96013.835616
50039.6839.7729910.5488421600.01296.918.5299370.97611.849315
60043.3906.8248860.6318281600.01308.518.5300620.96110.342466
70042.01025.7642890.5932491600.01310.918.6504370.95610.342466
80050.6822.6271730.7223911600.01318.318.2638130.96111.027397
90063.5568.4825740.9201461600.01322.918.3175000.9589.726027
100046.0878.4985750.5487371600.01308.317.8440000.9679.109589
110023.51073.6748790.2661701600.01313.916.6028130.9638.082192
120018.71092.7327180.2328111600.01332.516.6709380.9268.219178
130022.91094.0445360.2406331600.01337.916.1881880.9558.835616
140024.0984.8289410.3250061600.01337.316.1325000.95110.068493
150021.6981.5970410.2500601600.01339.915.0931250.9079.246575
160020.41071.6453410.2393621600.01343.915.2370630.9368.630137
170034.8898.2171610.4393521600.01354.714.7482500.9368.493151
180025.71000.2456200.3126101600.01359.215.2846880.9089.383562
190027.7924.0802760.3228611600.01358.214.7365620.9429.520548
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 100.0 0.000000 0.066730 144.0 121.0 \n", + "100 48.5 986.202015 0.601806 1600.0 1153.3 \n", + "200 58.1 713.666159 0.758238 1600.0 1240.4 \n", + "300 54.8 853.835843 0.769315 1600.0 1275.6 \n", + "400 58.0 800.107765 0.798871 1600.0 1299.5 \n", + "500 39.6 839.772991 0.548842 1600.0 1296.9 \n", + "600 43.3 906.824886 0.631828 1600.0 1308.5 \n", + "700 42.0 1025.764289 0.593249 1600.0 1310.9 \n", + "800 50.6 822.627173 0.722391 1600.0 1318.3 \n", + "900 63.5 568.482574 0.920146 1600.0 1322.9 \n", + "1000 46.0 878.498575 0.548737 1600.0 1308.3 \n", + "1100 23.5 1073.674879 0.266170 1600.0 1313.9 \n", + "1200 18.7 1092.732718 0.232811 1600.0 1332.5 \n", + "1300 22.9 1094.044536 0.240633 1600.0 1337.9 \n", + "1400 24.0 984.828941 0.325006 1600.0 1337.3 \n", + "1500 21.6 981.597041 0.250060 1600.0 1339.9 \n", + "1600 20.4 1071.645341 0.239362 1600.0 1343.9 \n", + "1700 34.8 898.217161 0.439352 1600.0 1354.7 \n", + "1800 25.7 1000.245620 0.312610 1600.0 1359.2 \n", + "1900 27.7 924.080276 0.322861 1600.0 1358.2 \n", + "\n", + " average_specificity fraction_accuracy knowledge \n", + "trial \n", + "0 10.441932 0.269 9.657534 \n", + "100 11.777125 0.894 25.684932 \n", + "200 14.658562 0.908 20.136986 \n", + "300 17.607937 0.962 16.780822 \n", + "400 17.675375 0.960 13.835616 \n", + "500 18.529937 0.976 11.849315 \n", + "600 18.530062 0.961 10.342466 \n", + "700 18.650437 0.956 10.342466 \n", + "800 18.263813 0.961 11.027397 \n", + "900 18.317500 0.958 9.726027 \n", + "1000 17.844000 0.967 9.109589 \n", + "1100 16.602813 0.963 8.082192 \n", + "1200 16.670938 0.926 8.219178 \n", + "1300 16.188188 0.955 8.835616 \n", + "1400 16.132500 0.951 10.068493 \n", + "1500 15.093125 0.907 9.246575 \n", + "1600 15.237063 0.936 8.630137 \n", + "1700 14.748250 0.936 8.493151 \n", + "1800 15.284688 0.908 9.383562 \n", + "1900 14.736562 0.942 9.520548 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracyknowledge
trial
090.1100.0000000.060630135.4116.19.7809260.25010.342466
10037.6847.7737750.4234431600.01140.711.7739370.80443.424658
20035.2933.8163020.4364371600.01250.413.8953750.84340.684932
30055.8600.1327860.7053301600.01271.916.5268750.88741.780822
40036.1914.6794020.4681291600.01286.817.4765620.87140.410959
50054.3671.1175700.7062371600.01299.118.2685000.89937.465753
60056.9771.9295580.7351561600.01310.018.0526880.89837.191781
70067.1800.0000330.8765801600.01315.018.4787500.89838.013699
80047.2814.7104850.5994941600.01313.218.2086250.91237.191781
90029.71248.9173640.3854351600.01307.817.6908120.86837.671233
100046.8775.8754430.5605551600.01319.818.3183130.90537.191781
11009.61139.4152610.1094581600.01318.516.6181250.78126.917808
120018.01110.2682810.2197531600.01326.216.5062500.76227.191781
130025.5927.9030610.3334661600.01341.416.6500000.75724.520548
140029.6865.7988920.3011651600.01334.816.2727500.74123.698630
150023.3962.2301720.2633401600.01340.215.7471250.69522.945205
160038.4893.6280860.4378921600.01343.115.7637500.77921.643836
170014.11146.8524030.1691191600.01341.015.6055620.73120.479452
180037.9998.9627790.3968211600.01352.715.3050000.73120.273973
190045.9751.8872220.4936571600.01363.015.2683750.78018.013699
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 90.1 100.000000 0.060630 135.4 116.1 \n", + "100 37.6 847.773775 0.423443 1600.0 1140.7 \n", + "200 35.2 933.816302 0.436437 1600.0 1250.4 \n", + "300 55.8 600.132786 0.705330 1600.0 1271.9 \n", + "400 36.1 914.679402 0.468129 1600.0 1286.8 \n", + "500 54.3 671.117570 0.706237 1600.0 1299.1 \n", + "600 56.9 771.929558 0.735156 1600.0 1310.0 \n", + "700 67.1 800.000033 0.876580 1600.0 1315.0 \n", + "800 47.2 814.710485 0.599494 1600.0 1313.2 \n", + "900 29.7 1248.917364 0.385435 1600.0 1307.8 \n", + "1000 46.8 775.875443 0.560555 1600.0 1319.8 \n", + "1100 9.6 1139.415261 0.109458 1600.0 1318.5 \n", + "1200 18.0 1110.268281 0.219753 1600.0 1326.2 \n", + "1300 25.5 927.903061 0.333466 1600.0 1341.4 \n", + "1400 29.6 865.798892 0.301165 1600.0 1334.8 \n", + "1500 23.3 962.230172 0.263340 1600.0 1340.2 \n", + "1600 38.4 893.628086 0.437892 1600.0 1343.1 \n", + "1700 14.1 1146.852403 0.169119 1600.0 1341.0 \n", + "1800 37.9 998.962779 0.396821 1600.0 1352.7 \n", + "1900 45.9 751.887222 0.493657 1600.0 1363.0 \n", + "\n", + " average_specificity fraction_accuracy knowledge \n", + "trial \n", + "0 9.780926 0.250 10.342466 \n", + "100 11.773937 0.804 43.424658 \n", + "200 13.895375 0.843 40.684932 \n", + "300 16.526875 0.887 41.780822 \n", + "400 17.476562 0.871 40.410959 \n", + "500 18.268500 0.899 37.465753 \n", + "600 18.052688 0.898 37.191781 \n", + "700 18.478750 0.898 38.013699 \n", + "800 18.208625 0.912 37.191781 \n", + "900 17.690812 0.868 37.671233 \n", + "1000 18.318313 0.905 37.191781 \n", + "1100 16.618125 0.781 26.917808 \n", + "1200 16.506250 0.762 27.191781 \n", + "1300 16.650000 0.757 24.520548 \n", + "1400 16.272750 0.741 23.698630 \n", + "1500 15.747125 0.695 22.945205 \n", + "1600 15.763750 0.779 21.643836 \n", + "1700 15.605562 0.731 20.479452 \n", + "1800 15.305000 0.731 20.273973 \n", + "1900 15.268375 0.780 18.013699 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)\n", + "display(df_no_mods)\n", + "display(df_update)\n", + "display(df_cover)\n", + "display(df_both)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/Experiment_XCS_XNCS_Maze5_pre_populated.ipynb b/XCS_Experiments/Experiment_XCS_XNCS_Maze5_pre_populated.ipynb new file mode 100644 index 0000000..fc11562 --- /dev/null +++ b/XCS_Experiments/Experiment_XCS_XNCS_Maze5_pre_populated.ipynb @@ -0,0 +1,3025 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import copy\n", + "\n", + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_maze" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "('1', '1', '0', '1', '1', '0', '0', '1')\n", + "\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" + ] + } + ], + "source": [ + "maze = gym.make('Maze5-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS\n", + "from lcs.agents.xcs import Configuration as XCSConfig\n", + "from lcs.agents.xncs import XNCS\n", + "from lcs.agents.xncs import Configuration as XNCSConfig\n", + "\n", + "from utils.xcs_utils import *\n", + "from utils.nxcs_utils import *\n", + "\n", + "XCScfg = XCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_maze_metrics)\n", + "\n", + "XNCScfg_no_mods = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=100,\n", + " update_env_input = False,\n", + " cover_env_input = False,)\n", + "\n", + "XNCScfg_update = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=100,\n", + " update_env_input = True,\n", + " cover_env_input = False,)\n", + "\n", + "XNCScfg_cover = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=100,\n", + " update_env_input = False,\n", + " cover_env_input = True,)\n", + "\n", + "XNCScfg_both = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=100,\n", + " update_env_input = True,\n", + " cover_env_input = True,)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting XCS\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with enviromental input during cover\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with enviromental input during update\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with all enviromental inputs\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n" + ] + } + ], + "source": [ + "from utils.xcs_utils import avg_experiment as XCSExp\n", + "from utils.nxcs_utils import avg_experiment as XNCSExp\n", + "\n", + "number_of_experiments = 10\n", + "explore = 0\n", + "exploit = 2500\n", + "print(\"Starting XCS\")\n", + "df = XCSExp(maze=maze,\n", + " cfg=XCScfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=0,\n", + " exploit_trials=exploit + explore,\n", + " pre_generate=True\n", + " )\n", + "print(\"Starting XNCS\")\n", + "df_no_mods = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_no_mods,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=0,\n", + " exploit_trials=exploit + explore,\n", + " pre_generate=True\n", + " )\n", + "print(\"Starting XNCS with enviromental input during cover\")\n", + "df_cover = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_cover,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=0,\n", + " exploit_trials=exploit + explore,\n", + " pre_generate=True\n", + " )\n", + "print(\"Starting XNCS with enviromental input during update\")\n", + "df_update = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_update,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=0,\n", + " exploit_trials=exploit + explore,\n", + " pre_generate=True\n", + " )\n", + "print(\"Starting XNCS with all enviromental inputs\")\n", + "df_both = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_both,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=0,\n", + " exploit_trials=exploit + explore,\n", + " pre_generate=True\n", + "\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "df_all = pd.DataFrame(df)\n", + "\n", + "df_all['steps_in_trial_no_mods']=df_no_mods['steps_in_trial']\n", + "df_all['steps_in_trial_update'] =df_update['steps_in_trial']\n", + "df_all['steps_in_trial_cover'] =df_cover['steps_in_trial']\n", + "df_all['steps_in_trial_both'] =df_both['steps_in_trial']\n", + "\n", + "df_all['population_no_mods']=df_no_mods['population']\n", + "df_all['population_update'] =df_update['population']\n", + "df_all['population_cover'] =df_cover['population']\n", + "df_all['population_both'] =df_both['population']\n", + "\n", + "df_all['average_specificity_no_mods']=df_no_mods['average_specificity']\n", + "df_all['average_specificity_update']=df_update['average_specificity']\n", + "df_all['average_specificity_cover']=df_cover['average_specificity']\n", + "df_all['average_specificity_both']=df_both['average_specificity']\n", + "\n", + "df['fraction_accuracy_no_mods']=df_no_mods['fraction_accuracy']\n", + "df['fraction_accuracy_update']=df_update['fraction_accuracy']\n", + "df['fraction_accuracy_cover']=df_cover['fraction_accuracy']\n", + "df['fraction_accuracy_both']=df_both['fraction_accuracy']\n", + "\n", + "df['knowledge_no_mods']=df_no_mods['knowledge']\n", + "df['knowledge_update']=df_update['knowledge']\n", + "df['knowledge_cover']=df_cover['knowledge']\n", + "df['knowledge_both']=df_both['knowledge']" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['average_specificity',\n", + " \"average_specificity_no_mods\",\n", + " \"average_specificity_update\",\n", + " \"average_specificity_cover\",\n", + " \"average_specificity_both\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[[\"fraction_accuracy_no_mods\",\n", + " \"fraction_accuracy_update\",\n", + " \"fraction_accuracy_cover\",\n", + " \"fraction_accuracy_both\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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QWBAfq0xpgioEZHZwVlfNwDv9mSd25KeGEm+BhWllDpBd04pXgKsAsaISKGIfBt4VES2ishm4CLgHgBjzDbgTWA78E/gTmNM862AFgPPAXnAHkI4SN8sIzGSggqdVqx6twMHDpCRkUFFRQUAR44cISMjg4KCAm677TZGjBjBhAkTmDt3LmvWrAHgkUceYcKECUyaNIns7OyWcqU6qztnf13fRvHzHWz/CPBIG+U5QFYXVu2MDU+IwB2cVqwzwFRvNXToUBYvXsz999/PM888w/3338+iRYv40Y9+REZGBrm5uVgsFvbu3cuOHTtYtWoV77//PuvXr8fpdFJWVobb7Q51M1Qfo1fUn4bW04qV6s3uu+8+Vq9ezRNPPMHKlSu5+uqrWbNmDT/96U+xWAL//TMzM/nyl79MUVERiYmJOJ1OABITExkyZEhHh1fqBJr6/jSk67RidQr+33vb2H6o+uQbnoLxQ6J56CsTTrqd3W7nF7/4BRdffDEffvghu3btIjs7G6vVesK2F110Ef/93//N6NGjueCCC1i4cCHz5s3r0nqr/k/PVE7D4OgwnDaLDtarPuEf//gHKSkpbN26tcPtXC4X69at45lnniEpKYmFCxfy0ksv9UwlVb+hZyqnwWIRhidEkK/XqqhO6MwZRXfZuHEjH330EatXr2bOnDksWbKETZs24ff7W7q/WrNarcyfP5/58+czceJEXn75ZW666aaer7jqs/RM5TQNT9Bpxap3M8awePFinnjiCYYNG8YPfvADnnrqKaZPn85DDz2EMYHZi7m5ubz77rvs2rWL3Nzclv03btzI8OHDQ1V91UdpUDlNOq1Y9XbPPvssw4YN48ILLwTgjjvuYOfOndx5550cPnyYkSNHMnHiRG699VaGDBlCbW0tN954I+PHj2fSpEls376dhx9+OLSNUH2Odn+dpvSESJ1WrHq1RYsWsWjRopbXVquVdevWAbQ7AP/555/3SN1U/6VnKqcpPSECQLvAlFKqlU4HFRGxisgQERnWvHRnxXq75mnF+XoXSKWUatGp7i8RuRt4CCgG/MFiA0zqpnr1ejqtWCmlTtTZMZV7gDHGmPLurExf0jyteF+ZTitWSqlmne3+OkDgplqqlfSESAq0+0sppVp09kxlL7BMRD4AmpoLjTG/7JZa9RHpiZEs212K32+wWPTeGUop1dkz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U6ZwwQUXUFxc3GZ7S0tLueaaa5gxYwYzZsw45hh9VWcTStaLiAPYKCI/JzB4P+CzFB8vwmHj8uwh/GV9IQ9fPoHoMHuoq6R6gf9b+3/srNjZpcccGz+WH838UYfbdJT2Hrov9f0555zDZ599xvDhw8nMzGTFihXccMMNrF69mqeffprmTBfp6encfvvtuFyulpxkzz//PEVFRaxcuZKdO3dy+eWXc+211x5z/B07dvDGG2/w2WefYbfbueOOO/jTn/7EDTfcQF1dHbNnz+aRRx7hhz/8Ic8++yz/+Z//yeTJk/n0008577zzeO+991iwYAF2e+f/f65du5bt27czfPhwLr74Yv7yl79wzjnn8NBDD7Fu3TpiYmI477zzWtLdzJkzh9WrVyMiPPfcc/z85z/n8ccfP6G9X//617nvvvuYM2cO+/fvZ8GCBezYsaPT9eqNOhtUvgVYgbuA+whM/72muyrVly2cPpTX1uznbxsP8c3ZmmxPhVbrtPfNOcCanW7q+y1btvDvf/+bxx57jI8++uiE/F/nnnsuy5cvZ/jw4SxevJhnnnmGgwcPEh8f3/LrvyNXXnklFouF8ePHU1xcfML6pUuXsm7dOmbMmAFAQ0MDycnJADgcDi677DIApk2bxkcffQTAwoULeeONNzjvvPN4/fXXueOOO05aj9ZmzpzZkrX5+uuvZ+XKldhsNubPn0/zNXELFy5k9+7dABQWFrJw4UKKiopwu91kZGS0edx///vfbN++veV1dXU1NTU1REX13bu1dzahZHMGugbg/3Vfdfq+SWkxjB0cxZs5BzSoKICTnlF0l7bS3qekpByzTXekvp87dy6/+93v2L9/P4888gjvvPMOb731Fueee26n6u10OluetzXpxRjDjTfeyP/+7/+esM5ut7cERavVitcbmKR6+eWX88ADD1BRUcG6dev40pe+dMK+NputpVvLGHPMeNPxgbb5dXsB+O677+a73/0ul19+OcuWLePhhx9uczu/38+qVasID+8/tyPvcExFRLaIyOb2lp6qZF8iInxt+lA2F1axo6jDCXJKdZvOpL2H7kl9P3ToUMrKysjNzSUzM5M5c+bw2GOPtRlUoqKiqKmpOaW2nX/++bz11luUlAQyWFRUVJyQefl4LpeLmTNncs8993DZZZdhtVpP2CY9PZ116wKZqd59991jxlzW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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['population',\n", + " \"population_no_mods\",\n", + " \"population_update\",\n", + " \"population_cover\",\n", + " \"population_both\",\n", + " ]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['knowledge'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"Knowledge\")\n", + "ax.legend([\"XCS\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[[\"knowledge_no_mods\",\n", + " \"knowledge_update\",\n", + " \"knowledge_cover\",\n", + " \"knowledge_both\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"Knowledge\")\n", + "ax.legend([\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['steps_in_trial',\n", + " \"steps_in_trial_no_mods\",\n", + " \"steps_in_trial_update\",\n", + " \"steps_in_trial_cover\",\n", + " \"steps_in_trial_both\",\n", + " ]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "127.03999999999999\n", + "70.00000000000001\n", + "64.45\n", + "72.22\n", + "73.51\n" + ] + } + ], + "source": [ + "print(sum(df[\"steps_in_trial\"])/number_of_experiments)\n", + "print(sum(df[\"steps_in_trial_no_mods\"])/number_of_experiments)\n", + "print(sum(df[\"steps_in_trial_update\"])/number_of_experiments)\n", + "print(sum(df[\"steps_in_trial_cover\"])/number_of_experiments)\n", + "print(sum(df[\"steps_in_trial_both\"])/number_of_experiments)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificityknowledgesteps_in_trial_no_modssteps_in_trial_updatesteps_in_trial_cover...average_specificity_coveraverage_specificity_bothfraction_accuracy_no_modsfraction_accuracy_updatefraction_accuracy_coverfraction_accuracy_bothknowledge_no_modsknowledge_updateknowledge_coverknowledge_both
trial
085.0300.0000001.1912211510.01600.08.328125100.000000100.089.991.3...8.3493758.2613120.9940.9393290.9933330.9493.63013713.7671232.73972614.041096
10042.9902.1006310.3876461202.91600.07.99718798.83561612.76.26.2...8.3116878.5532501.0000.8070000.9940000.7012.12328818.4931511.78082218.493151
20043.6833.4908360.4139241089.51600.07.90975098.42465811.110.116.6...9.4892509.7013121.0000.6990000.9580000.6222.46575316.6438361.84931517.739726
30061.1656.7128780.4611411027.71600.08.33987598.6301377.78.66.8...10.47175011.2118130.9810.6040000.8120000.6022.39726016.0958902.53424717.876712
40052.4746.2257180.392082981.11600.08.19375098.4931515.428.516.2...11.32037511.6539370.9950.8170000.8960000.6272.46575316.0958903.21917817.602740
50023.4994.5774230.192662932.41600.08.40137598.2191785.516.79.0...12.14587512.2300001.0000.7210000.8180000.6452.53424716.2328774.38356217.671233
60053.0634.3901090.414508902.31600.08.72806398.63013718.418.343.6...12.90725012.6733121.0000.7210000.8480000.6102.12328815.5479453.97260318.219178
70050.7649.6663670.389747886.51600.08.74231398.90411015.54.216.2...13.01787512.9964370.9930.6920000.8310000.6811.71232915.8219185.27397317.260274
80035.8764.0886330.258304870.11600.08.76675097.9452058.229.637.9...14.05718813.4538750.9990.7800000.9100000.7051.78082214.8630145.27397315.753425
90079.5316.0279290.604717874.21600.09.94343798.08219228.914.419.1...13.75687513.2337500.9960.7570000.8300000.6161.71232913.9041105.89041117.191781
100074.5378.7956350.601876868.81600.010.42593798.35616423.415.317.8...13.81450013.5794370.9990.6870000.9200000.6801.84931514.1780825.89041116.232877
110059.5528.8827820.455873869.51600.010.06981298.90411031.119.133.8...14.29243813.5561881.0000.7090000.8890000.6621.71232913.4246586.02739716.917808
120050.6620.1344200.448163876.61600.010.88937597.73972612.420.118.6...14.35893713.7461251.0000.7680000.8460000.7021.57534214.1780827.46575315.410959
130044.0811.9092680.319921876.91600.014.06562598.90411037.718.718.0...14.39237512.5313121.0000.7300000.8630000.7311.71232913.9041106.84931517.945205
140046.5807.3012260.336383875.91600.012.96156299.24657531.634.828.5...14.10412512.7936880.9830.7000000.8480000.7391.64383615.8219186.71232916.917808
150046.2650.2447480.351928866.81600.012.22837598.63013716.539.557.7...14.22637513.4739370.9930.6960000.9300000.7081.57534215.2739737.94520516.643836
160058.4584.5362810.414643854.91600.012.18368798.97260346.014.129.3...13.68156313.5543130.9990.7200000.9090000.7281.43835613.6301377.87671219.726027
170057.8566.1837680.372401826.41600.018.19643798.21917858.627.020.6...13.83850013.8646250.9910.7940000.9050000.6981.50684914.1095898.35616418.835616
180042.4786.1994930.292512838.71600.017.14181399.24657537.032.533.9...14.34543814.2512500.9970.8540000.9360000.7341.64383612.9452058.08219217.876712
190025.01193.1384700.176046859.71600.016.56400098.83561624.235.032.5...13.78756213.2238750.9930.6510000.9380000.6861.30137014.5205489.24657519.041096
200062.0482.3221090.439617863.91600.015.34543899.31506842.047.721.6...14.01181213.1301870.9950.7510000.8810000.7701.78082214.9315079.45205519.520548
210034.7726.3989350.319268873.51600.016.25787598.76712328.422.556.4...13.76168713.8535630.9990.7920000.9390000.6151.09589015.13698610.13698617.534247
220059.1584.8704640.437834852.11600.013.40225099.10958936.76.822.6...13.52462513.7071870.9970.7670000.9200000.5611.64383613.69863010.82191818.287671
230055.6767.0948470.375829848.21600.012.88693898.63013732.637.638.1...14.07218713.7955001.0000.8060000.9540000.6930.89041114.3150689.86301416.164384
240026.71005.8964090.199230848.91600.013.01093898.83561628.447.329.9...13.84150013.8143120.9990.7880000.8620000.6141.16438415.13698611.64383616.780822
\n", + "

25 rows × 27 columns

\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 85.0 300.000000 1.191221 1510.0 1600.0 \n", + "100 42.9 902.100631 0.387646 1202.9 1600.0 \n", + "200 43.6 833.490836 0.413924 1089.5 1600.0 \n", + "300 61.1 656.712878 0.461141 1027.7 1600.0 \n", + "400 52.4 746.225718 0.392082 981.1 1600.0 \n", + "500 23.4 994.577423 0.192662 932.4 1600.0 \n", + "600 53.0 634.390109 0.414508 902.3 1600.0 \n", + "700 50.7 649.666367 0.389747 886.5 1600.0 \n", + "800 35.8 764.088633 0.258304 870.1 1600.0 \n", + "900 79.5 316.027929 0.604717 874.2 1600.0 \n", + "1000 74.5 378.795635 0.601876 868.8 1600.0 \n", + "1100 59.5 528.882782 0.455873 869.5 1600.0 \n", + "1200 50.6 620.134420 0.448163 876.6 1600.0 \n", + "1300 44.0 811.909268 0.319921 876.9 1600.0 \n", + "1400 46.5 807.301226 0.336383 875.9 1600.0 \n", + "1500 46.2 650.244748 0.351928 866.8 1600.0 \n", + "1600 58.4 584.536281 0.414643 854.9 1600.0 \n", + "1700 57.8 566.183768 0.372401 826.4 1600.0 \n", + "1800 42.4 786.199493 0.292512 838.7 1600.0 \n", + "1900 25.0 1193.138470 0.176046 859.7 1600.0 \n", + "2000 62.0 482.322109 0.439617 863.9 1600.0 \n", + "2100 34.7 726.398935 0.319268 873.5 1600.0 \n", + "2200 59.1 584.870464 0.437834 852.1 1600.0 \n", + "2300 55.6 767.094847 0.375829 848.2 1600.0 \n", + "2400 26.7 1005.896409 0.199230 848.9 1600.0 \n", + "\n", + " average_specificity knowledge steps_in_trial_no_mods \\\n", + "trial \n", + "0 8.328125 100.000000 100.0 \n", + "100 7.997187 98.835616 12.7 \n", + "200 7.909750 98.424658 11.1 \n", + "300 8.339875 98.630137 7.7 \n", + "400 8.193750 98.493151 5.4 \n", + "500 8.401375 98.219178 5.5 \n", + "600 8.728063 98.630137 18.4 \n", + "700 8.742313 98.904110 15.5 \n", + "800 8.766750 97.945205 8.2 \n", + "900 9.943437 98.082192 28.9 \n", + "1000 10.425937 98.356164 23.4 \n", + "1100 10.069812 98.904110 31.1 \n", + "1200 10.889375 97.739726 12.4 \n", + "1300 14.065625 98.904110 37.7 \n", + "1400 12.961562 99.246575 31.6 \n", + "1500 12.228375 98.630137 16.5 \n", + "1600 12.183687 98.972603 46.0 \n", + "1700 18.196437 98.219178 58.6 \n", + "1800 17.141813 99.246575 37.0 \n", + "1900 16.564000 98.835616 24.2 \n", + "2000 15.345438 99.315068 42.0 \n", + "2100 16.257875 98.767123 28.4 \n", + "2200 13.402250 99.109589 36.7 \n", + "2300 12.886938 98.630137 32.6 \n", + "2400 13.010938 98.835616 28.4 \n", + "\n", + " steps_in_trial_update steps_in_trial_cover ... \\\n", + "trial ... \n", + "0 89.9 91.3 ... \n", + "100 6.2 6.2 ... \n", + "200 10.1 16.6 ... \n", + "300 8.6 6.8 ... \n", + "400 28.5 16.2 ... \n", + "500 16.7 9.0 ... \n", + "600 18.3 43.6 ... \n", + "700 4.2 16.2 ... \n", + "800 29.6 37.9 ... \n", + "900 14.4 19.1 ... \n", + "1000 15.3 17.8 ... \n", + "1100 19.1 33.8 ... \n", + "1200 20.1 18.6 ... \n", + "1300 18.7 18.0 ... \n", + "1400 34.8 28.5 ... \n", + "1500 39.5 57.7 ... \n", + "1600 14.1 29.3 ... \n", + "1700 27.0 20.6 ... \n", + "1800 32.5 33.9 ... \n", + "1900 35.0 32.5 ... \n", + "2000 47.7 21.6 ... \n", + "2100 22.5 56.4 ... \n", + "2200 6.8 22.6 ... \n", + "2300 37.6 38.1 ... \n", + "2400 47.3 29.9 ... \n", + "\n", + " average_specificity_cover average_specificity_both \\\n", + "trial \n", + "0 8.349375 8.261312 \n", + "100 8.311687 8.553250 \n", + "200 9.489250 9.701312 \n", + "300 10.471750 11.211813 \n", + "400 11.320375 11.653937 \n", + "500 12.145875 12.230000 \n", + "600 12.907250 12.673312 \n", + "700 13.017875 12.996437 \n", + "800 14.057188 13.453875 \n", + "900 13.756875 13.233750 \n", + "1000 13.814500 13.579437 \n", + "1100 14.292438 13.556188 \n", + "1200 14.358937 13.746125 \n", + "1300 14.392375 12.531312 \n", + "1400 14.104125 12.793688 \n", + "1500 14.226375 13.473937 \n", + "1600 13.681563 13.554313 \n", + "1700 13.838500 13.864625 \n", + "1800 14.345438 14.251250 \n", + "1900 13.787562 13.223875 \n", + "2000 14.011812 13.130187 \n", + "2100 13.761687 13.853563 \n", + "2200 13.524625 13.707187 \n", + "2300 14.072187 13.795500 \n", + "2400 13.841500 13.814312 \n", + "\n", + " fraction_accuracy_no_mods fraction_accuracy_update \\\n", + "trial \n", + "0 0.994 0.939329 \n", + "100 1.000 0.807000 \n", + "200 1.000 0.699000 \n", + "300 0.981 0.604000 \n", + "400 0.995 0.817000 \n", + "500 1.000 0.721000 \n", + "600 1.000 0.721000 \n", + "700 0.993 0.692000 \n", + "800 0.999 0.780000 \n", + "900 0.996 0.757000 \n", + "1000 0.999 0.687000 \n", + "1100 1.000 0.709000 \n", + "1200 1.000 0.768000 \n", + "1300 1.000 0.730000 \n", + "1400 0.983 0.700000 \n", + "1500 0.993 0.696000 \n", + "1600 0.999 0.720000 \n", + "1700 0.991 0.794000 \n", + "1800 0.997 0.854000 \n", + "1900 0.993 0.651000 \n", + "2000 0.995 0.751000 \n", + "2100 0.999 0.792000 \n", + "2200 0.997 0.767000 \n", + "2300 1.000 0.806000 \n", + "2400 0.999 0.788000 \n", + "\n", + " fraction_accuracy_cover fraction_accuracy_both knowledge_no_mods \\\n", + "trial \n", + "0 0.993333 0.949 3.630137 \n", + "100 0.994000 0.701 2.123288 \n", + "200 0.958000 0.622 2.465753 \n", + "300 0.812000 0.602 2.397260 \n", + "400 0.896000 0.627 2.465753 \n", + "500 0.818000 0.645 2.534247 \n", + "600 0.848000 0.610 2.123288 \n", + "700 0.831000 0.681 1.712329 \n", + "800 0.910000 0.705 1.780822 \n", + "900 0.830000 0.616 1.712329 \n", + "1000 0.920000 0.680 1.849315 \n", + "1100 0.889000 0.662 1.712329 \n", + "1200 0.846000 0.702 1.575342 \n", + "1300 0.863000 0.731 1.712329 \n", + "1400 0.848000 0.739 1.643836 \n", + "1500 0.930000 0.708 1.575342 \n", + "1600 0.909000 0.728 1.438356 \n", + "1700 0.905000 0.698 1.506849 \n", + "1800 0.936000 0.734 1.643836 \n", + "1900 0.938000 0.686 1.301370 \n", + "2000 0.881000 0.770 1.780822 \n", + "2100 0.939000 0.615 1.095890 \n", + "2200 0.920000 0.561 1.643836 \n", + "2300 0.954000 0.693 0.890411 \n", + "2400 0.862000 0.614 1.164384 \n", + "\n", + " knowledge_update knowledge_cover knowledge_both \n", + "trial \n", + "0 13.767123 2.739726 14.041096 \n", + "100 18.493151 1.780822 18.493151 \n", + "200 16.643836 1.849315 17.739726 \n", + "300 16.095890 2.534247 17.876712 \n", + "400 16.095890 3.219178 17.602740 \n", + "500 16.232877 4.383562 17.671233 \n", + "600 15.547945 3.972603 18.219178 \n", + "700 15.821918 5.273973 17.260274 \n", + "800 14.863014 5.273973 15.753425 \n", + "900 13.904110 5.890411 17.191781 \n", + "1000 14.178082 5.890411 16.232877 \n", + "1100 13.424658 6.027397 16.917808 \n", + "1200 14.178082 7.465753 15.410959 \n", + "1300 13.904110 6.849315 17.945205 \n", + "1400 15.821918 6.712329 16.917808 \n", + "1500 15.273973 7.945205 16.643836 \n", + "1600 13.630137 7.876712 19.726027 \n", + "1700 14.109589 8.356164 18.835616 \n", + "1800 12.945205 8.082192 17.876712 \n", + "1900 14.520548 9.246575 19.041096 \n", + "2000 14.931507 9.452055 19.520548 \n", + "2100 15.136986 10.136986 17.534247 \n", + "2200 13.698630 10.821918 18.287671 \n", + "2300 14.315068 9.863014 16.164384 \n", + "2400 15.136986 11.643836 16.780822 \n", + "\n", + "[25 rows x 27 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracyknowledge
trial
0100.00.0000001.9874701600.01510.88.3082500.9943.630137
10012.71143.6932410.1841091600.01382.68.6831871.0002.123288
20011.11135.8901520.1729461600.01369.39.4086251.0002.465753
3007.71134.4816220.1462861600.01368.010.7278750.9812.397260
4005.41332.1249400.0752601600.01372.011.6293120.9952.465753
5005.51234.2611130.0879661600.01381.311.8642501.0002.534247
60018.4986.6301400.2906421600.01379.112.2886251.0002.123288
70015.51179.7009310.2454141600.01382.712.6007500.9931.712329
8008.21120.1039880.1312271600.01377.913.2622500.9991.780822
90028.9974.1404130.4217491600.01370.713.4946250.9961.712329
100023.41038.0833190.3628521600.01377.614.0117500.9991.849315
110031.1902.1476540.5662821600.01367.913.7191251.0001.712329
120012.41188.6139830.2763441600.01372.813.9977501.0001.575342
130037.7882.1947510.5324891600.01359.814.2200001.0001.712329
140031.6886.1434060.4471871600.01353.214.2136880.9831.643836
150016.51073.6458620.2474951600.01331.413.8082500.9931.575342
160046.0674.5393290.6955391600.01353.214.1835000.9991.438356
170058.6646.6826761.0094491600.01346.113.8793130.9911.506849
180037.0834.1113420.6008061600.01350.413.7388750.9971.643836
190024.21014.6547110.4027611600.01348.913.3561250.9931.301370
200042.0723.8323090.6047211600.01349.613.7263120.9951.780822
210028.4977.5170220.3955051600.01351.614.1415000.9991.095890
220036.7916.0382040.5294461600.01361.014.8900000.9971.643836
230032.6943.9950590.4420641600.01361.614.4911881.0000.890411
240028.4907.4237080.3926601600.01365.414.3155000.9991.164384
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 100.0 0.000000 1.987470 1600.0 1510.8 \n", + "100 12.7 1143.693241 0.184109 1600.0 1382.6 \n", + "200 11.1 1135.890152 0.172946 1600.0 1369.3 \n", + "300 7.7 1134.481622 0.146286 1600.0 1368.0 \n", + "400 5.4 1332.124940 0.075260 1600.0 1372.0 \n", + "500 5.5 1234.261113 0.087966 1600.0 1381.3 \n", + "600 18.4 986.630140 0.290642 1600.0 1379.1 \n", + "700 15.5 1179.700931 0.245414 1600.0 1382.7 \n", + "800 8.2 1120.103988 0.131227 1600.0 1377.9 \n", + "900 28.9 974.140413 0.421749 1600.0 1370.7 \n", + "1000 23.4 1038.083319 0.362852 1600.0 1377.6 \n", + "1100 31.1 902.147654 0.566282 1600.0 1367.9 \n", + "1200 12.4 1188.613983 0.276344 1600.0 1372.8 \n", + "1300 37.7 882.194751 0.532489 1600.0 1359.8 \n", + "1400 31.6 886.143406 0.447187 1600.0 1353.2 \n", + "1500 16.5 1073.645862 0.247495 1600.0 1331.4 \n", + "1600 46.0 674.539329 0.695539 1600.0 1353.2 \n", + "1700 58.6 646.682676 1.009449 1600.0 1346.1 \n", + "1800 37.0 834.111342 0.600806 1600.0 1350.4 \n", + "1900 24.2 1014.654711 0.402761 1600.0 1348.9 \n", + "2000 42.0 723.832309 0.604721 1600.0 1349.6 \n", + "2100 28.4 977.517022 0.395505 1600.0 1351.6 \n", + "2200 36.7 916.038204 0.529446 1600.0 1361.0 \n", + "2300 32.6 943.995059 0.442064 1600.0 1361.6 \n", + "2400 28.4 907.423708 0.392660 1600.0 1365.4 \n", + "\n", + " average_specificity fraction_accuracy knowledge \n", + "trial \n", + "0 8.308250 0.994 3.630137 \n", + "100 8.683187 1.000 2.123288 \n", + "200 9.408625 1.000 2.465753 \n", + "300 10.727875 0.981 2.397260 \n", + "400 11.629312 0.995 2.465753 \n", + "500 11.864250 1.000 2.534247 \n", + "600 12.288625 1.000 2.123288 \n", + "700 12.600750 0.993 1.712329 \n", + "800 13.262250 0.999 1.780822 \n", + "900 13.494625 0.996 1.712329 \n", + "1000 14.011750 0.999 1.849315 \n", + "1100 13.719125 1.000 1.712329 \n", + "1200 13.997750 1.000 1.575342 \n", + "1300 14.220000 1.000 1.712329 \n", + "1400 14.213688 0.983 1.643836 \n", + "1500 13.808250 0.993 1.575342 \n", + "1600 14.183500 0.999 1.438356 \n", + "1700 13.879313 0.991 1.506849 \n", + "1800 13.738875 0.997 1.643836 \n", + "1900 13.356125 0.993 1.301370 \n", + "2000 13.726312 0.995 1.780822 \n", + "2100 14.141500 0.999 1.095890 \n", + "2200 14.890000 0.997 1.643836 \n", + "2300 14.491188 1.000 0.890411 \n", + "2400 14.315500 0.999 1.164384 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracyknowledge
trial
089.9300.0000001.3042031600.01510.78.3078130.93932913.767123
1006.21199.2756080.0791131600.01368.58.5290630.80700018.493151
20010.11043.1523100.1398331600.01365.910.3778120.69900016.643836
3008.61115.7344420.1184191600.01369.811.4836870.60400016.095890
40028.51077.0548350.2992091600.01377.112.1349370.81700016.095890
50016.71073.9349720.1762221600.01377.112.5992500.72100016.232877
60018.31139.6477810.2187191600.01378.413.2963120.72100015.547945
7004.21403.3021220.0518771600.01377.114.1939380.69200015.821918
80029.6868.2518670.3488581600.01371.113.7868120.78000014.863014
90014.41277.5742180.1800631600.01364.213.7013130.75700013.904110
100015.31167.9828550.1776301600.01354.413.7047500.68700014.178082
110019.11023.7938640.1976131600.01348.613.4351880.70900013.424658
120020.11134.0766060.2441061600.01360.313.6170000.76800014.178082
130018.71150.9486450.2029071600.01362.213.9996250.73000013.904110
140034.8870.7494290.3719381600.01360.013.9566250.70000015.821918
150039.5758.6786590.4652111600.01364.714.3970000.69600015.273973
160014.11236.9830320.1690641600.01360.714.2675630.72000013.630137
170027.0958.7472410.3228711600.01370.314.5860630.79400014.109589
180032.5956.0259940.3147961600.01354.314.2656250.85400012.945205
190035.0870.9705170.3637291600.01353.814.0125000.65100014.520548
200047.7686.9310150.5535311600.01356.514.2558130.75100014.931507
210022.51025.0225840.2392311600.01356.913.6989370.79200015.136986
22006.81200.1653340.0846321600.01357.413.9588750.76700013.698630
230037.6994.6136210.4286301600.01366.014.0339380.80600014.315068
240047.3885.1291470.5146941600.01350.214.0613120.78800015.136986
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 89.9 300.000000 1.304203 1600.0 1510.7 \n", + "100 6.2 1199.275608 0.079113 1600.0 1368.5 \n", + "200 10.1 1043.152310 0.139833 1600.0 1365.9 \n", + "300 8.6 1115.734442 0.118419 1600.0 1369.8 \n", + "400 28.5 1077.054835 0.299209 1600.0 1377.1 \n", + "500 16.7 1073.934972 0.176222 1600.0 1377.1 \n", + "600 18.3 1139.647781 0.218719 1600.0 1378.4 \n", + "700 4.2 1403.302122 0.051877 1600.0 1377.1 \n", + "800 29.6 868.251867 0.348858 1600.0 1371.1 \n", + "900 14.4 1277.574218 0.180063 1600.0 1364.2 \n", + "1000 15.3 1167.982855 0.177630 1600.0 1354.4 \n", + "1100 19.1 1023.793864 0.197613 1600.0 1348.6 \n", + "1200 20.1 1134.076606 0.244106 1600.0 1360.3 \n", + "1300 18.7 1150.948645 0.202907 1600.0 1362.2 \n", + "1400 34.8 870.749429 0.371938 1600.0 1360.0 \n", + "1500 39.5 758.678659 0.465211 1600.0 1364.7 \n", + "1600 14.1 1236.983032 0.169064 1600.0 1360.7 \n", + "1700 27.0 958.747241 0.322871 1600.0 1370.3 \n", + "1800 32.5 956.025994 0.314796 1600.0 1354.3 \n", + "1900 35.0 870.970517 0.363729 1600.0 1353.8 \n", + "2000 47.7 686.931015 0.553531 1600.0 1356.5 \n", + "2100 22.5 1025.022584 0.239231 1600.0 1356.9 \n", + "2200 6.8 1200.165334 0.084632 1600.0 1357.4 \n", + "2300 37.6 994.613621 0.428630 1600.0 1366.0 \n", + "2400 47.3 885.129147 0.514694 1600.0 1350.2 \n", + "\n", + " average_specificity fraction_accuracy knowledge \n", + "trial \n", + "0 8.307813 0.939329 13.767123 \n", + "100 8.529063 0.807000 18.493151 \n", + "200 10.377812 0.699000 16.643836 \n", + "300 11.483687 0.604000 16.095890 \n", + "400 12.134937 0.817000 16.095890 \n", + "500 12.599250 0.721000 16.232877 \n", + "600 13.296312 0.721000 15.547945 \n", + "700 14.193938 0.692000 15.821918 \n", + "800 13.786812 0.780000 14.863014 \n", + "900 13.701313 0.757000 13.904110 \n", + "1000 13.704750 0.687000 14.178082 \n", + "1100 13.435188 0.709000 13.424658 \n", + "1200 13.617000 0.768000 14.178082 \n", + "1300 13.999625 0.730000 13.904110 \n", + "1400 13.956625 0.700000 15.821918 \n", + "1500 14.397000 0.696000 15.273973 \n", + "1600 14.267563 0.720000 13.630137 \n", + "1700 14.586063 0.794000 14.109589 \n", + "1800 14.265625 0.854000 12.945205 \n", + "1900 14.012500 0.651000 14.520548 \n", + "2000 14.255813 0.751000 14.931507 \n", + "2100 13.698937 0.792000 15.136986 \n", + "2200 13.958875 0.767000 13.698630 \n", + "2300 14.033938 0.806000 14.315068 \n", + "2400 14.061312 0.788000 15.136986 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracyknowledge
trial
091.3300.0000001.4841791600.01510.18.3493750.9933332.739726
1006.21179.9907860.0856381600.01365.38.3116870.9940001.780822
20016.61198.7483940.2063391600.01359.29.4892500.9580001.849315
3006.81272.1304750.0874621600.01362.310.4717500.8120002.534247
40016.21026.2564750.2084771600.01371.211.3203750.8960003.219178
5009.01113.3370500.1344201600.01369.512.1458750.8180004.383562
60043.6736.2016890.5245291600.01374.412.9072500.8480003.972603
70016.21009.1279510.2159781600.01371.313.0178750.8310005.273973
80037.9848.4364590.4586931600.01377.314.0571880.9100005.273973
90019.11249.6874490.2356441600.01384.913.7568750.8300005.890411
100017.8999.8103940.2067451600.01387.313.8145000.9200005.890411
110033.8856.2684400.4351761600.01376.414.2924380.8890006.027397
120018.61085.8653320.2466271600.01370.314.3589370.8460007.465753
130018.01116.8645950.2080031600.01370.314.3923750.8630006.849315
140028.51056.6135400.3570091600.01373.914.1041250.8480006.712329
150057.7568.5311190.7630511600.01363.214.2263750.9300007.945205
160029.3965.6909700.3641251600.01359.513.6815630.9090007.876712
170020.6991.9190650.2809221600.01349.313.8385000.9050008.356164
180033.9904.3658150.4582761600.01350.614.3454380.9360008.082192
190032.5950.0197080.4405721600.01356.913.7875620.9380009.246575
200021.61063.8714260.2857261600.01361.414.0118120.8810009.452055
210056.4795.7666560.6048391600.01351.013.7616870.93900010.136986
220022.61000.4701770.3232631600.01353.513.5246250.92000010.821918
230038.1875.0196430.4410991600.01359.614.0721870.9540009.863014
240029.91017.3422970.3652861600.01349.113.8415000.86200011.643836
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 91.3 300.000000 1.484179 1600.0 1510.1 \n", + "100 6.2 1179.990786 0.085638 1600.0 1365.3 \n", + "200 16.6 1198.748394 0.206339 1600.0 1359.2 \n", + "300 6.8 1272.130475 0.087462 1600.0 1362.3 \n", + "400 16.2 1026.256475 0.208477 1600.0 1371.2 \n", + "500 9.0 1113.337050 0.134420 1600.0 1369.5 \n", + "600 43.6 736.201689 0.524529 1600.0 1374.4 \n", + "700 16.2 1009.127951 0.215978 1600.0 1371.3 \n", + "800 37.9 848.436459 0.458693 1600.0 1377.3 \n", + "900 19.1 1249.687449 0.235644 1600.0 1384.9 \n", + "1000 17.8 999.810394 0.206745 1600.0 1387.3 \n", + "1100 33.8 856.268440 0.435176 1600.0 1376.4 \n", + "1200 18.6 1085.865332 0.246627 1600.0 1370.3 \n", + "1300 18.0 1116.864595 0.208003 1600.0 1370.3 \n", + "1400 28.5 1056.613540 0.357009 1600.0 1373.9 \n", + "1500 57.7 568.531119 0.763051 1600.0 1363.2 \n", + "1600 29.3 965.690970 0.364125 1600.0 1359.5 \n", + "1700 20.6 991.919065 0.280922 1600.0 1349.3 \n", + "1800 33.9 904.365815 0.458276 1600.0 1350.6 \n", + "1900 32.5 950.019708 0.440572 1600.0 1356.9 \n", + "2000 21.6 1063.871426 0.285726 1600.0 1361.4 \n", + "2100 56.4 795.766656 0.604839 1600.0 1351.0 \n", + "2200 22.6 1000.470177 0.323263 1600.0 1353.5 \n", + "2300 38.1 875.019643 0.441099 1600.0 1359.6 \n", + "2400 29.9 1017.342297 0.365286 1600.0 1349.1 \n", + "\n", + " average_specificity fraction_accuracy knowledge \n", + "trial \n", + "0 8.349375 0.993333 2.739726 \n", + "100 8.311687 0.994000 1.780822 \n", + "200 9.489250 0.958000 1.849315 \n", + "300 10.471750 0.812000 2.534247 \n", + "400 11.320375 0.896000 3.219178 \n", + "500 12.145875 0.818000 4.383562 \n", + "600 12.907250 0.848000 3.972603 \n", + "700 13.017875 0.831000 5.273973 \n", + "800 14.057188 0.910000 5.273973 \n", + "900 13.756875 0.830000 5.890411 \n", + "1000 13.814500 0.920000 5.890411 \n", + "1100 14.292438 0.889000 6.027397 \n", + "1200 14.358937 0.846000 7.465753 \n", + "1300 14.392375 0.863000 6.849315 \n", + "1400 14.104125 0.848000 6.712329 \n", + "1500 14.226375 0.930000 7.945205 \n", + "1600 13.681563 0.909000 7.876712 \n", + "1700 13.838500 0.905000 8.356164 \n", + "1800 14.345438 0.936000 8.082192 \n", + "1900 13.787562 0.938000 9.246575 \n", + "2000 14.011812 0.881000 9.452055 \n", + "2100 13.761687 0.939000 10.136986 \n", + "2200 13.524625 0.920000 10.821918 \n", + "2300 14.072187 0.954000 9.863014 \n", + "2400 13.841500 0.862000 11.643836 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracyknowledge
trial
0100.00.0000001.4773971600.01510.28.2613120.94914.041096
10010.61063.7632280.1342891600.01368.78.5532500.70118.493151
20026.5971.9454070.2900991600.01362.39.7013120.62217.739726
30015.11068.2095700.1590541600.01372.511.2118130.60217.876712
4007.31238.5063770.1037931600.01374.111.6539370.62717.602740
50018.71073.9752280.2028671600.01373.912.2300000.64517.671233
6004.61269.8163420.0607221600.01371.912.6733120.61018.219178
70022.0967.5074850.2555011600.01376.312.9964370.68117.260274
80016.61125.4474420.1830271600.01376.513.4538750.70515.753425
90035.11090.1085430.3937241600.01366.713.2337500.61617.191781
100024.61016.2034420.2849921600.01361.813.5794370.68016.232877
110038.2787.4327120.3873301600.01371.113.5561880.66216.917808
120035.7819.3013590.4149791600.01369.613.7461250.70215.410959
130018.81239.5252680.1884651600.01343.412.5313120.73117.945205
140014.51136.7930590.1538051600.01342.112.7936880.73916.917808
150044.8703.4954360.4835011600.01341.213.4739370.70816.643836
160052.8666.8612250.5852711600.01343.313.5543130.72819.726027
170033.7942.9021170.3915351600.01342.813.8646250.69818.835616
180044.9669.9674740.5239451600.01349.714.2512500.73417.876712
190032.41026.4776040.3438251600.01341.813.2238750.68619.041096
200030.7886.3465110.3183471600.01343.313.1301870.77019.520548
210024.1944.4679290.2673841600.01360.913.8535630.61517.534247
220030.11004.2936690.3476601600.01351.713.7071870.56118.287671
230026.4966.5826020.3064831600.01353.713.7955000.69316.164384
240026.9983.2941660.2970971600.01351.413.8143120.61416.780822
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 100.0 0.000000 1.477397 1600.0 1510.2 \n", + "100 10.6 1063.763228 0.134289 1600.0 1368.7 \n", + "200 26.5 971.945407 0.290099 1600.0 1362.3 \n", + "300 15.1 1068.209570 0.159054 1600.0 1372.5 \n", + "400 7.3 1238.506377 0.103793 1600.0 1374.1 \n", + "500 18.7 1073.975228 0.202867 1600.0 1373.9 \n", + "600 4.6 1269.816342 0.060722 1600.0 1371.9 \n", + "700 22.0 967.507485 0.255501 1600.0 1376.3 \n", + "800 16.6 1125.447442 0.183027 1600.0 1376.5 \n", + "900 35.1 1090.108543 0.393724 1600.0 1366.7 \n", + "1000 24.6 1016.203442 0.284992 1600.0 1361.8 \n", + "1100 38.2 787.432712 0.387330 1600.0 1371.1 \n", + "1200 35.7 819.301359 0.414979 1600.0 1369.6 \n", + "1300 18.8 1239.525268 0.188465 1600.0 1343.4 \n", + "1400 14.5 1136.793059 0.153805 1600.0 1342.1 \n", + "1500 44.8 703.495436 0.483501 1600.0 1341.2 \n", + "1600 52.8 666.861225 0.585271 1600.0 1343.3 \n", + "1700 33.7 942.902117 0.391535 1600.0 1342.8 \n", + "1800 44.9 669.967474 0.523945 1600.0 1349.7 \n", + "1900 32.4 1026.477604 0.343825 1600.0 1341.8 \n", + "2000 30.7 886.346511 0.318347 1600.0 1343.3 \n", + "2100 24.1 944.467929 0.267384 1600.0 1360.9 \n", + "2200 30.1 1004.293669 0.347660 1600.0 1351.7 \n", + "2300 26.4 966.582602 0.306483 1600.0 1353.7 \n", + "2400 26.9 983.294166 0.297097 1600.0 1351.4 \n", + "\n", + " average_specificity fraction_accuracy knowledge \n", + "trial \n", + "0 8.261312 0.949 14.041096 \n", + "100 8.553250 0.701 18.493151 \n", + "200 9.701312 0.622 17.739726 \n", + "300 11.211813 0.602 17.876712 \n", + "400 11.653937 0.627 17.602740 \n", + "500 12.230000 0.645 17.671233 \n", + "600 12.673312 0.610 18.219178 \n", + "700 12.996437 0.681 17.260274 \n", + "800 13.453875 0.705 15.753425 \n", + "900 13.233750 0.616 17.191781 \n", + "1000 13.579437 0.680 16.232877 \n", + "1100 13.556188 0.662 16.917808 \n", + "1200 13.746125 0.702 15.410959 \n", + "1300 12.531312 0.731 17.945205 \n", + "1400 12.793688 0.739 16.917808 \n", + "1500 13.473937 0.708 16.643836 \n", + "1600 13.554313 0.728 19.726027 \n", + "1700 13.864625 0.698 18.835616 \n", + "1800 14.251250 0.734 17.876712 \n", + "1900 13.223875 0.686 19.041096 \n", + "2000 13.130187 0.770 19.520548 \n", + "2100 13.853563 0.615 17.534247 \n", + "2200 13.707187 0.561 18.287671 \n", + "2300 13.795500 0.693 16.164384 \n", + "2400 13.814312 0.614 16.780822 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)\n", + "display(df_no_mods)\n", + "display(df_update)\n", + "display(df_cover)\n", + "display(df_both)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/Experiment_XCS_XNCS_Woods1.ipynb b/XCS_Experiments/Experiment_XCS_XNCS_Woods1.ipynb new file mode 100644 index 0000000..ba8da7a --- /dev/null +++ b/XCS_Experiments/Experiment_XCS_XNCS_Woods1.ipynb @@ -0,0 +1,2464 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import copy\n", + "\n", + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_woods" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "['.', '.', '.', '.', '.', '.', '.', 'O']\n", + "\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[36mX\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n" + ] + } + ], + "source": [ + "maze = gym.make('Woods1-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS\n", + "from lcs.agents.xcs import Configuration as XCSConfig\n", + "from lcs.agents.xncs import XNCS\n", + "from lcs.agents.xncs import Configuration as XNCSConfig\n", + "\n", + "from utils.xcs_utils import *\n", + "from utils.nxcs_utils import *\n", + "\n", + "XCScfg = XCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_metrics)\n", + "\n", + "XNCScfg_no_mods = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=20,\n", + " update_env_input = False,\n", + " cover_env_input = False,)\n", + "\n", + "XNCScfg_update = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=20,\n", + " update_env_input = True,\n", + " cover_env_input = False,)\n", + "\n", + "XNCScfg_cover = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=20,\n", + " update_env_input = False,\n", + " cover_env_input = True,)\n", + "\n", + "XNCScfg_both = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=20,\n", + " update_env_input = True,\n", + " cover_env_input = True,)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting XCS\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with enviromental input during cover\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with enviromental input during update\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with all enviromental inputs\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n" + ] + } + ], + "source": [ + "from utils.xcs_utils import avg_experiment as XCSExp\n", + "from utils.nxcs_utils import avg_experiment as XNCSExp\n", + "\n", + "number_of_experiments = 10\n", + "explore = 1000\n", + "exploit = 1000\n", + "print(\"Starting XCS\")\n", + "df = XCSExp(\n", + " maze=maze,\n", + " cfg=XCScfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False\n", + " )\n", + "print(\"Starting XNCS\")\n", + "df_no_mods = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_no_mods,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False\n", + " )\n", + "print(\"Starting XNCS with enviromental input during cover\")\n", + "df_cover = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_cover,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False\n", + " )\n", + "print(\"Starting XNCS with enviromental input during update\")\n", + "df_update = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_update,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False\n", + " )\n", + "print(\"Starting XNCS with all enviromental inputs\")\n", + "df_both = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_both,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False\n", + "\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "df_all = pd.DataFrame(df)\n", + "\n", + "df_all['steps_in_trial_no_mods']=df_no_mods['steps_in_trial']\n", + "df_all['steps_in_trial_update'] =df_update['steps_in_trial']\n", + "df_all['steps_in_trial_cover'] =df_cover['steps_in_trial']\n", + "df_all['steps_in_trial_both'] =df_both['steps_in_trial']\n", + "\n", + "df_all['population_no_mods']=df_no_mods['population']\n", + "df_all['population_update'] =df_update['population']\n", + "df_all['population_cover'] =df_cover['population']\n", + "df_all['population_both'] =df_both['population']\n", + "\n", + "df_all['average_specificity_no_mods']=df_no_mods['average_specificity']\n", + "df_all['average_specificity_update']=df_update['average_specificity']\n", + "df_all['average_specificity_cover']=df_cover['average_specificity']\n", + "df_all['average_specificity_both']=df_both['average_specificity']\n", + "\n", + "df_all['fraction_accuracy_no_mods']=df_no_mods['fraction_accuracy']\n", + "df_all['fraction_accuracy_update']=df_update['fraction_accuracy']\n", + "df_all['fraction_accuracy_cover']=df_cover['fraction_accuracy']\n", + "df_all['fraction_accuracy_both']=df_both['fraction_accuracy']" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['average_specificity',\n", + " \"average_specificity_no_mods\",\n", + " \"average_specificity_update\",\n", + " \"average_specificity_cover\",\n", + " \"average_specificity_both\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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F198wX333XfGe1555RVWrVpFcHAwAEajkcmTJ5Obm4vVaiU8XJuPw8fHh44d1XU1nsSjWwRFKccACG2lpqhUmhaDwcAbb7zBY489xjvvvIO39+kqME8//TRvvvkmNtvpaT4KCwspLCykbdu252wrLCyMa665htatW3PzzTczb9487HZ7g3wOpXHw6BZBedpJDF4QFaXKSyi1c6Ff7q60bNkymjdvzp49e7jssssqlsfHx9O/f3+++eabimVSymrPJvnkk0/YvXs3f/zxB7NmzWLFihVnjC0oFzePbhHYMjPJCYJI//qf9UxRXCkhIYEVK1awadMm3n77bdLS0s54ffr06bz++usVv+yDg4MJCAggKSnpvNvs1q0bjz32GCtWrGDhwoUujV9pXDw6EYjsPEwhBgx65y/FVhR3k1Jy//33884779CqVSuefPJJnnjiiTPW6dSpE126dGHp0qUVy5555hkefPBBTCZtTMNkMvHRRx9RVFTE6tWrK9ZLSEigdevWDfJZlMbBo7uGfHKKKItzZrI1RWk8Pv74Y1q1alXRHfTAAw/w+eefc+zYsTPWe/bZZ+nVq1fF8/vvv5+ioiL69euHwWDAYDDw+OOPI6Vk5syZ/P3vf8fPz4+AgADVLeRhhJRnzyffuPXt21du3bq1ztuRdjt7u17Cjktbcfvs3+shMsVT7N+/n86dO7s7DEU5r6r+jQohtkkp+1a1vsd2DdlyctDbQagpKhVF8XAemwjK0k4CaopKRVEUj00EeccPA+DXvKWbI1EURXEvj00EBSlHAQhpedEUUlUURakVj00EJWknsOogorlKBIqieDaPTQTW9HRygyAqUI0RKIri2Tw2EcjMHHKDBKE+oe4ORVFq5HxlqI8dO0ZycrJbS1Fv3bqVadOmAbB69Wo2bNhQ8dqdd97JDz/8UJuP7Haff/45Dz30ULXrnP15mxKPTQSGnAKKQn3R6/TuDkVRaqS6MtSAW0tR9+3bl9mzZwNN+8BYG03583rklcVSSvzySjF3Dnd3KEpTt+xpSN9dv9uM7gbjXqt2larKUJ/iylLU3bp1Y+3atRiNRiIiInj77be54447uP3225k8eTJeXl7MmjWL999/n7lz56LX6/n6668r4luzZg1vvfUW6enpzJw5kxtvvPGcfXz99dfMnj0bs9nMgAED+PDDD9Hr9QQGBvLI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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[[\"fraction_accuracy_no_mods\",\n", + " \"fraction_accuracy_update\",\n", + " \"fraction_accuracy_cover\",\n", + " \"fraction_accuracy_both\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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NmzYQCgU4pFHHuGSSy7hlVdeYeHChXg8Hnbu3Mlll13GE088wZw5c9i9ezdPPPEEAK+88gqrV69u8rmDUW131apV1NTUcNFFFzFlyhS+/PJLevfuzYIFC4iJiWHatGmMGTOGFStWUFVVxcsvv8ykSZN45JFHiIuLqy/dMmLEiPrqvDt37mTMmDGcd9553HvvvVx11VVUVVURCoWYM2dOq2tzHY30LA5TlF+N21tK7GAp8yG6tu5aohyMct+zZs1i/fr1JCQkMHv2bHw+HzfccAPz5s2r/4KfM2cOd955J7169WLx4sX1iaK5UuaHe+yxxzj33HNZuXIlixcv5uc//zm1tbWAURer7nXmzZvH/v37ueKKK3j33Xfrnz9v3ryjlhaps337du644w42btxIUlIS77zzTv1jtbW1fPnll8yePZsbb7zxmPt5/PHH6d+/P3l5eTz55JP84x//4IILLiAvL49169YxZsyYYz6/NaRncZhaTwxJtfvoOWlatEMR3URLPYD21B1LlINxmO3MM42zFa+99lqee+45zjvvPHJzc+trUs2cOZM//elP3H333Uc8/2ilzBv7+OOPWbhwIU899RQAPp+PffuM+9xMnz6dxMREwKhVtXfvXqZMmUK/fv1Yvnw5AwcOZOvWrfUxHk1ubm79F/n48ePZs2dP/WNXX301YFTxraqqOq5xjokTJ3LjjTcSDAa59NJL2yRZSM/iMD0rXiS98APGDh4X7VCEOCmNS5Q/88wzzRbbe+ihh/j9739f30NoXKL8aEaOHMk999zDokWLmvwSrjN16lSWLl3K0qVLmTZtGmlpaW1aohw4IqEppY5ZTvxwRytl3pjWmnfeeYe8vDzy8vLYt29ffR2lxjE2fv5VV13F/Pnzeeedd7jsssuOmXiPtZ+jvUebzdakN+fz+Zrd79SpU1myZAm9e/fmuuuuqz9B4WRIsjiMs6yUKncp8U6pCSW6ru5cohxg3759fPXVVwC8+eabTJkyhSFDhrBnzx527NgBwN///nfOPvvsE36dCy64gOeff74+Ca1du7bF51x++eX861//4s0332zxEFRL6u7Et2zZMhITE0lMTCQnJ4c1a9YAsGbNGnbv3g0c+f727t1Leno6t9xyCzfddFP9c06GJIvDeJ1OyrJSox2GECelO5coBxg6dCivvvoqo0aNory8nNtv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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['population',\n", + " \"population_no_mods\",\n", + " \"population_update\",\n", + " \"population_cover\",\n", + " \"population_both\",\n", + " ]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['steps_in_trial',\n", + " \"steps_in_trial_no_mods\",\n", + " \"steps_in_trial_update\",\n", + " \"steps_in_trial_cover\",\n", + " \"steps_in_trial_both\",\n", + " ]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "182.49999999999997\n", + "274.7\n", + "154.70000000000002\n", + "177.09999999999997\n", + "164.89999999999995\n" + ] + } + ], + "source": [ + "print(sum(df[\"steps_in_trial\"]))\n", + "print(sum(df[\"steps_in_trial_no_mods\"]))\n", + "print(sum(df[\"steps_in_trial_update\"]))\n", + "print(sum(df[\"steps_in_trial_cover\"]))\n", + "print(sum(df[\"steps_in_trial_both\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificitysteps_in_trial_no_modssteps_in_trial_updatesteps_in_trial_coversteps_in_trial_both...population_coverpopulation_bothaverage_specificity_no_modsaverage_specificity_updateaverage_specificity_coveraverage_specificity_bothfraction_accuracy_no_modsfraction_accuracy_updatefraction_accuracy_coverfraction_accuracy_both
trial
019.11000.0000000.00943556.256.97.73554820.512.419.027.4...53.570.77.6065168.7555128.1502378.2372620.9925150.9923080.0948390.115279
10011.11301.4145890.087160596.11600.015.5263759.59.15.111.3...734.3714.516.77787316.06875317.21300417.5232870.9900000.9000000.8100000.785000
20011.01123.4652300.097362736.81600.015.96518710.86.812.48.7...1022.11062.216.80625017.00537516.84387516.9664380.9950000.8820000.7990000.797000
3007.61201.1847120.074454858.71600.019.9535009.013.510.54.3...1096.31119.217.01362517.99168816.62918816.9981880.9840000.8650000.7970000.783000
40010.21216.6053300.118807919.91600.025.55025013.16.810.68.5...1151.51181.219.24012519.81718818.58556319.4086870.9960000.8250000.8120000.828000
50016.21178.2789560.197529933.61600.032.94318813.810.49.013.4...1194.41226.722.71956322.09375021.39662520.7954370.9890000.8490000.8280000.836000
60010.51241.6559910.098874914.21600.038.98862513.212.78.113.6...1220.71253.325.59787524.32637523.21293823.4288750.9780000.8440000.8410000.841000
70015.81108.0094380.225334901.21600.041.16006315.17.29.212.2...1236.51273.226.32468724.91712524.17318824.3031250.9830000.8230000.8190000.812000
80011.21290.7397580.128304883.21600.042.01231225.212.614.88.8...1238.81269.328.27575025.47131225.43700024.7147500.9800000.8510000.8150000.829000
90010.81157.0148550.106913875.81600.042.68575011.16.09.75.1...1242.81281.828.64531224.76825024.99725024.8238750.9810000.8380000.8200000.847000
10008.21332.9645970.063133879.01600.042.2844389.310.99.37.7...1256.31286.929.17443724.94493824.76175025.7211250.9620000.7960000.8360000.800000
11009.71304.3522540.079629865.81600.044.0758759.93.36.98.2...1257.81290.933.42175026.04262526.78606327.2432500.9240000.7170000.7050000.689000
12004.51447.5474240.029774841.11600.045.00112515.34.24.03.7...1259.21297.235.79431226.46506328.33737527.7226250.9590000.6370000.6620000.633000
13006.11481.7954150.039967832.61600.044.18806311.95.28.24.1...1250.91298.839.78837526.35506230.99100028.1166880.9050000.6270000.7180000.638000
14008.51286.0808180.059691826.11600.044.91787510.75.96.94.1...1242.21303.542.80543826.80025032.76718727.9047500.9570000.6650000.7110000.604000
15003.61528.3726020.024416820.01600.045.3570629.95.77.74.2...1239.11313.344.62468827.45662534.32700028.0343750.9720000.6200000.7300000.599000
16005.81525.7470050.038475818.71600.044.80025017.27.85.64.5...1237.21322.345.98237528.05087535.33387527.7297500.9710000.6310000.7090000.631000
17003.51506.8596420.033605823.11600.044.21568723.04.88.35.0...1234.41319.748.89093728.47781236.37231328.2996870.9600000.6520000.7370000.662000
18003.71614.4623720.027231821.61600.044.32600016.75.35.75.1...1239.41320.251.22468828.81662536.43943828.2675000.9330000.6690000.6640000.618000
19005.41470.7546530.028873818.31600.043.2301259.54.16.15.0...1234.11318.252.82187528.62525037.55518828.9895000.9420000.6180000.6630000.595000
\n", + "

20 rows × 22 columns

\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 19.1 1000.000000 0.009435 56.2 56.9 \n", + "100 11.1 1301.414589 0.087160 596.1 1600.0 \n", + "200 11.0 1123.465230 0.097362 736.8 1600.0 \n", + "300 7.6 1201.184712 0.074454 858.7 1600.0 \n", + "400 10.2 1216.605330 0.118807 919.9 1600.0 \n", + "500 16.2 1178.278956 0.197529 933.6 1600.0 \n", + "600 10.5 1241.655991 0.098874 914.2 1600.0 \n", + "700 15.8 1108.009438 0.225334 901.2 1600.0 \n", + "800 11.2 1290.739758 0.128304 883.2 1600.0 \n", + "900 10.8 1157.014855 0.106913 875.8 1600.0 \n", + "1000 8.2 1332.964597 0.063133 879.0 1600.0 \n", + "1100 9.7 1304.352254 0.079629 865.8 1600.0 \n", + "1200 4.5 1447.547424 0.029774 841.1 1600.0 \n", + "1300 6.1 1481.795415 0.039967 832.6 1600.0 \n", + "1400 8.5 1286.080818 0.059691 826.1 1600.0 \n", + "1500 3.6 1528.372602 0.024416 820.0 1600.0 \n", + "1600 5.8 1525.747005 0.038475 818.7 1600.0 \n", + "1700 3.5 1506.859642 0.033605 823.1 1600.0 \n", + "1800 3.7 1614.462372 0.027231 821.6 1600.0 \n", + "1900 5.4 1470.754653 0.028873 818.3 1600.0 \n", + "\n", + " average_specificity steps_in_trial_no_mods steps_in_trial_update \\\n", + "trial \n", + "0 7.735548 20.5 12.4 \n", + "100 15.526375 9.5 9.1 \n", + "200 15.965187 10.8 6.8 \n", + "300 19.953500 9.0 13.5 \n", + "400 25.550250 13.1 6.8 \n", + "500 32.943188 13.8 10.4 \n", + "600 38.988625 13.2 12.7 \n", + "700 41.160063 15.1 7.2 \n", + "800 42.012312 25.2 12.6 \n", + "900 42.685750 11.1 6.0 \n", + "1000 42.284438 9.3 10.9 \n", + "1100 44.075875 9.9 3.3 \n", + "1200 45.001125 15.3 4.2 \n", + "1300 44.188063 11.9 5.2 \n", + "1400 44.917875 10.7 5.9 \n", + "1500 45.357062 9.9 5.7 \n", + "1600 44.800250 17.2 7.8 \n", + "1700 44.215687 23.0 4.8 \n", + "1800 44.326000 16.7 5.3 \n", + "1900 43.230125 9.5 4.1 \n", + "\n", + " steps_in_trial_cover steps_in_trial_both ... population_cover \\\n", + "trial ... \n", + "0 19.0 27.4 ... 53.5 \n", + "100 5.1 11.3 ... 734.3 \n", + "200 12.4 8.7 ... 1022.1 \n", + "300 10.5 4.3 ... 1096.3 \n", + "400 10.6 8.5 ... 1151.5 \n", + "500 9.0 13.4 ... 1194.4 \n", + "600 8.1 13.6 ... 1220.7 \n", + "700 9.2 12.2 ... 1236.5 \n", + "800 14.8 8.8 ... 1238.8 \n", + "900 9.7 5.1 ... 1242.8 \n", + "1000 9.3 7.7 ... 1256.3 \n", + "1100 6.9 8.2 ... 1257.8 \n", + "1200 4.0 3.7 ... 1259.2 \n", + "1300 8.2 4.1 ... 1250.9 \n", + "1400 6.9 4.1 ... 1242.2 \n", + "1500 7.7 4.2 ... 1239.1 \n", + "1600 5.6 4.5 ... 1237.2 \n", + "1700 8.3 5.0 ... 1234.4 \n", + "1800 5.7 5.1 ... 1239.4 \n", + "1900 6.1 5.0 ... 1234.1 \n", + "\n", + " population_both average_specificity_no_mods \\\n", + "trial \n", + "0 70.7 7.606516 \n", + "100 714.5 16.777873 \n", + "200 1062.2 16.806250 \n", + "300 1119.2 17.013625 \n", + "400 1181.2 19.240125 \n", + "500 1226.7 22.719563 \n", + "600 1253.3 25.597875 \n", + "700 1273.2 26.324687 \n", + "800 1269.3 28.275750 \n", + "900 1281.8 28.645312 \n", + "1000 1286.9 29.174437 \n", + "1100 1290.9 33.421750 \n", + "1200 1297.2 35.794312 \n", + "1300 1298.8 39.788375 \n", + "1400 1303.5 42.805438 \n", + "1500 1313.3 44.624688 \n", + "1600 1322.3 45.982375 \n", + "1700 1319.7 48.890937 \n", + "1800 1320.2 51.224688 \n", + "1900 1318.2 52.821875 \n", + "\n", + " average_specificity_update average_specificity_cover \\\n", + "trial \n", + "0 8.755512 8.150237 \n", + "100 16.068753 17.213004 \n", + "200 17.005375 16.843875 \n", + "300 17.991688 16.629188 \n", + "400 19.817188 18.585563 \n", + "500 22.093750 21.396625 \n", + "600 24.326375 23.212938 \n", + "700 24.917125 24.173188 \n", + "800 25.471312 25.437000 \n", + "900 24.768250 24.997250 \n", + "1000 24.944938 24.761750 \n", + "1100 26.042625 26.786063 \n", + "1200 26.465063 28.337375 \n", + "1300 26.355062 30.991000 \n", + "1400 26.800250 32.767187 \n", + "1500 27.456625 34.327000 \n", + "1600 28.050875 35.333875 \n", + "1700 28.477812 36.372313 \n", + "1800 28.816625 36.439438 \n", + "1900 28.625250 37.555188 \n", + "\n", + " average_specificity_both fraction_accuracy_no_mods \\\n", + "trial \n", + "0 8.237262 0.992515 \n", + "100 17.523287 0.990000 \n", + "200 16.966438 0.995000 \n", + "300 16.998188 0.984000 \n", + "400 19.408687 0.996000 \n", + "500 20.795437 0.989000 \n", + "600 23.428875 0.978000 \n", + "700 24.303125 0.983000 \n", + "800 24.714750 0.980000 \n", + "900 24.823875 0.981000 \n", + "1000 25.721125 0.962000 \n", + "1100 27.243250 0.924000 \n", + "1200 27.722625 0.959000 \n", + "1300 28.116688 0.905000 \n", + "1400 27.904750 0.957000 \n", + "1500 28.034375 0.972000 \n", + "1600 27.729750 0.971000 \n", + "1700 28.299687 0.960000 \n", + "1800 28.267500 0.933000 \n", + "1900 28.989500 0.942000 \n", + "\n", + " fraction_accuracy_update fraction_accuracy_cover \\\n", + "trial \n", + "0 0.992308 0.094839 \n", + "100 0.900000 0.810000 \n", + "200 0.882000 0.799000 \n", + "300 0.865000 0.797000 \n", + "400 0.825000 0.812000 \n", + "500 0.849000 0.828000 \n", + "600 0.844000 0.841000 \n", + "700 0.823000 0.819000 \n", + "800 0.851000 0.815000 \n", + "900 0.838000 0.820000 \n", + "1000 0.796000 0.836000 \n", + "1100 0.717000 0.705000 \n", + "1200 0.637000 0.662000 \n", + "1300 0.627000 0.718000 \n", + "1400 0.665000 0.711000 \n", + "1500 0.620000 0.730000 \n", + "1600 0.631000 0.709000 \n", + "1700 0.652000 0.737000 \n", + "1800 0.669000 0.664000 \n", + "1900 0.618000 0.663000 \n", + "\n", + " fraction_accuracy_both \n", + "trial \n", + "0 0.115279 \n", + "100 0.785000 \n", + "200 0.797000 \n", + "300 0.783000 \n", + "400 0.828000 \n", + "500 0.836000 \n", + "600 0.841000 \n", + "700 0.812000 \n", + "800 0.829000 \n", + "900 0.847000 \n", + "1000 0.800000 \n", + "1100 0.689000 \n", + "1200 0.633000 \n", + "1300 0.638000 \n", + "1400 0.604000 \n", + "1500 0.599000 \n", + "1600 0.631000 \n", + "1700 0.662000 \n", + "1800 0.618000 \n", + "1900 0.595000 \n", + "\n", + "[20 rows x 22 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracy
trial
020.5900.0000000.01587363.260.97.6065160.992515
1009.51227.4239870.0780161213.6716.416.7778730.990000
20010.81421.4015800.1662061600.01032.616.8062500.995000
3009.01199.4535450.1639111600.01115.317.0136250.984000
40013.11261.4261060.2436581600.01169.119.2401250.996000
50013.81122.5210380.2739221600.01208.122.7195630.989000
60013.21100.0412600.2665191600.01221.525.5978750.978000
70015.11213.3011190.3042081600.01232.926.3246870.983000
80025.2777.7203260.4339871600.01238.528.2757500.980000
90011.11273.8411020.1922301600.01249.328.6453120.981000
10009.31389.7025560.1374071600.01247.329.1744370.962000
11009.91366.1858580.1232581600.01231.533.4217500.924000
120015.31120.0498100.1798221600.01220.735.7943120.959000
130011.91134.3787870.1331681600.01198.139.7883750.905000
140010.71193.5256440.1234071600.01176.642.8054380.957000
15009.91268.4842440.1169081600.01169.744.6246880.972000
160017.21287.5262810.2088011600.01165.945.9823750.971000
170023.0821.3065930.2197981600.01148.548.8909370.960000
180016.71273.9072500.1774731600.01141.551.2246880.933000
19009.51154.4897960.1159641600.01138.652.8218750.942000
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 20.5 900.000000 0.015873 63.2 60.9 \n", + "100 9.5 1227.423987 0.078016 1213.6 716.4 \n", + "200 10.8 1421.401580 0.166206 1600.0 1032.6 \n", + "300 9.0 1199.453545 0.163911 1600.0 1115.3 \n", + "400 13.1 1261.426106 0.243658 1600.0 1169.1 \n", + "500 13.8 1122.521038 0.273922 1600.0 1208.1 \n", + "600 13.2 1100.041260 0.266519 1600.0 1221.5 \n", + "700 15.1 1213.301119 0.304208 1600.0 1232.9 \n", + "800 25.2 777.720326 0.433987 1600.0 1238.5 \n", + "900 11.1 1273.841102 0.192230 1600.0 1249.3 \n", + "1000 9.3 1389.702556 0.137407 1600.0 1247.3 \n", + "1100 9.9 1366.185858 0.123258 1600.0 1231.5 \n", + "1200 15.3 1120.049810 0.179822 1600.0 1220.7 \n", + "1300 11.9 1134.378787 0.133168 1600.0 1198.1 \n", + "1400 10.7 1193.525644 0.123407 1600.0 1176.6 \n", + "1500 9.9 1268.484244 0.116908 1600.0 1169.7 \n", + "1600 17.2 1287.526281 0.208801 1600.0 1165.9 \n", + "1700 23.0 821.306593 0.219798 1600.0 1148.5 \n", + "1800 16.7 1273.907250 0.177473 1600.0 1141.5 \n", + "1900 9.5 1154.489796 0.115964 1600.0 1138.6 \n", + "\n", + " average_specificity fraction_accuracy \n", + "trial \n", + "0 7.606516 0.992515 \n", + "100 16.777873 0.990000 \n", + "200 16.806250 0.995000 \n", + "300 17.013625 0.984000 \n", + "400 19.240125 0.996000 \n", + "500 22.719563 0.989000 \n", + "600 25.597875 0.978000 \n", + "700 26.324687 0.983000 \n", + "800 28.275750 0.980000 \n", + "900 28.645312 0.981000 \n", + "1000 29.174437 0.962000 \n", + "1100 33.421750 0.924000 \n", + "1200 35.794312 0.959000 \n", + "1300 39.788375 0.905000 \n", + "1400 42.805438 0.957000 \n", + "1500 44.624688 0.972000 \n", + "1600 45.982375 0.971000 \n", + "1700 48.890937 0.960000 \n", + "1800 51.224688 0.933000 \n", + "1900 52.821875 0.942000 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracy
trial
012.41000.0000000.00764648.448.48.7555120.992308
1009.11324.6619780.0698791216.8720.216.0687530.900000
2006.81558.5973260.1025251600.01076.017.0053750.882000
30013.51195.9683380.2673671600.01135.117.9916880.865000
4006.81363.7055780.1183011600.01191.019.8171880.825000
50010.41204.8844020.2503771600.01229.922.0937500.849000
60012.71285.4487420.2475641600.01254.724.3263750.844000
7007.21309.2328620.1417291600.01271.624.9171250.823000
80012.61249.4597430.2763871600.01279.025.4713120.851000
9006.01307.6234370.1449911600.01285.624.7682500.838000
100010.91283.8652310.1939091600.01296.124.9449380.796000
11003.31584.2046910.0502991600.01293.426.0426250.717000
12004.21486.3457150.0583641600.01298.326.4650630.637000
13005.21361.1292880.0851011600.01298.826.3550620.627000
14005.91368.0032940.0897001600.01304.726.8002500.665000
15005.71425.9585160.0878351600.01304.427.4566250.620000
16007.81300.0776230.1134631600.01304.828.0508750.631000
17004.81432.3504540.0743781600.01311.228.4778120.652000
18005.31350.6973050.0883881600.01315.328.8166250.669000
19004.11421.1149760.0705641600.01313.828.6252500.618000
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 12.4 1000.000000 0.007646 48.4 48.4 \n", + "100 9.1 1324.661978 0.069879 1216.8 720.2 \n", + "200 6.8 1558.597326 0.102525 1600.0 1076.0 \n", + "300 13.5 1195.968338 0.267367 1600.0 1135.1 \n", + "400 6.8 1363.705578 0.118301 1600.0 1191.0 \n", + "500 10.4 1204.884402 0.250377 1600.0 1229.9 \n", + "600 12.7 1285.448742 0.247564 1600.0 1254.7 \n", + "700 7.2 1309.232862 0.141729 1600.0 1271.6 \n", + "800 12.6 1249.459743 0.276387 1600.0 1279.0 \n", + "900 6.0 1307.623437 0.144991 1600.0 1285.6 \n", + "1000 10.9 1283.865231 0.193909 1600.0 1296.1 \n", + "1100 3.3 1584.204691 0.050299 1600.0 1293.4 \n", + "1200 4.2 1486.345715 0.058364 1600.0 1298.3 \n", + "1300 5.2 1361.129288 0.085101 1600.0 1298.8 \n", + "1400 5.9 1368.003294 0.089700 1600.0 1304.7 \n", + "1500 5.7 1425.958516 0.087835 1600.0 1304.4 \n", + "1600 7.8 1300.077623 0.113463 1600.0 1304.8 \n", + "1700 4.8 1432.350454 0.074378 1600.0 1311.2 \n", + "1800 5.3 1350.697305 0.088388 1600.0 1315.3 \n", + "1900 4.1 1421.114976 0.070564 1600.0 1313.8 \n", + "\n", + " average_specificity fraction_accuracy \n", + "trial \n", + "0 8.755512 0.992308 \n", + "100 16.068753 0.900000 \n", + "200 17.005375 0.882000 \n", + "300 17.991688 0.865000 \n", + "400 19.817188 0.825000 \n", + "500 22.093750 0.849000 \n", + "600 24.326375 0.844000 \n", + "700 24.917125 0.823000 \n", + "800 25.471312 0.851000 \n", + "900 24.768250 0.838000 \n", + "1000 24.944938 0.796000 \n", + "1100 26.042625 0.717000 \n", + "1200 26.465063 0.637000 \n", + "1300 26.355062 0.627000 \n", + "1400 26.800250 0.665000 \n", + "1500 27.456625 0.620000 \n", + "1600 28.050875 0.631000 \n", + "1700 28.477812 0.652000 \n", + "1800 28.816625 0.669000 \n", + "1900 28.625250 0.618000 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracy
trial
019.01000.0000000.00904454.253.58.1502370.094839
1005.11458.2213470.0300041265.9734.317.2130040.810000
20012.41164.9705530.1532191600.01022.116.8438750.799000
30010.51202.1466560.1339081600.01096.316.6291880.797000
40010.61326.3707930.1375081600.01151.518.5855630.812000
5009.01260.9338290.1282011600.01194.421.3966250.828000
6008.11456.1107290.1147191600.01220.723.2129380.841000
7009.21244.3407690.1379501600.01236.524.1731880.819000
80014.81247.9021660.2013041600.01238.825.4370000.815000
9009.71174.4955190.1538091600.01242.824.9972500.820000
10009.31262.9138270.1164641600.01256.324.7617500.836000
11006.91353.8253050.0781691600.01257.826.7860630.705000
12004.01650.0971690.0445161600.01259.228.3373750.662000
13008.21262.5651460.0923961600.01250.930.9910000.718000
14006.91418.4475470.0757901600.01242.232.7671870.711000
15007.71411.2994910.0828531600.01239.134.3270000.730000
16005.61505.6303410.0572171600.01237.235.3338750.709000
17008.31307.3870000.0827841600.01234.436.3723130.737000
18005.71346.5948290.0637271600.01239.436.4394380.664000
19006.11473.7220920.0622201600.01234.137.5551880.663000
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 19.0 1000.000000 0.009044 54.2 53.5 \n", + "100 5.1 1458.221347 0.030004 1265.9 734.3 \n", + "200 12.4 1164.970553 0.153219 1600.0 1022.1 \n", + "300 10.5 1202.146656 0.133908 1600.0 1096.3 \n", + "400 10.6 1326.370793 0.137508 1600.0 1151.5 \n", + "500 9.0 1260.933829 0.128201 1600.0 1194.4 \n", + "600 8.1 1456.110729 0.114719 1600.0 1220.7 \n", + "700 9.2 1244.340769 0.137950 1600.0 1236.5 \n", + "800 14.8 1247.902166 0.201304 1600.0 1238.8 \n", + "900 9.7 1174.495519 0.153809 1600.0 1242.8 \n", + "1000 9.3 1262.913827 0.116464 1600.0 1256.3 \n", + "1100 6.9 1353.825305 0.078169 1600.0 1257.8 \n", + "1200 4.0 1650.097169 0.044516 1600.0 1259.2 \n", + "1300 8.2 1262.565146 0.092396 1600.0 1250.9 \n", + "1400 6.9 1418.447547 0.075790 1600.0 1242.2 \n", + "1500 7.7 1411.299491 0.082853 1600.0 1239.1 \n", + "1600 5.6 1505.630341 0.057217 1600.0 1237.2 \n", + "1700 8.3 1307.387000 0.082784 1600.0 1234.4 \n", + "1800 5.7 1346.594829 0.063727 1600.0 1239.4 \n", + "1900 6.1 1473.722092 0.062220 1600.0 1234.1 \n", + "\n", + " average_specificity fraction_accuracy \n", + "trial \n", + "0 8.150237 0.094839 \n", + "100 17.213004 0.810000 \n", + "200 16.843875 0.799000 \n", + "300 16.629188 0.797000 \n", + "400 18.585563 0.812000 \n", + "500 21.396625 0.828000 \n", + "600 23.212938 0.841000 \n", + "700 24.173188 0.819000 \n", + "800 25.437000 0.815000 \n", + "900 24.997250 0.820000 \n", + "1000 24.761750 0.836000 \n", + "1100 26.786063 0.705000 \n", + "1200 28.337375 0.662000 \n", + "1300 30.991000 0.718000 \n", + "1400 32.767187 0.711000 \n", + "1500 34.327000 0.730000 \n", + "1600 35.333875 0.709000 \n", + "1700 36.372313 0.737000 \n", + "1800 36.439438 0.664000 \n", + "1900 37.555188 0.663000 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracy
trial
027.4800.0000000.02016673.170.78.2372620.115279
10011.31138.2644950.1068331210.2714.517.5232870.785000
2008.71284.2055200.1456411600.01062.216.9664380.797000
3004.31373.0064100.0793441600.01119.216.9981880.783000
4008.51270.0973510.1550631600.01181.219.4086870.828000
50013.41077.6864090.2464281600.01226.720.7954370.836000
60013.61249.2192040.3485171600.01253.323.4288750.841000
70012.21341.1534100.2546471600.01273.224.3031250.812000
8008.81253.5395000.1907621600.01269.324.7147500.829000
9005.11348.0315660.1059901600.01281.824.8238750.847000
10007.71344.8260610.1256551600.01286.925.7211250.800000
11008.21317.5270970.1222331600.01290.927.2432500.689000
12003.71466.5374110.0535151600.01297.227.7226250.633000
13004.11451.6110260.0755801600.01298.828.1166880.638000
14004.11539.8396430.0639691600.01303.527.9047500.604000
15004.21564.3099140.0685381600.01313.328.0343750.599000
16004.51468.1018140.0852291600.01322.327.7297500.631000
17005.01589.6110270.0653881600.01319.728.2996870.662000
18005.11636.4050490.0713831600.01320.228.2675000.618000
19005.01378.9475070.0795191600.01318.228.9895000.595000
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 27.4 800.000000 0.020166 73.1 70.7 \n", + "100 11.3 1138.264495 0.106833 1210.2 714.5 \n", + "200 8.7 1284.205520 0.145641 1600.0 1062.2 \n", + "300 4.3 1373.006410 0.079344 1600.0 1119.2 \n", + "400 8.5 1270.097351 0.155063 1600.0 1181.2 \n", + "500 13.4 1077.686409 0.246428 1600.0 1226.7 \n", + "600 13.6 1249.219204 0.348517 1600.0 1253.3 \n", + "700 12.2 1341.153410 0.254647 1600.0 1273.2 \n", + "800 8.8 1253.539500 0.190762 1600.0 1269.3 \n", + "900 5.1 1348.031566 0.105990 1600.0 1281.8 \n", + "1000 7.7 1344.826061 0.125655 1600.0 1286.9 \n", + "1100 8.2 1317.527097 0.122233 1600.0 1290.9 \n", + "1200 3.7 1466.537411 0.053515 1600.0 1297.2 \n", + "1300 4.1 1451.611026 0.075580 1600.0 1298.8 \n", + "1400 4.1 1539.839643 0.063969 1600.0 1303.5 \n", + "1500 4.2 1564.309914 0.068538 1600.0 1313.3 \n", + "1600 4.5 1468.101814 0.085229 1600.0 1322.3 \n", + "1700 5.0 1589.611027 0.065388 1600.0 1319.7 \n", + "1800 5.1 1636.405049 0.071383 1600.0 1320.2 \n", + "1900 5.0 1378.947507 0.079519 1600.0 1318.2 \n", + "\n", + " average_specificity fraction_accuracy \n", + "trial \n", + "0 8.237262 0.115279 \n", + "100 17.523287 0.785000 \n", + "200 16.966438 0.797000 \n", + "300 16.998188 0.783000 \n", + "400 19.408687 0.828000 \n", + "500 20.795437 0.836000 \n", + "600 23.428875 0.841000 \n", + "700 24.303125 0.812000 \n", + "800 24.714750 0.829000 \n", + "900 24.823875 0.847000 \n", + "1000 25.721125 0.800000 \n", + "1100 27.243250 0.689000 \n", + "1200 27.722625 0.633000 \n", + "1300 28.116688 0.638000 \n", + "1400 27.904750 0.604000 \n", + "1500 28.034375 0.599000 \n", + "1600 27.729750 0.631000 \n", + "1700 28.299687 0.662000 \n", + "1800 28.267500 0.618000 \n", + "1900 28.989500 0.595000 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)\n", + "display(df_no_mods)\n", + "display(df_update)\n", + "display(df_cover)\n", + "display(df_both)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/Experiment_XCS_XNCS_Woods1_pre_populated.ipynb b/XCS_Experiments/Experiment_XCS_XNCS_Woods1_pre_populated.ipynb new file mode 100644 index 0000000..e6c03ec --- /dev/null +++ b/XCS_Experiments/Experiment_XCS_XNCS_Woods1_pre_populated.ipynb @@ -0,0 +1,2870 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import copy\n", + "\n", + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_woods" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "['.', '.', '.', 'F', 'O', 'O', '.', '.']\n", + "\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[37m□\u001b[0m \u001b[36mX\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n" + ] + } + ], + "source": [ + "maze = gym.make('Woods1-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS\n", + "from lcs.agents.xcs import Configuration as XCSConfig\n", + "from lcs.agents.xncs import XNCS\n", + "from lcs.agents.xncs import Configuration as XNCSConfig\n", + "\n", + "from utils.xcs_utils import *\n", + "from utils.nxcs_utils import *\n", + "\n", + "XCScfg = XCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_metrics)\n", + "\n", + "XNCScfg_no_mods = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=20,\n", + " update_env_input = False,\n", + " cover_env_input = False,)\n", + "\n", + "XNCScfg_update = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=20,\n", + " update_env_input = True,\n", + " cover_env_input = False,)\n", + "\n", + "XNCScfg_cover = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=20,\n", + " update_env_input = False,\n", + " cover_env_input = True,)\n", + "\n", + "XNCScfg_both = XNCSConfig(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=20,\n", + " update_env_input = True,\n", + " cover_env_input = True,)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Starting XCS\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with enviromental input during cover\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with enviromental input during update\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n", + "Starting XNCS with all enviromental inputs\n", + "Executing 0 experiment\n", + "Executing 1 experiment\n", + "Executing 2 experiment\n", + "Executing 3 experiment\n", + "Executing 4 experiment\n", + "Executing 5 experiment\n", + "Executing 6 experiment\n", + "Executing 7 experiment\n", + "Executing 8 experiment\n", + "Executing 9 experiment\n" + ] + } + ], + "source": [ + "from utils.xcs_utils import avg_experiment as XCSExp\n", + "from utils.nxcs_utils import avg_experiment as XNCSExp\n", + "\n", + "number_of_experiments = 10\n", + "explore = 0\n", + "exploit = 2500\n", + "print(\"Starting XCS\")\n", + "df = XCSExp(maze=maze,\n", + " cfg=XCScfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=0,\n", + " exploit_trials=exploit + explore,\n", + " pre_generate=True\n", + " )\n", + "print(\"Starting XNCS\")\n", + "df_no_mods = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_no_mods,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=0,\n", + " exploit_trials=exploit + explore,\n", + " pre_generate=True\n", + " )\n", + "print(\"Starting XNCS with enviromental input during cover\")\n", + "df_cover = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_cover,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=0,\n", + " exploit_trials=exploit + explore,\n", + " pre_generate=True\n", + " )\n", + "print(\"Starting XNCS with enviromental input during update\")\n", + "df_update = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_update,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=0,\n", + " exploit_trials=exploit + explore,\n", + " pre_generate=True\n", + " )\n", + "print(\"Starting XNCS with all enviromental inputs\")\n", + "df_both = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg_both,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=0,\n", + " exploit_trials=exploit + explore,\n", + " pre_generate=True\n", + "\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "df_all = pd.DataFrame(df)\n", + "\n", + "df_all['steps_in_trial_no_mods']=df_no_mods['steps_in_trial']\n", + "df_all['steps_in_trial_update'] =df_update['steps_in_trial']\n", + "df_all['steps_in_trial_cover'] =df_cover['steps_in_trial']\n", + "df_all['steps_in_trial_both'] =df_both['steps_in_trial']\n", + "\n", + "df_all['population_no_mods']=df_no_mods['population']\n", + "df_all['population_update'] =df_update['population']\n", + "df_all['population_cover'] =df_cover['population']\n", + "df_all['population_both'] =df_both['population']\n", + "\n", + "df_all['average_specificity_no_mods']=df_no_mods['average_specificity']\n", + "df_all['average_specificity_update']=df_update['average_specificity']\n", + "df_all['average_specificity_cover']=df_cover['average_specificity']\n", + "df_all['average_specificity_both']=df_both['average_specificity']\n", + "\n", + "df['fraction_accuracy_no_mods']=df_no_mods['fraction_accuracy']\n", + "df['fraction_accuracy_update']=df_update['fraction_accuracy']\n", + "df['fraction_accuracy_cover']=df_cover['fraction_accuracy']\n", + "df['fraction_accuracy_both']=df_both['fraction_accuracy']" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEGCAYAAAB7DNKzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABpaklEQVR4nO3dZ3xURdvA4f9k03vvFUiAEHrvIF0RG4IFRFFBsWAX22t57KJiA0QFrCggoigqiHQEJPQOIb33vtk274cNkZKEBNIzl+a32bNnz5nZDXvvmXKPkFKiKIqiKFWxaOwCKIqiKE2bChSKoihKtVSgUBRFUaqlAoWiKIpSLRUoFEVRlGpZNnYBasrT01OGhoY2djEURVGalejo6CwppdeVHKPZBIrQ0FD27NnT2MVQFEVpVoQQ8Vd6DNX0pCiKolRLBQpFURSlWipQKIqiKNVqNn0UldHr9SQlJaHVahu7KIpyEVtbWwIDA7GysmrsoijKFWnWgSIpKQknJydCQ0MRQjR2cRSlgpSS7OxskpKSCAsLa+ziKMoVadZNT1qtFg8PDxUklCZHCIGHh4e62lVahGYdKAAVJJQmS/1tKi1Fsw8UiqIoLZJRD2c2wx/Pgq6kUYuiAsUVSExMJCwsjJycHAByc3MJCwsjPj6emTNn0rZtWzp16sSQIUPYtWsXAK+99hqdOnWiS5cudOvWrWK7oijNiz49ndIDBzDpdHV30NI8OLQSVt4Nb7eFrybAv59D+pG6O8dlqNfObCFEEPAV4AuYgEVSyg+EEO7AD0AoEAdMklLm1mdZ6kNQUBD3338/c+bMYdGiRcyZM4cZM2bw9NNPExYWxqlTp7CwsODMmTMcO3aMf/75h19//ZW9e/diY2NDVlYWurr8I1MUpd4Zi4rJXrSInKVLkTodwtoa2y6dse/RE/uePbDr1g2Ni0vND5gTCyf/gBNrIX4HmAxg7wmR10L7q6HNMLB2qLf61ISozxXuhBB+gJ+Ucq8QwgmIBq4H7gRypJRvCiHmAG5SyqerO1avXr3khSk8jh07RseOHeul7DWl1+vp2bMn06dP57PPPmPVqlWMHTuW06dPo9Foztt31apVLFmyhDVr1jRSaZWG1hT+RpW6IY1G8levJuP9eRizsnC5bgKOw6+i9MABSvZGoz1yFAwGEAKb8HDsevaoCB5W/v7/HchkguRoc2A4+QdkHDVv9+oA7ceZg0NAT7DQVF6QWhJCREspe13JMer1ikJKmQqklv9eKIQ4BgQA1wHDynf7EtgEVBsoLuXlNUc4mlJwJYe4SKS/My9e26nafaysrHjnnXcYO3Ys69at48SJE3Tr1u2iIAEwevRoXnnlFSIiIhg5ciSTJ09m6NChdVpmRVHqXvHu3aS/+SZlR49h160bPvM/wa5LFwCcx44BwFRaSunBQ5TujaYkei8Fv6whb9n3AFj6+mLfPgg7t0Ls5GFsrTMQlhoIGQBj3oD2Y8G9TaPV71IabB6FECIU6A7sAnzKgwhSylQhhHcVz5kBzAAIDg5uoJLW3u+//46fnx+HDx+mbdu2Ve7n6OhIdHQ0W7duZePGjUyePJk333yTO++8s+EKqyhKjekSE8l4Zy6F69Zh6eeH/7tzcb766kpHtFnY2eHQtw8OffsA5iuQsh1rKfnzO0r37qdkdzIFpRrAEmEVjE37COxEN2xd/LHzMmHtYkRU8gWzKWiQQCGEcAR+BB6RUhbUdNiglHIRsAjMTU/V7Xupb/71Zf/+/axfv56dO3cyaNAgli1bxoEDBzCZTFhYXDxWQKPRMGzYMIYNG0bnzp358ssvVaBQlCbGWFRE9qefkrP0S7C0xGv2w7jfdRcWtraXfnJeIhxeiTi4HNuMo9haW8KUkcioieiduqM9forSQ4fRHjpE/urV5H73HQAW9vbYduqEbefO2HWOwrZzZ6wCAprEMOt6DxRCCCvMQeJbKeWq8s3pQgi/8qsJPyCjvstRH6SU3H///cybN4/g4GCefPJJ5s+fT69evXjxxRd55ZVXEEJw6tQpjh49SocOHbCwsCA8PBwwB5mQkJBGroWiKGdJo5G8VavInPcBxuxsXK6/Hq9HH8XKp9JGj/+U5sLRn+HgCojfZt4W2AeungudbgQHDwRgDViHtcN53LiK8+liYysCR+nhw+R+/TU5ej0AGldXbKOi8HlmDjbVtFbUt/oe9SSAL4BjUsr3znnoF2Aa8Gb57c/1WY768tlnnxEcHMyoUaMAmDVrFkuXLuW9997jm2++oV27dtjb2+Ph4cE777xDUVERDz30EHl5eVhaWtKuXTsWLVrUyLVQFAWgeNdu0t94g7Ljx7Hr0QOfhQux6xxV9RMMZXDyTzj4A5xaB0YdeITD8Oeh80Rwv3TqFqHRYNOuHTbt2sEN1wMgdTq0J0+hPXyI0kOH0B4+goVDyx71NAjYChzCPDwW4FnM/RTLgWAgAbhZSplT3bGa6qgnRamO+htt+spOnybj3fco2rgRK39/vJ98AqexY6tu8kk9APu+gYPLQZsHDt7mwNBlEvh1gybQVHSu5jDqaRtQ1as2oj7PrSiKUh19ejqZH31E/qqfsLC3x+vRR3Gfdkfl/RAlOebAsO8bSD8EGhvoeC10uxXChoGmWedXvaSWXTtFUZQLGAsLyf7sc3K++gqMRtynTsXjvplYurmdv6PJCDEbYd/X5jkPRh34d4dr3oWom8DOrfITtEAqUCiK0iqYdDryli0ja8FCjHl5OF97LV6zH8Y6MPD8HbNjYP+3sH8ZFKaAvQf0vge63Q6+1fRZtGAqUCiK0qJJk4mC39aSOW8e+uRkHAYMwPuJx7GNjPxvJ30pHPnJ3LQUvx2EBbQbBePegoixYGndeBVoAlSgUBSlxSravp2Md9+l7OgxbDp2JOiVl3EcOPC/HUrzzEn3di2E4kzwaAcjX4Iut4CzX2MVu8lRgUJRlBZHe/QoGXPfpXjHDqwCAvB/522cr7kGcXYSbEEq7PwE9iwFXaH56mHgbAgd1ORGLTUFKs34FagqzfjmzZsRQvDRRx9V7Pvggw+ydOnSivtz586lQ4cOREVF0bVrV7766isAfv31V7p3707Xrl2JjIzk008/bdA6KUpzpouLI/mxx4m98Sa0R47gPedp2vy+FpdrrzUHiazT8MtD8EEX+OcTc46l+7bBlJUQNlgFiSqoK4orUFWa8ZCQELy9vfnggw+YOXMm1tbnt28uXLiQ9evXs3v3bpydncnPz2f16tXo9XpmzJjB7t27CQwMpKysjLi4uMapnKI0I/rUVLLmLyBv1SqEtTUe983EY/p0NM7O5h2So2HbPDi2BixtoMcd0P/BGk2KU1SguGKPPvooPXv2ZN68eWzbto2PPvqIlJQUvLy8GDhwIF9++SX33nvvec95/fXX2bhxI87lf8QuLi5MmzaNnJwcDAYDHh4eANjY2NC+ffsGr5OiNBeGnByyP11E7rJlICVut92G58wZWHp6gpRwegNsnwexW8DWBQY/Dn3vA0evxi56s9JyAsXvcyDtUN0e07czjHuz2l0uTDN+7tXDnDlzGDduHNOnT6/YVlhYSGFhYaVZZt3d3ZkwYQIhISGMGDGC8ePHc+utt1aaXFBRWjNjURE5i5eQs3QpJq3WnJPpgVlYBQSYA8SR1bD1XUg7CE5+MPpV6Hkn2Dg1dtGbpZYTKBrRuWnGz+Z9AggLC6NPnz58V54dEsyJBKvLBvn5559z6NAh/vrrL+bOncv69evP69tQlCYj9SDs+Mg8Ca3XXWBlV++nNGm15H77HdmffYYxLw+nMWPwmv0wNm3K13JIOwRrn4KEHeYRTBM+NqfWsLSp97K1ZC0nUFzim399uTDN+C233HLe488++ywTJ05kyJAhADg7O+Pg4MCZM2do06byhUo6d+5M586dmTp1KmFhYSpQKE2Lrhg2vQH/zAeNNRxabm7eGTgbet4F1vZ1fkqp15P34yqy5s/HkJGBw+DBeM2ejV1U+fICpbmw8XXzUFdbV7j2Q+g+pc5WiWvtVJvGFagszfgTTzxx3j4dOnQgMjKSX3/9tWLbM888wwMPPEBBgXlFvoKCAhYtWkRRURGbNm2q2E+lIVeanFPr4ZN+5iuJ7rfDY0fhzrXg1R7+fBY+6Gp+TFdcJ6eTRiP5a9YQc8140l56CauAAEK+/orgzxaZg4TJBHu/go96moNEr7vhoWjoOU0FiTrUcq4oGkFVacbj4+PP2++5556je/fuFffvv/9+ioqK6N27N1ZWVlhZWfH4448jpeTtt99m5syZ2NnZ4eDgoK4mlKahMB3+mANHVoFnBNz1u3kZT4DQgRC6BuJ3wKY3Yd3zsP0DGPAw9L4brGufIlsajRSsXUvW/AXoYmOx6dCBwIULcBw69L+m2+RoWPuk+Ta4P1z9jrlfUalz9ZpmvC6pNONKc9Ts/0ZNJti7FNa/BIZSGPwEDHqk+jb/hJ3mgHFmI9h7woCHzLmSbBwvebqLAkT79ng+MAunkSP/myxXnA0bXjZfSTh6w6j/mfsh1ByISjX5NOOKojRjGcdgzSOQuBNCB8P498Ez/NLPC+4Hd6yGhF2w+U3460XY8WF5wLi30oBRESA+mY8uLg6b9u0J+PCD8wOEyQh7FsPfr4KuCPo/AEOfBlvnOq22cjEVKBRFOZ++FLbMNTcf2TjCdfOh2221/8Ye3Bem/gSJu2HzW/DXS7D9Q/MIKecAsHFCauwo2HmMrGV/oEtKxaZdGwLefROnMdcgLM/5eErYCWufMI9qChsK494G7w51Wm2laipQKIrynzOb4NdHIeeMOTHemNfAwfPKjhnUB6b8CEl7zE1SW99FmqAgwY6sI07oCi2xcdUTMKgQp4AUxL/b4F/AysEcqKzsITcWnAPh5i8h8jrVzNTAVKBQFMW8gtufz8GB78AtDKauhrbD6/Ycgb2Qk76jYM1qsj79DF1CEjZtggmYfQ1OPdsi9CXmBH1lReZRU7oiKCs033a7zdzUdBkd48qVU4FCUVq7Y2vg18egJBsGPQZDn6rTyXNSp6Noxw4K//iTwr//xlRQYO6D+OhDnEaM+K8PQmmyVKBQlNaqKBN+f9K8YI9PZ3MGVb+udXJok05H8fbt/wWHwkIsnJxwuuoqnK+5GodBg1SAaEbUO3UFqkozHh8fT1xcXKOmGt+zZw8PP/wwAJs2bWLHjh0Vj915552sXLnycqrc6JYuXcqDDz5Y7T4X1le5gJRwaCXM7wvHfoXhz8OMjVccJEw6HYV/byTl6ac5NXAQSffPovDvv3EaMYLAhQsI374N/7fexHHIEBUkmhl1RXEFqkszHhcX16ipxnv16kWvXuah05s2bcLR0ZEBAwbURbWbvNZW31opSIXfHocTv4F/D7h+Pnhf/jwPk05H8bbtFPzxO0V/b8RUVISFszNOI0fiPHYMDv37I6xb9zKiLYKUsln89OzZU17o6NGjF21raDqdTnbu3Fm+//77MjIyUpaVlUkppYyNjZWdOnWSM2bMkIsWLZJSSvnAAw/IJUuWSCmlDAoKkqdPn77oeNnZ2dLLy0uWlJRUe96oqCiZm5srTSaTdHd3l19++aWUUsopU6bI9evXy40bN8prrrlGxsbGSh8fH+nv7y+7du0qt2zZIqdNmyYfeugh2b9/fxkWFiZXrFhR6Tm+/vpr2bt3b9m1a1c5Y8YMaTAYpJRSOjg4yGeffVZ26dJF9u3bV6alpcm8vDwZEhIijUajlFLK4uJiGRgYKHU63XnHnDZt2nnnc3BwkFJKuXHjRjl48GB5/fXXy44dO8qZM2dWHGvx4sUyPDxcDhkyRN5zzz3ygQcekFJK+csvv8g+ffrIbt26yREjRsi0tLRK65uRkSFvvPFG2atXL9mrVy+5bdu2al/butQU/kallFKaTFLu/UbKN4Kk/J+3lNs+kNKgr8XTTVKXliYLt2yVWV8slslznpFnbpooj3XtJo+27yCP9+krk595VhZu3ixN5f8GlKYB2COv8PO3Xq8ohBCLgfFAhpQyqnxbN2AhYAsYgFlSyt1Xeq63dr/F8ZzjV3qY83Rw78DTfZ6udp/q0oxD/aUaHzhwINu3byckJIQ2bdqwdetW7rjjDnbu3MmCBQs4O4s9NDSU++67D0dHx4o8VF988QWpqals27aN48ePM2HCBCZOnHje8Y8dO8YPP/zA9u3bsbKyYtasWXz77bfccccdFBcX069fP1577TWeeuopPvvsM55//nm6du3K5s2bGT58OGvWrGHMmDFYWVnV+PXevXs3R48eJSQkhLFjx7Jq1SoGDhzIiy++SHR0NC4uLgwfPrwiHcqgQYPYuXMnQgg+//xz3n77bd59992L6nvbbbfx6KOPMmjQIBISEhgzZgzHjh2rcbmavbxEWDMbYjZA8ACY8BF4tqtyd2NeHmWnTqE9dYqyU6coO2m+NZXnJgOw9PLCJjwct8mTcRg0EIe+fdWVQwtW301PS4GPga/O2fY28LKU8nchxNXl94fVcznqVVVpxqH+Uo0PHjyYLVu2EBISwv3338+iRYtITk7G3d0dR8dLp0q4/vrrsbCwIDIykvT09Ise37BhA9HR0fTu3RuA0tJSvL29AbC2tmb8+PEA9OzZk/Xr1wMwefJkfvjhB4YPH87333/PrFmzLlmOc/Xp06cio+6tt97Ktm3bsLS0ZNiwYXh5eVWc4+TJkwAkJSUxefJkUlNT0el0hIVVvlrZX3/9xdGjRyvuFxQUUFhYiJNTC1+bwGSC6CWw/v/M/RJXzzUnzbvgS4cuPp6ibdso3r4D7aFDGDIzKx6zcHbGJjwc56vHYRMeXvFj6ebW0LVRGlG9Bgop5RYhROiFm4Gzc+5dgJS6ONelvvnXl8rSjPv5+Z23T32kGh8yZAiffPIJCQkJvPbaa/z000+sXLmSwYMH16jcNjb/5eqRleT7klIybdo03njjjYses7Kyqgh0Go0Gg8EAwIQJE3jmmWfIyckhOjqaq6666qLnWlpaYjKZKs6h0+kqHrsweJ69X1VQfeihh3jssceYMGECmzZt4qWXXqp0P5PJxD///IOdXf2vl9Bk5MbDzw9A3FZoM8ycdtvNnInYWFRMya6d5uCwbTv6xEQArIKCcBg4EJuICHNAiAjH0tu72i81SuvQGEMPHgHeEUIkAnOBZxqhDHVC1iDNONRPqvGgoCCysrI4deoUbdq0YdCgQcydO7fSQOHk5ERhYWGt6jZixAhWrlxJRkYGADk5ORdlxb2Qo6Mjffr0Yfbs2YwfPx6N5uI0z6GhoURHRwPw888/o9frKx7bvXs3sbGxmEwmfvjhBwYNGkTfvn3ZtGkT2dnZ6PV6VqxYUbF/fn4+AQEBAHz55ZdV1nf06NF8/PHHFff3799fi1eiGTq5Dj4dAqkHYMJHyNtXUZpcRNbCT4mfMpWT/fqR9MCD5P/8Czbt2uHzwvO0/fMP2q1fh/+bb+Ax/S4cBw/CysdHBQkFaJxRT/cDj0opfxRCTAK+AEZWtqMQYgYwAyA4OLjhSlhDVaUZ37x580Uf7vWRarxv374YjUbA3BT1zDPPMGjQoIv2u/baa5k4cSI///zzecN1qxMZGcmrr77K6NGjMZlMWFlZ8cknn1xyfYzJkydz8803nxfsznXvvfdy3XXX0adPH0aMGIGDw38zbfv378+cOXM4dOgQQ4YM4YYbbsDCwoKXXnqJ/v374+fnR48ePSrq/NJLL3HzzTcTEBBAv379iI2NrbS+H374IQ888ABdunTBYDAwZMgQFi5cWKPXoVkxGc0pMra8jckjigL3Oyn+7hDFDw7BWD6E2yayIx533YXDoEHYd++m+hWUGqn3NOPlTU+/ntOZnQ+4SimlMH9dyZdSXjL9o0oz3rJt2rSJuXPnnnfV1RI02N9ocRb8eA+c2Yih3SQSV+eiPXwEjYcHDgMH4DhoEA4DBmDpeYV5m5Rmp7mmGU8BhgKbgKuAU41QBkVpORL/hRXToDiLst4vkTjvdwyZmQTMm4fT6FFqcptyxep7eOwyzCOaPIUQScCLwL3AB0IIS0BLedOS0roNGzaMYcOGNXYxmhcpYfdn5iVInf0p6fsxSf/3PlhYEPLlUuy61k06DkWp71FPt1bxUM/6PK+itHhlRea5EYdXQsQ4ClxuIeXJl7D09SF40SKs1VrrSh1SKTwUpbnJPAnLp0LWSRjxf+TEepP+xLPYdelC4IL5WLq7N3YJlRZGNV4qSnNyeBV8NhyKs5C3/0j6DiPpr7+O41VXEbx0iQoSSr1QgUJRmgODDn6fAyvvAp9OmO7aQPIna8hZsgS3224j8MMPsGhNEwqVBqUCxRVQacaVeldWCAdXwJKxsGsB9JuF8frvSHj0eQp//wPvJ5/A54XnEZVMblSUuqL6KK6ASjPedJ3NenlhMsVmQVsAJ/+AI6vh9F9gLAMnf5i4BL1bXxLuuBN9QgL+787F5ZprGru0SivQDP8VNS2PPvooO3fuZN68eWzbto3HH3+84jEvLy9GjBhxXnqJs15//XXmz5+Ps7N5rqGLiwvTpk2jsLAQg8GAh4cHYM7J1L59+4ue37lzZ/Ly8pBS4uHhUXE1MnXqVP766y82bdrE+PHjiYuLY+HChbz//vt069aNrVu3ArBlyxYGDBhAmzZtqry6+Oabb+jTpw/dunVj5syZFTOiHR0dee655+jatSv9+vUjPT2d/Px8QkNDK/I4lZSUEBQUdF6KDoD09HRuuOEGunbtSteuXSuudN577z2ioqKIiopi3rx5ADz99NPMnz+/4rkvvfQS7777LgDvvPMOvXv3pkuXLrz44osAxMXF0bFjR2bNmkWPHj1ILM9h1CxoC+Dgclh2G7zTDlbdCyl7odd0mP4nPHqEUtGe2FtuwZCZSdAXn6sgoTSYFnNFkfb665Qdq9s04zYdO+D77LPV7qPSjNcuzfjDDz/M0KFD+emnnzAajRQVFREdHc2SJUvYtWsXUkr69u3L0KFDueWWW3jkkUcqstAuX76cP/74g3Xr1nHq1Cl2796NlJIJEyawZcsWgoODOXHiBEuWLDkvwDRZ2gI48TscXQ2nN/x35dBrOnS6HgL7VGR6Ldq6laTZj6BxcSFk8WJswsMbtehK69JiAkVjUmnGa55m/O+//664+tFoNLi4uLBt2zZuuOGGirxPN954I1u3buXhhx8mIyODlJQUMjMzcXNzIzg4mA8//JB169ZV5M4qKiri1KlTBAcHExISQr9+/S5Z/wYhpTn/UtZpKM2F0hzzbUk2xG0rb1bSmYND77sh8noI7H1eGvCy06fJWrCQgrVrsenQgaCFC7Hy8W68OimtUosJFJf65l9fVJrx2qUZr0x1+cYmTpzIypUrSUtL45ZbbqnY/5lnnmHmzJnn7RsXF3deksF6JyWUFZg7nE2G8h/jf7fSCAUZsGLSxc91DoDe91QaHAC0J06StXABhX/8ibCzw+Oeu/GYeR8axwasn6KUU30UV0ClGT9fTdKMjxgxggULFgBgNBopKChgyJAhrF69mpKSEoqLi/npp58q6nHLLbfw/fffs3LlyormsTFjxrB48WKKiooASE5OrihngzCZzEn4Mo9DzhnzFYKuxBwcLDRg7QD27uDoC3ZucONncPtKuOdveGgvPBULjx6BsW9AcN/zgoT2+HGSHp5N7HXXUbxlKx4zZtBuw194P/64ChJKo2kxVxSNQaUZv9il0ox/8MEHzJgxgy+++AKNRsOCBQvo378/d955J3369AHgnnvuqXitOnXqRGFhIQEBARVXaqNHj+bYsWP0798fMAeob775ptLAVKeMeijJMgcJkwEs7cA1BOxcQVTxncsmDzpWckVxgdIjR8hasICivzZg4eiI56z7cb/jDjSurnVZA0W5LDVOMy6EcJdS5tRzeaqk0owrjUavheIMKMkBJNg4g6M3WDvCJRb2udTfaOmhw2TNn0/Rxo1YODnhfscduN8xFY2LSx1XQmmtGjrN+C4hxH5gCfC7rO+FLBSlMUkJuiIoyjD3QyDMzUkO3mBle8WHLz14kMxPPqF48xYsXFzwfPgh3KdORdPS1/FWmqXaBIoIzCvRTQc+EkL8ACyVUp6sl5IpSmOQJijNM19B6EvBwtLc1+DgCRqrSz79Ukr27SPrk/kUb9uGxsUFr0cewW3K7WhqMFJNURpLjQNF+RXEemC9EGI48A0wSwhxAJgjpfynnsqoKPVLSnNQ0OZCSS6Y9KCxAZcgsHO/aETS5SjZu5esjz+heMcONK6ueD32GG633aY6qJVmocaBQgjhAUwBpgLpwEPAL0A3YAUQVg/lU5T6o9eWz2/INU92Q4CNI9gHga3zJfsfasJUVkb8XXdR8s9ONO7ueD/xOG633opFQw7jVZQrVJump3+Ar4HrpZRJ52zfI4RogSvVKy2Soaw8OOSBodS8zdrR3Dlt6wqauhkIaCwuxpCRgTE7m7KTp/B+8kncbr0FC3v7Ojm+ojSk2vyreF5KufzcDUKIm6WUK6SUb9VxuRSl7hh15sBQmgv6EvM2KwfzpDc7tzrpewDzvBpTcTGGjExMJcUIS0ssnJ1p99d6lQJcadZq0/g6p5Jtz9RVQZqjlpxmPC4ujqioqFqdc968eZSUlFTcr0kqkXohJVePG0Ne0inIOgXpR6AgGZDg7A/ekeAVYb6KqEWQyMvLqzSHlJQSY1ERuthYdHFxSF0ZVr6+2EREoHF0VEFCafYuGSiEEOOEEB8BAUKID8/5WQoY6r2ETdi5acaB89KMAxVpxnU63UXPPTfN+OHDh9myZQtSyoo042vWrOHAgQPs27ePYcOG1bpsvXr14sMPPwQuDhT15cJA0WCkLJ/rkAk5sZB+mLVfvImrRZF5YpyTH3h1BK8O4OgDljaXPmYlLgwU0mjEmJ9/ToDQYeXnh01EBJaenojmmOJcUSpRk7/kFGAPoAWiz/n5BRhTf0VrHlpymnGDwcC0adPo0qULEydOrAgCGzZsoHv37nTu3Jnp06dTVlbGhx9+SEpKCsOHD2f48OEVx7gwHfmFiouLmT59Or1796Z79+78/PPPACxdupQbb7yRsWPHEh4ezlNPPQXAggULeOrJJ8GgheIsln48l4fuuR0yj0F+EuiKwcaZ0P7XkWXhTVyJHR37DOfeWQ/RqVMnRo8eTWmpuW9i2LBhPPLIIwwYMICoqCh2794NmNOZz507t6KMUVFRxMXFMWfOHGJiYujWuTOPzbyP2K3bGHrVVfS55hp633wzu9PTsfTwUAFCaXEu2UchpTwAHBBCfCulbLJXEFuXnyQrsahOj+kZ5MjgSRHV7tNS04wDnDhxgi+++IKBAwcyffp05s+fz4MPPsidd97Jhg0biIiI4I477mDBggU88sgjvPfee2zcuBFPT0+AKtORn+u1117jqquuYvHixeTl5dGnTx9GjhwJmPNc7du3ryJYPnTPFCaO7Ev/0W/w9qO3AfDDqtU898Rs81BWG0fzsFYhzCk1LG0APadOnWLZsmV89tlnTJo0iR9//JEpU6ZUlHHHjh1s2bKF6dOnc/jw4UrfZ2NhIa88/DCHoqP5Z9kyhMaSD5Z9x5jx43n+pZcwmUyNczWlKA2gJk1PZzuw9wkhDl74U8/laxbOTTN+octNM75hwwb69OnD3LlzzwsyZ51NM75lyxbuv/9+Dh06VKdpxsHctDZw4EAApkyZwrZt2zhx4gRhYWFERJgD6LRp09iyZUulz78wHXllK/WtW7eON998k27dujFs2DC0Wi0JCQmAOYGgi4sLtlYaItuFEH90D15OVrQJDWHniTSyLbw5EZfCwHETzRPiLG0rHdIaFhZGt27dKi3HrbfeCpiz8RYUFJCXlweU9zsUFqJLSkKWlaFPSUGWlIBGg3VoKDYd2tN/5Ei+/PZbXn75ZQ4dOoSTmlWttFA1GfU0u/x2fH0W5Epd6pt/fWmpacaBi4KZEKLalOAXqiod+bmklPz4448XNa/t2rXLXEajDrJOo7EAg703+EQxecqdLF+zng6nErnhhhuqDbpwfl01Gk1F01NldTQVFSFKStAVFaGLj0dYaNDq9VgFBGBhb4+wtKyYRT1kyBC2bNnCb7/9xtSpU3nyySe54447avz6KEpzcckrCill6jn7pksp46WU8UAGUO2/UCHEYiFEhhDi8AXbHxJCnBBCHBFCvH25hW9sLTnNOEBCQgL//GOecL9s2TIGDRpEhw4diIuL4/Tp0wB8/fXXDB069LLPM2bMGD766KOKALRv377/HjQZzaOWTHqwsq9IwnfjjTeyevVqli1bxuTJk2tdr3N9/8036NPT+Xv5cpxtbbHLyyPYw4MDJ09iHRzMkZJi4hIT0Tg64uzicl794uPj8fb25t577+Xuu+9m7969V1QWRWmqatPrtgIwnXPfWL6tOkuBseduKE//cR3QRUrZCZhbyfOahcrSjB8/fpzNmzdftO9zzz1HUtJ/8xTvv/9+hg8fTu/evYmKimLo0KHY29tXpBlv37493bp148UXX6w2zfjZJqDBgweTnJxcZZrxn3766bzO7Jro2LEjX375JV26dCEnJ4f7778fW1tblixZws0330znzp2xsLDgvvvuA2DGjBmMGzfuvM7sS3nhhRfQ6/V06dKFqKgoXnjhBfMDRj1o88zBwqOdOedSOTc3NyIjI4mPj69ITV4T0mTCpNNhLC6mLDYWU3ExzkIweMwYHnr+eRZ98AHWISFMfvBB8rRaeg4ZwsJPP614jT08PBg4cCBRUVE8+eSTbNq0iW7dutG9e3d+/PFHZs+efYkSKErzVJs04/ullN0u2HZAStn1Es8LBX6VUkaV318OLJJS/lWbgqo0462IvhSyzVcseLQDq8ubhyBNJkylpZiKi80/JSXmobSAha0to++4g7dff50+gwcj6mktC/U3qjS2hk4znimEmCCl/KX85NcBWZdxzghgsBDiNcxDbp+QUv5b2Y5CiBnADIDg4ODLOJXS7OhKzEFCWJQHidql9JZSYioqxpifh6mgEGkyL+xkYWuLpbs7Fg4OFX0NwtoajaNjvQUJRWkpahMo7gO+FUJ8jLlvIhG4nJ47S8AN6Af0BpYLIdpUtr6FlHIRsAjMVxSXcS6lOSkrMi8taqExB4kaToyTUmIqKcGUn48xvwBpNCAsLLBwdkbj7FwRGC5U1Sp8iqKcrzZpxmOAfkIIR8xNVrXvHTVLAlaVB4bdQggT4AlkXs7BLjXUVGkmygrLg4RVeZCwrnZ3KSVSq8WYl4+xIB+p14OwQOPshMbFBQtHx0af+KbW9lJaiksGCiHEFCnlN0KIxy7YDoCU8r1annM1cBWwSQgRAVhzeU1Y2Nrakp2djYeHhwoWzZm2wBwkLG3MQaKa/EsmrRZjfj7G/HykTgdCmPMp+figcXJqMs1IUkqys7Oxtb3y1fAUpbHV5IribF7kWs8mEkIsA4YBnkKIJOBFYDGwuHzIrA6YdrnLqgYGBpKUlERm5mVdjChNgb4EirPNwcHB679O7HNIKZElJZiKi5HlczGEtTUWdnYIOztESQmUlEBq6kXPbUy2trYEBgY2djEU5YrVJFCczTNxVEp5qeGw55FS3lrFQ1Nqc5yqWFlZERam1ktqtg6ugJ9mQkBPuH0F2Lme97CppITcH5aTs3gxhsxM7KOicJkwAaexY7Dy9m6cMitKK1STQHG1EOJ5zCnFaxUoFKVK0V/CmtkQOghu/d6cp6mcsaCA3O++I2fplxjz8rDv1w//d97Bvm8f1cSotBraIj3Hd6Zy/J9Urnu0O3aO1ffb1aeaBIo/MPchOAghCs7ZLjAvpe1cLyVTWiajAf7+H2yfB+1GweSvK+ZJGHJzyfnyS3K/+RZTURGOQ4ficd9M7Lt3b9wyK0oDkVKSHlvA4S3JnN6TgdFgwq+tCyUFuqYdKKSUTwJPCiF+llJe1wBlUlqqghRYeTck7ICed8G4t8DSBn16BjmLF5O7fDlSq8Vp9Gg8Z87ANjKysUusKA1CpzVwcnc6h7ckk51UhJWtho4D/eg0OADPwEZaAOwctRkeq4KEcvliNsKP95hnXd/4GXSZhC4pmezPPyP/x1VIkwmX8dfgMWMGNpWkX1eUligrqZDDm5M5uTsdfZkRzyBHht3envDePljb1s367XWhJsNjt0kpBwkhCgFJeZMTqulJqQmTEba8A5veBK/2MOkr9EYXMp95lvxffgELC1xvuAGPe+/BOiiosUurKPXOoDNyem8Ghzcnkx5bgMbKgvBe3nQaEoBPqHOT7IerSdPToPJblWxfqZ2iTFh1L5zZCF1uQY55i5zvfyTzk/lgNOJ2+214TJ+Ola9vY5dUUeqNtkhPTmoxOanFZCUVcXpPOmUlBlx97Bl0czjt+/li61DztdsbQ42vbYQQ/YAjZ2dkl8/Q7iSl3FVfhVOasfh/YOVdUJID135Isb49aZOmoIuJwXH4cHyeexZrNcdAaSGklJQU6MhJLSY3tYTc8sCQm1ZMaaG+Yj9LawtCojyJGhpAQIRrk7x6qExtGsEWAD3OuV9SyTaltZMSdnwIf70MbiHob1hBxpI1FPz2JlYBAQTOn4/TVTVPQ64oTVFZiZ7YA1mkns4jJ7WE3LRiykr+W5jL2s4Sdz97Qrt44ubrgLufA25+9ji52SIsmkdwOFdtAoU4dwa1lNIkhGg6vS1K4yvNhdWz4MRaZMS15JYMJnPa40i9Hs9Zs/CYcS8WKqWF0kzptAbiDmVxek8G8UeyMRkktg5WuPs70K6XD+5+9rj5OeDu64C9i3WzuVqoidp80J8RQjyM+SoCYBZwpu6LpDRLyXthxTQoSKWkzcOkfX+QspPzcBg8GN/nn8O6klX6FKWpM+iMxB/J5vSeDOIOZmHQm3BwsabzkEDa9fZusp3Pda22acY/BJ7HPOppA+VrRSitXPRSWPskBgtvMjJvIP+7lVj6+xHw0Yc4jRzZKv4hKS2H0WAi8VgOp/dkcOZAJnqtETsnKzr09yO8tzd+bV2bZfPRlajNPIoM4JZ6LIvSHB39GfnzbHLze5C5vQhT2S48ZszA876ZWNjbX/r5itLIpJSUlRjIjC/kdHQ6MfsyKSsxYGNvSbue3oT39CGgvSsWmsZNW9+YajPqKQJzs5OPlDJKCNEFmCClfLXeSqc0bakHKVn0AGl7QyjLSMNhQH98nn8BmzYqUaPStBgNJgpztBRklVKQpaUgs5SCrFLyy+/rSs0d0VY2GsK6eRLe04egSHc0lq03OJyrNk1PnwFPAp8CSCkPCiG+A1SgaIUMCSfIeHAy+SedsPR2IeD9Z3EaO1Y1MymNymQ0kZFQSMqpPPLSS8yBIVNLUa6Wcxcz0Fha4Oxpi7OnHX5tXXH2tMXVx57A9m5YWjeNNU2aktoECnsp5e4LPggMVe2stEzSaCT3u2/InPsWJp3E45YJeD75IhYODo1dNKUVkiZJVnIRySdyzT+n8tBrzeuk2zlb4+Jpi1+4C86evrh42uFc/uPgYt3q+hmuRG0CRZYQoi3mjmyEEBOBprVSjFKvSvbtI+2V/1F27Bj2PmX4Pvs0NmNmNnaxlFZESkluWgnJJ3JJOpFL8slcyorN31ddvO2I6O1DQHs3AiLcsHduvGyrLU1tAsUDwCKggxAiGYgFbq+XUilNiiE7m4x33yN/1Sos3RwIGJCD05SHEVepIKHULykl+RmlpJzKMweGE7mUFOgAcHS3IayLJ4Ht3Qho74ajm5qjU19qM+rpDDBSCOEAWJxN5aG0XNJoJPf778n84ENMJSV43DQST/EtFp2vgWHPNHbxlBbIaDCRmVhI6ul80mLySY3Jq0iBYe9sTUB7NwI7mK8YnD1tVZ9YA6nNqCcPzGteDwKkEGIb8IqUMru+Cqc0npK9+0j7n7mZyWFAf3xmTcFm/TRwi4QbFoKFGg2iXLmyEj1pZwpIPZ1Hakw+6XEFGPUmAJw9bQnu5IFfWxf82rni5muvAkMjqU3T0/fAFuCm8vu3Az8AI+u6UErjMeTkkPHOXPJ/+glLHx8C5r2P05A+iM9HgqUN3LIMrFXHtVI7Br2RknwdJQU68jNLSY3JJy0mj+yUYpAgLAReQY5EDQ7Ar50Lvm1dcHCxaexiK+VqEyjcpZT/O+f+q0KI6+u4PEojKty4kdTnX8CYn4/Hvffged99WNjawLc3QV4C3PkruKo1I5T/6LQGinLKKC4oMweCfN1/v1fc6s5LmAdgbavBt40L7Xp649vWFZ9QZ6xs1LDUc+Vp8/g55md+jvmZL0Z/gZutW6OVpTaBYqMQ4hZgefn9icBvdV8kpaGZSkpIf/Mt8pYvx6Z9e4IXL8a2fYT5wbVPwZlNcN0nENyvUcupNB16nZG9f8Szb10CRoPpvMcsrSywd7HGwcUGdz8HAju4Y+9sXbHN0c0GNz8HLNTw1ItIKdmfuZ8VJ1bwZ9yf6Ew6unt3J7s0u9kEipnAY8DXmFe3swCKhRCPoVa6a7ZKDxwg+amn0Cck4n73dLxmz8bCunxYYfRS2P0p9HsAuk9p1HIqTYOUkjP7M9m24hRFOWWE9/YhrIvneYHAylaj+hJqqVBXyK9nfmX5ieWczjuNg5UDN4bfyM3tbybCLaKxi1erUU+1XuFOCLEYGA9kSCmjLnjsCeAdwEtKmVXbYytXRhoMZC1YSNbChVj6eBP85VIc+vT5b4e47fDb49B2BIx6pfEKqjQZuWnFbP3hJInHcvEIcGDU45H4hzfet9yW4Ej2EVacWMHa2LWUGkqJ9Ijkpf4vMS5sHPZWTSdXWm1GPQ0E9kspi4UQUzAvWDRPSplQzdOWAh8DX11wrCBgFFDdc5V6oouLI/mpp9EePIjzhGvxfeEFNE7nfA/IjYflU8EtDCYuBo1adqQ102kN7Fkbx4ENiVhaaxg8OZyoIQGtOknelSjRl/B77O+sOLmCI9lHsLO04+qwq7k54mY6eXZq7OJVqrYr3HUVQnQFngK+wNwMNbSqJ0gptwghQit56P3yY/xci/MrV0hKSd7yFaS/+SbC2pqA99/Dedy483cqK4Rlt4LJALd+D3aujVJWpfFJKTm9J4PtK09RnK+jwwA/+l/fVs14rqVCXSGn805zMuckR7KPsD5+PUX6Itq5tuPZvs8yvs14nKxr3WDToGoTKAxSSimEuA74QEr5hRBiWm1PKISYACRLKQ+odsyGY8jKIvX5FyjatAmHAQPwe+N1rHx8zt9JSvMKdZnH4PaV4NmucQqrNLrs5CK2fH+SlFN5eAU7MXZmZ3zbuDR2sZo0g8lAQkECJ3NPcjL3JKdyT3Ey9yQpxSkV+zhZOzEsaBiT2k+im1e3ZtOXU5tAUSiEeAaYAgwRQmgAq9qcTAhhDzwHjK7h/jMoXxwpODi4NqdSzlH490ZSn38eU1ERPs8+i9uU2xGVTZjbOR+O/WLuk2g3ouELqjS6slIDu9ec4dCmZKztNAy9rT2Rg/zVCKULSCk5kn2E6PToiqAQkxeDzmROL6IRGsJcwujq3ZWb3cwd0hFuEfjY+zSb4HCu2gSKycBtwN1SyjQhRDDmzujaaAuEAWevJgKBvUKIPlLKtAt3llIuwpxfil69eskLH1eqZ9LpSH/1NfOw144dCfhyKTbh4ZXvnLAT1v8fdBgPAx5u2IIqja4gq5TYA1lE/xlPaaGOToP86XddW2wda/VdsEU7GxzWxa1jXfw6kouSAfC08yTCLYLbOt5GhFsE4W7htHFpg7Wm5TTR1WbUUxrw3jn3Ezink1oI8Y+Usv8ljnEI8D7nOXFALzXqqX5kL/qMvOXL8bj3HrweeghhXcUfblEmrLgLXILM8yWa4TcepXaMRhNpMfnEHcom/lAWuWklAPiEOTP+gS54h6jR7lB5cLAUlvTz78fMLjMZHDgYTzvPxi5mvavL4SwXpW4UQiwDhgGeQogk4EUp5Rd1eE6lCvrkZLI/+wynsWPxfvzxqnc0GWHVPVCSDff8pTqvW7DSIh0Jh7OJO5RNwtEcdKUGLDQC/3BXOg0OICTKA1efpjMks7FIKTmafZQ/4/6sNDhcFXwVLjatq7+mLgPFRU1DUspbq32ClKF1eH7lHOlvvQ1C4PPUk9XvuOlN88zrCR+BX5cGKZvSMKSUZCUVEX8om7hDWaTHFYA0L+jTtrsXIZ09COrgjrWdGv6sN+o5kXuCdfHrWBf3X3Do69+31QaHc6m/kBao+J9/KFy3Dq/ZD2Pl71/1jqfWw5a3odsU6HFHwxVQqRdSSgqySkk+mWdev+F4LsV5ZQB4hzjR+5owQjt74BXk1OpWd5NSUqArILEwkaTCJJKKkip+TyxMJL0kHZM0qeBQhboMFK3rL6+Jkno9aa++hlVQEO7Tp1e9Y14irLoXfKLg6tqOSVCaAikleeklFYEh5VReRWCwdbQiINyVkM4eBHfyaPGZWA0mAznaHDJLMskoySCzNJOkoiRzUCj/KdSfv4SOh60HgU6B9PTpSaBTIKHOoQwKGKSCQyVqFSiEECFAuJTyLyGEHWB5zgJGU+u8dEqt5X73HbqYGALnf4KFTRUfDgYdrJgGRgNM+gqsVbt0cyBNkpzU4vLAkEvKqfMX9fGPcCUg3BX/cDfc/FrO2g2FukISCxPJKs0yB4GSTDJKzbeZpZlklmSSrc3GJC9ITmhhSaBjIAFOAXT16kqgUyBBTkEEOgUS6BjYpFJkNHW1SeFxL+Y5De6Yh7kGAguBEQBSysP1UUCl5gxZWWR+9DEOgwbhOHx41Tuuew6So2HS1+DRtuEKqNRaYY6WhCPZxB/OJuV0XsX60I5uNgRFuhMQ7oZ/uCsu3nbNPjBIKUkvSed4zvHzfs4OQz2Xu6073vbeeNp50sG9A152XhX3z9562XmhsVCpy+tCbdfM7gPsApBSnhJCeFf/FKUhZbz3PqayMnyefbbqD41DK2H3Iuj/IEROaNgCKpd0dthq/GFzcMhJKQbK14fu6lV+xeCKs6ddI5f0yhhMBuLy4ziee5wTOSc4lnOMEzknyCvLA0AgCHEOIcoziokREwlzDsPb3hsvey88bD2w0qj5HQ2pNoGiTEqpO/sBJISwpJKRTkrjKD1wgPxVq3C/ezo2bcIq3ynzBPzyMAT1hZEvNWj5lKoV55URfySbhMPZJB7LQac1YqER+LVzZcBNfoREebSIZUC1Bi2rTq3i1zO/cjL3JGVGc3+KtYU14W7hjAgeQXv39nR070i4WzgOVmolxaaiNoFisxDiWcBOCDEKmAWsqZ9iKbUhTSbSXn0NjZcnnvfPqnynsiJYfgdY2cHNS0F9I2s0JqOJ9NgC81XDkWyyEosAcHC1oV0vH0I6eRDYwa3FDFst1hfzw4kf+OrIV2Rrs+nk0YnJ7SfTwb0DHdw7EOoSipWF+ntsymrzlzgHuBs4hHkRo7XA5/VRKKV28n/6Ce2hQ/i/9SYax0q+hUkJvz5qvqK4YzU4VzNkVqlzJQU60mPzSYstID22gIy4AvRlRoSFwLeNM/2ub0NIlCceAQ7N/qrhXHnaPL47/h3fHvuWAl0BA/wHcE/ne+jl06tF1bM1qE0KDxPwWfmP0kQYCwrIePc97Lp3x3lCFX0OexbDoeUw/HloM6xBy9faGA0mshKLSIvNJz22gPTYfAqytABYWAg8Ah3p0M8Xv3BXgjq6Y+vQ8r5JZ5Zk8tXRr/jhxA+UGkq5Kugq7u1yL1GeUZd+stIk1WbU0yEu7pPIB/YAr0ops+uyYErNZH78McbcXHw+W1T5t7TkvfDHHGg3CgZXk8pDuSxlpQYSjmRXBIXMhKKKNaQdXKzxbeNC1JBAfNo44xXshJV1yx2Fk1KUwuLDi/np1E8YpIFxYeO4O+puwt2qSESpNBu1aXr6HTAC35Xfv6X8tgDzSnbX1l2xlJrQnjxJ7rff4TppEnadLlgZS0pI3GWeVOfoAzcugspSiyuXJTOxkMObkzm5Ow2DzoTGygLvECc6DwvAJ8wF3zbOOLpdlP6sRYrNj+XzQ5+z9sxaEHBd2+u4O+pugpyDGrtoSh2pTaAYKKUceM79Q0KI7VLKgeVLoyoNSEpJ+utvYOHoiNcjs/97QJsPB5ebm5syjoKtC0z5CezdG6+wLYRBbyRmbyaHNyeRdqYASysLwvv40HGAP96hTmha4NKgeqOevLI8cstyydPmkVOWQ572v/uJhYlsS96GjcaGWzrcwrRO0/B18G3sYit1rDaBwlEI0VdKuQtACNEHcCx/zFDnJVOqVfjnOkp27sTnheexdHODlH3lfRErQV8Cft3g2g8h6iawcbzk8ZSqFWSVcmRrCke3p6At0uPibcegm8Np38+3RfQxFOgKiE6LZnfabhIKE8wBQZtDXlkeRfqiKp/nZO2Eu60793S+hymRU3C3VV9G6kNusQ43h8Zd26I2geIeYLEQwhFzXqcC4B4hhAPwRn0UTqmcqbSU9LffwiYiHLcIPSwaZg4UVvbmwNBrOgT0aOxiNmvSJEk4msPhzUnEHc5GAGFdvYgaGkBge7dmnVSvRF/C/oz97Erbxe7U3RzNOYpJmrDR2NDGpQ1utm4EOQfhZuOGq40rbrYX37rYuKghrfXoTGYR64+ms/5oOtEJufz12FDaejXeF77ajHr6F+gshHABhJQy75yHl9d1wZSqZb//OoaUVALGlCB+2wxeHeHqudBlkrmpSbls2iI9R3ekcGRLMgVZWuycrek1LpTIQf44uTfPPge9Uc/BrIPsTt3NztSdHMw6iMFkwFJY0sWrCzO6zKCPbx+6enVtUauy1ZTJJPnw71P88G8iA9t5MqlXEL1D3Rp0CK/JJNmXmFceHNKIyTTPyI/0c+bhq8JxtGncOTW1TQp4DdAJsD37IkopX6mHcimVObYG3dp5ZH+TjHOIDvuhY8xXD0F91ap0l6G0SEdWYhFZSUVkJRWSlVhEbloJ0iTxD3el3/VtadPNC41l4/Y9mKSJHSk7KCgrQJ79T5oHIFb3e442h3/T/mVfxj5KDaUIBJEekUyNnEpf37509+7e6hPj5RbreOSH/Ww+mUnvUDd+P5TKyugkQj3sublXEDf2CMDPpX7SpWj1RnbEZJUHhwyyisrQWAj6hrkztV8IIyN9CHRrGu9PbYbHLgTsgeGYJ9pNBHbXU7mUc0kJm96AzW+RvisQLK3wXvATtOnY2CVrFqRJkp9Zag4IiYXlgaGoIiU3mGdFewY5EtbVk/BePngENI1+ndO5p3n5n5fZn7n/sp7fzrUdN7S7gb5+fenp01Ol0D7HgcQ8Zn27l8zCMl6/oTO39gmiVG/k90NpLN+TyDt/nuDddScYHO7FpF5BjIz0xsbyyoY3ZxWVsflEJuuPprPlVCYlOiMO1hqGtfdmVKQPw9t742Lf9Jr0xNlvIJfcUYiDUsou59w6AquklKPrt4hmvXr1knv27GmIUzUtJiP89jhEL6HIYRyJXxzA69FH8Zw5o7FL1mRJkyQttoCYvRmkx+aTlVyMocwIgLAQuPvZ4xHoiGegE55BjngGOmLn2LSaXMqMZXx64FOWHFmCg5UDj/d8nK7eXRFn/xPmWzAn0DP//992gcDeyl4FhkpIKfludwIv/3IULycbFkzpQZdA14v2i88uZmV0Ej9GJ5GSr8XV3orruwUwsWcgUQFVv656o4mEnBLOZBYTk1nEmcwizmQWcyarmJxiHQA+zjaM7OjDqEgf+rf1uOIAVB0hRLSUstcVHaMWgWK3lLKPEGIncCOQDRyWUjbIbJpWGSj0WvN61sfWYOr9ELEfRSOliTZr1mBh3bQ+2BqbNEnSzuRzem8GMXszKc4rw8JS4BPqjFfQ2YDghJufPZZWTXvS267UXbzyzyskFCZwbZtreaL3E2pEUR0p1Rl5bvUhVu1NZmiEF/Mmd7vkiCKjSbL9dBbL9ySy7mg6OoOJSD9nbu4VSCd/F2KzisqDQjFnsopIyC7BYPrvc9XT0Zo2no608XKgjZcDfcM86BzggkUDDYioi0BRmz6KNUIIV+AdYC/mWdoqnUd90ebDstsgfhtyzBukLD+FLiGB4MVfqCBRrqrgEBzpQf8b2hLWxbNZJdbL0+Yxd89cfo75mUDHQD4d9SkD/Ac0drFajNisYu7/JpoT6YU8OjKCh65qV6MPa42FYEiEF0MivMgr0fHLgRRW7Eni5TVHK/ax1lgQ6mlPhLcTYzv50tbrbGBwxMWu6TUl1VaN/hUJISyADeUjnX4UQvwK2Eop8+uzcK1WYRp8MxEyj8NNX5Czp4jC3//A6/HHcOjXr7FL16gqCw4aSwuCO7nTthkGBzA3hfx65lfe+fcdCnQF3B11NzO7zsTOsnmvOdGU/HkkjSeWH0CjESy9qw9DI7wu6ziu9tbc0T+UO/qHcjytgNR8LW09HQlws0PTjIdMX0qN/kVJKU1CiHeB/uX3y4Cy6p+lXJbsGPj6BijOgtt+oDjbiYy503EaNQqPe+5p7NI1OIPeSH5GKblpJaSeziNm3/nBod2NbQnt3PyCw1mJBYn8b+f/+Cf1H7p4duH/+v8f7d3bX/FxtXojmYVlBLk3jVEzYG72+XpnHP/G5XJj9wDGdPKt9+YXg9HEO+tO8OnmM3QNdOGT23vU2UiiDr7OdPB1rpNjNXW1+de1TghxE+YObLVgUX1I2We+kkDCnWvQawJInjYR65AQ/N54vcWmZpZSUlKgIy+thNz0kv9u04spyNZWpKJsKcEBQG/S8+WRL1l4YCGWFpY80+cZJreffMVLd0op+fVgKm/+fpzkvFIGtPXg4RHh9GvjUUclrz2t3sg3O+NZuPkMWUVluDtYs/5oOm29HLhvaFuu7x6AVT2kP8ko1PLQd/vYFZvDlH7BvDA+sl47jVuy2nRmFwIOmBMDlmKenS2llA0SUlt8Z3bMRvhhCti5w9SfMDkHkzD1DspOnSJ0xXJs2racta21xXqObkshO6WIvLQS8tJL0GmNFY9bWlvg6mOPm489rj72uPra4+bjgKuvfbPPviqlZE/6Ht7Y/Qanck8xIngEc/rMqZP8SPsT8/jfr0eJjs+lo58zoyN9+G53ApmFZfQJc+eREeH0b+vRYF84tHojy3YnsGBTDBmFZQxs58GjIyPoHuzG2kOpzN8Uw7HUAvxdbJkxpA2TewdjVwfvr5SSnWdymP39Pgq0el6/oTM39gisgxo1Tw066umyDi7EYmA8kCGljCrf9g7mTLM6IAa464JZ3pVq0YHi8I+waiZ4RsCUH8HZj9SXXyZv2fcEzJuH89gxjV3COmEySY5uTWbnL2coKzbg6GbzX0DwdSi/tcfR1aZZp8ioTGpRKmvOrOHn0z+TUJiAu40n/9f/eUaEjLjiYyfnlfL2H8f5eX8KXk42PDm6PTf1DERjISo+rBdujiG9oIxeIW48PCKcweGe9RYwygxGlv+byCcbY0gr0NInzJ3HRkVcdFUjpWTTyUwWbIxhd1wOHg7W3DUwlKn9Q2vdAZxVVMb201lsO5XF9tNZpORrCfWwZ+HUnq2meagqDT08VgC3A2FSyv8JIYIAPylllZPuhBBDgCLgq3MCxWjgbymlQQjxFoCU8ulLnb/FBopdn8LvT0Nwf7h1Gdi5kvfTalKfeQb3u6fj8+STjV3COpF8MpetP5wiO7mIgAhXBk2KwDOwaUxqqy+lhlL+iv+L1ad+5t/03UgkQtuWkpzuGAo6E+7lwdWd/bimix8RPk61Pn5xmYGFm2NYtOUMAPcObsN9w9pWmu5BqzeyYk8i8zfFkJqvpVuQK7NHhDOsvVedBQydwcSK6EQ++fs0Kflaeoe68ejIiBpdxfwbl8P8jafZeCITRxtLpvQLYfqgULydKk+bUqozsjsuh+2ns9h6KotjqQUAONtaMrCdJwPbeXJdN3+cbJv/iKMr1dCBYgFgAq6SUnYUQrgB66SUvS/xvFDg17OB4oLHbgAmSilvv9T5W1ygkBL+fhW2zoUO4+Gmz8HKDu3Ro8Tdeht23boR/MXnCMvm2w4PUJijZcePpzkdnYGjuw0DbwqnbY+6+3BqaqSU7MvYx/fHVrEhcR06UylS74Yurwc2pX0Y0rYDIzt6U6g18NvBVHbH5SAlhHs7cnVnP8Z38SP8EkHDaJKsjE5k7rqTZBaWcV03f54a24EA10uPkiozGPkxOplPNp4mOa+UzgEuPDwinJEdvS/7PdEbTazam8SHG8zH7B7symOjIhjUrvZXLUdS8lmwKYa1h1Kx1FgwqVcgM4e0xd/VjiMp+Wwtv2LYE5eLzmjCWmNBzxA3BoV7MqidJ1EBLi169NHlaOhAsVdK2UMIsU9K2b182wEpZddLPC+UqgPFGuAHKeU3VTx3BjADIDg4uGd8fHyNytosbPifOUj0mAbXvAcaSwy5ucRNvBlpNBL240osPRqvA/JKGXRG9q5LYN+f8Uigx5gQuo8ObvZ9DFVJKUxhycGVrI37lQJDKtJkjaGgMy7GAYxt259RkX70CXPH+oK8URkFWv44ksavB1P595ygcU0XP67pfHHQ2BGTxau/HuNoagE9gl15YXwk3YPdal1encHET/uS+HjjaRJzSs3J58oDht4o0RlMlBmMlBlM5T/G8m2m824zCrUs2R5HQk4JXQNdeHRUBEMjrvyLQFxWMZ9uiWFldBImCY42luSX6gHo4OvE4HDzVUOfMHfsrZv3l6n61tCBYhcwAPi3PGB4Yb6i6H6J54VSSaAQQjwH9AJurMkoqhZ1RZF+BBYOhi6T4fr5IATSaCRx5n2U7NpFyLffYNelS2OX8rJIKYnZm8n2H09RlFNG2x7eDLipLc4eTXtOwKGkfL7/N4E/DqdhkhJ7a0tsrSyws9ZgZ6XB1sp8e/a+nbUGW0tBujGa/flrydQfASExFLfBz2IQ49uOYVxUKB18nWr8oZlRoOX3w2n8dui/oBHhY77S6BPqzuLtcfx1LJ0AVzvmjOvA+C5+V/yBrDea+Hl/Ch//fYq47JLLOkZUgDOPjozgqg6Xf1VSlbR8LUt2xJJbrGNgO08GtPXEy8mmTs/R0jV0oLgdmAz0AL7EnBTweSnliks8L5QLAoUQYhpwHzBCSlmjv84WEyikhCXjIPMEPBRdsfJcxgcfkL1gIb4vv4zb5EmNXMjaSS/Q4mhjiTZLy9YfTpJ8Mg+PAEcGTwonoH3tv+02lPxSPb/sT+b7fxM5klKAjaUFozv54mJnSanOhFZvpFRvpFRnvj17v0RXhtZmNyaXTVhYZyL1bgRYDuG6thO4qWsXfJyvPB15ZUHD0caSWcPbMn1gGLZ1nIbEYDSx9nAaMRlF2FppsLa0wKb8x/y7BhsrC2w0FuZbS/M+dlYaAt3sWmxTYkvQoCk8pJTfCiGigRGYh8ZeL6U8VtsTCiHGAk8DQ2saJFqUA99Dwj8w4aOKIFH4999kL1iIy0034jrp5kYu4KVlFZXxT0w2O2Ky2RGTRXpmCUN01nTRarCwsaDPxLb0HB6ERRNcGlRKyZ74XJbtTmDtoVS0ehMd/Zx55bpOXNctoNrRNkW6IlaeXMnXR79GW5pBpHsHpkU+wYjgkdhZ1W1aFW9nW6YNCGXagFAyCrTsis2hXxuPevs2bamxYEJX/3o5ttL81eaK4gPM/Qk7anxwIZYBwwBPIB14EXgGsMGcVBBgp5Tyvksdq0VcUZTmwce9wC0Upq8DCwt0cXHETrwZ65AQQr77FgubpndZXaDVs/tMDttjsvgnJpvjaYUgob2FFQMt7fDINSANkhOOkvUWWoxWgkHtPBkX5ceoSJ9GX8YRILuojB/3JvH9v4mcySzG0caSCd38ubV3MFEBztV+I84qzeK7Y9/x/fHvKdQX0se3D3dH3U1///7qm7TS5DV0UsC9wPNCiAjgJ8xBo9pPbinlrZVs/qIW52xZ/n4VSrLNcyUsLDCVlJD00MMIS0sCP/ygyQQJrd7InrhcdsRksT0mm0NJeZgk2FpZMMjXlWsDfLBJ0lKWq8Pa1kS7vr50uSoINz8H9ifl8fuhVH4/nMbGHw+i+UnQr40746L8GN3Jp8rhjlUp1RnJKNSSUVhGoVaPlcYCa40FVpbmW2vLC+6Xb7PSCCyEYNvpLL7/N4H1R9PRGyU9Q9x4e2Jbxnfxu2QnaGJBIkuPLGX16dXoTXpGhoxketR0ojwvGpehKC1arSfcCSHcgZuAW4BglWa8hlL2w2fDofc9cPU7SClJefwJCv74g6DPFuE4cGBjl5CMAi1v/3mCX/anoDOasLQQdAtyZUCwGxF6DdpTBaTHFICAoI7udOjnS1g3r0pHMkkpOZJSwNpDqfxxOI0zWcUIAb1D3Bkb5cuI8tE1GYVaMgvLyCgoI6NQS3r5bUZhGZkFZRSWGS67PkKYu4Tc7K24sUcgt/QOuuTQU4Bj2cdYfHgx6+LXoREaJrSdwJ2d7iTUJfSyy6IojaVRZmYLIfpg7tS+Hjgqpbz2SgpQU806UJhM8MUoyEuAB/8FO1dyvvqK9NffaBKLEGn1RhZvj+WTv0+jN0pu6RPEsAgvAnUWxEdncGZfJga9CVcfezr096V9X18c3Wp+ZSCl5GR6UUXQOJFeWOl+NpYW+Djb4u1kg7ezDd5Otng52eDtZIOPsy1OtpYYTBK9wUSZ0YTeYDIP5TQa0RvkOdvMQzf1RhMRvk6MivSpNMePlJK8sjziCuKIy48jviCeQ1mH2J22GwcrBya1n8SUjlPwtve+7NdWURpbgzY9lc+ivhFz2o0fgP/VJPWGAuz7CpL3wA2fgp0rJXv3kv72OziOGIHHjHsbrVhSStYdTee1346RkFPCqEgfnhjclpwDOZz86jTHcsuwsbekQ38/2vf3xSe0+rb8qgghaO/rRHtfJx4dFUFMZhE7YrJxsrGsCApeTrY421rWS5t/qaGUEzkJxBWYg8HZoBBXEEeBrqBiP0thSbBzMLN7zGZS+0k4W7fu1A+KclZt+ihiMc+jaIO5M7qLEAIp5ZZ6KVlLUZwNf70EIQOhy2QMWVkkP/IoVgH++L/5RqN1hp5IK+SVX4+w/XQ24d6OfH13H0L0Fqz/+DBlJXqCO3kw4KZ2hHX1rPMV4dp6OdLWq27Sd5QaSskqySKjNIOMEvNPZkkmGaXm26SiJNKK0857jre9N2HOYYwNHUuIcwihLqGEOofi7+iPpYWavKUoF6rNvwoj8DcQCOwH+gH/AFfVfbFakA0vgbYArp6LNBpJfvwJjAUFhH62CI1T7fP7XKm8Eh3vrz/JN7sScLSx5OUJnbi1dxD7/0xgzW+xuPs5cOOTPXDzdWjwslXnSPYR1setJ7M087xgUKi7uBnLRmODl50XXvZe9PLpdV4wCHYKxt6q6azRoCjNQW0CxcNAb8zDWYcLIToAL9dPsVqIxH9h71fQ/0HwiSTz3fco2bULvzffwLb9lS9OUxsGo4nvdifw3vqTFJTqmdIvhEdHRmAr4Y8Fh0g8mkP7fr4Mva19k0qzkV+Wz4d7P2TFyRVoLDR423njZe9FG9c29PHrg7e9d0VQOPuYs/XlNZEpilK52gQKrZRSK4RACGEjpTwuhGjYT7vmxGSE3x4DJz8YNofCDRvI/uwzXCdPxvX66xu0KNtPZ/HymiOcTC9iQFsP/u/aSDr4OpN2Jp9fPjtMaaGeYbe3J3KQf5P5gDVJEz+f/pn3o9+nQFfA7R1v54FuD+Bo3bIzzipKU1SbQJEkhHAFVgPrhRC5QEp9FKpF2LMY0g7CxCXo0nJImfMMtlFR+Dz7TL2eVkpJRmEZMRlFxGQVs/lEBn8dyyDI3Y5Pp/ZkdKQPAAc3JrJ95Wkc3Wy48ckeeIc0nY7b4znHeXXnqxzIPEB37+481/e5OlkeVFGUy1ObFB43lP/6khBiI+AC/FEvpWruijLM2WHbDMPUZixJt96GsLAgYN68OptUV2YwEp9dwpnMImIyi82Bofz3onPmHrjYWfHkmPbcPcicH0inNbDxm+Oc3pNBaBdPRkzriK1D08jZX6gr5ON9H/P9ie9xtXHl1YGvcm3ba7EQTS8ViKK0Jpc1xENKubmuC9KirP8/0Jcgx71D2iv/o+zkSYIWfYp1YMBlH1JvNPHFtlj+jc0hJrOIhJwSTOdMgfF3saWttyMTewbS1svBPLLI2xFvJ5uK5qTslCL++PQw+Rkl9Lu+DT1GhzSJleSklPx65lfe3fMuuWW5TIqYxIPdH8TFxqWxi6YoCpcZKJRqxO+AA8tg8OPkbdxP/urVeD7wAI6DB1/2ITMKtDz43T52x+UQ4eNIJ38XJnT1p623eZhpmKcDDpWsanauE7vS2PTtcaxsLbnuke5NJqvrqdxTvLbrNaLTo+ns2Zn5I+cT6RHZ2MVSFOUcKlDUJaMefnscXIIpdb+a9Eem4zBoEJ6z7r/sQ+6OzeGB7/ZSqNUzb3I3ru9eu6sSo97E1hWnOLIlGb92Loy5NwoHl8bPKVWsL2b+/vl8e+xbHK0debH/i9wYfqNqZlKUJkgFirq061PIOIrxms9JfvxpNF6e+L/zNkJT++GmUkq+2BbLG78fJ8jNjq/v7lPrReJzUorZ8OVRMuIL6T4qmH7Xt6n31N8Gk4G8sjxytDnkanPJ1eaSo835736Z+f6ZvDPkleVxY/iNPNLjEVxtXeu1XIqiXD4VKOpKQQpsegPZbhTJi9ZjyMwk5LtvsXSrfRNPUZmBp388yG8HUxkd6cPcSV1xrsUi8foyI3vWxrJ/fSJWthrG3deZNt28al2OmijQFfDmrjc5lHWI3LJc8svyK91PIHC1ccXN1g03Wzf6+fVjSuQUung1z5X8FKU1UYGirvz5HBj1ZKV3p3jrN/i+9CJ2nTvX+jCnMwqZ+XU0sVnFPD22A/cNbVPjuQ1SSmL3Z7F1+UmKcsvoMMCPATe0xc6pftaDiMmLYfbG2SQXJTM8aDjutu6427rjZuv23+825sDgauOKxqLpTORTFKXmVKCoCzF/w5FVFHnfQdZH3+Jy3QRcJ0+u9WF+PZjC0ysPYmul4Zu7+zKgnWeNn5ufWcrWH04SfzgbjwAHRt3dCf92rrUuQ01tiN/As9uexc7SjsVjFtPdu9ql0xVFacZUoLhSZUXwy2z01m1J+WoPNuHh+L70Uq1mOOuNJt5Ye5zF22PpHuzK/Nt74OdiV6PnGvRG9q1LIPr3eCw0goET29F5eCCaeuqLMEkT8/fP59ODn9LZszPvD3sfHwefejmXoihNgwoUV2rDy5hyEkk6OBBpyDCvVGdXsw95MA99feC7vfwbl8u0/iE8d00k1pY1+5BPOJLNlu9Pkp9ZSrue3gycGI6jW/2NaCrUFfLM1mfYnLSZ69tdz/P9nsdG0/gjqBRFqV8qUFyJ+B2Ydiwi6XA3tCfOEPDhB1iHhtb46bvOZPPgsn0UaQ21GvpalKtl24pTxOzNxMXbjgkPdyMo0v0yK1EzZ/LPMPvv2SQVJvFs32e5pf0tTSYvlKIo9UsFisulK8G0chaJOwIoSc3E93+v4Dx6dI2eajRJFm05w9x1Jwh2t+ebu/vS3vfSKceNRhMHNySx+7dYpEnSd0IY3UeFoLGq3yGvmxI3MWfrHGw0NiwavYjevr3r9XyKojQtKlBcJuPal0hcVUhpri3+b7+Jy7U1WxE2PruYx5cfYE98LuOifHlrYpcaDX1NOpHL1h9OkpNSTEhnD4ZMjsDZs+ZNXJfDJE18evBT5u83z5aeN2wefo5+9XpORVGaHhUoLoPhyCYS31qFtsCGgHnv1+hKQkrJt7sSeH3tMTQWgvcmdeWG7gGXbL4pzNGyfeVpYvZm4ORhy7j7OhPW1bPem32KdEU8t+05/k78m/FtxvNi/xextaz5OtmKorQcKlDUkiEtmYR7H0BXYEXQvHdxHHXpIJGWr+WpHw+y5WQmg9p58vbELvi7Vn81YNAZ2bc+gb1/xCOBPteG0X1UMJYNsKhQXH4cszfOJr4gnqd6P8WUjlNUf4SitGL1GiiEEIuB8UCGlDKqfJs78AMQCsQBk6SUufVZjrqiT00lYfIN6AsMBL38MA6jxlW7v5SSXw6k8MLqw+iMJl65rhNT+oZgUU3GViklsQey2LbiFIXZWtr28GLATe1w9qjfZia9Sc+x7GPsTtvN4kOL0VhoWDhqIf38+tXreRVFafrq+4piKfAx8NU52+YAG6SUbwoh5pTff7qey3HFdAkJJEydgjE3n+B7emA/8YFq988p1vHC6sP8diiV7sGuvDepG2Ge1a9DnZtWzNblp0g8moO7vwPXPdKNwA71M5qpzFjGocxD7EnfQ3R6NAcyD1BqKAWgq1dX3hz8JoFOgfVybkVRmpd6DRRSyi1CiNALNl8HDCv//UtgE008UJSdOUPCnXchC7IIvtqE3YxPqt1/w7F0nv7xEPmlOp4c056ZQ9pgWc0EOF2pgX9/i+Xg30lY2mgYNCmcqKEBdTpprkRfwv7M/USnR7MnbQ+Hsg6hN+kRCMLdwrm+3fX08ulFD58eeNrVfEa4oigtX2P0UfhIKVMBpJSpQgjvRihDjWmPHydh+t1gKCV4WDq205aAfeXf8gu1el799Rg/7Emkg68TX03vQ6R/1RlfpUlyYlcaO36KobRQR+QAP/pe1xZ75yvPzaQ1aNmbvpedqTvZk76Ho9lHMUojGqGho3tHbutwG718e9Hdu7taIEhRlGo16c5sIcQMYAZAcHBwg5+/9OBBEu6dgYWNJcEDk7HpPR4iJ1S6784z2Tyx4gApeaXcP6wtj4wMx8ay6o7nrKQiNn17nPTYAnzCnLlmVhd8Qi9/3WqTNHEy9yQ7UnbwT8o/7E3fi86kw9LCki6eXZgeNZ1ePr3o6t0VB6vqm8AURVHO1RiBIl0I4Vd+NeEHZFS1o5RyEbAIoFevXrKq/epDyZ49JM68D42bG8Hj9Fgb7OHqdyrd9/OtZ3ht7TFC3O1ZcV9/eoZU369wZl8m65ccwcpGw4hpHWnf1/eyliTNKMngn5R/2JGyg52pO8nR5gDQzrUdkztMZoD/AHr69MTOsn47whVFadkaI1D8AkwD3iy//bkRylCt4h07SJz1AFZ+fgQ/NBSr3a/DjZ+D4/mtZFJK5q47wScbYxgX5cu7k7pib131SyqlZO+f8excfQafMGfG3de5VqvNlRpK2ZO2pyIwnM47DYC7rTv9/fszwH8A/fz64W3fpFvzFEVpZup7eOwyzB3XnkKIJOBFzAFiuRDibiABuLk+y1BbhuxsEh94EOvgYILffQHLH8ZDxDjoPPG8/YwmyfOrD7NsdwK39gnm1euj0FRzVWDUm9j47XFO7EwjvLcPV03tUKs5EQcyD/Dw3w+To83B2sKanj49mdB2AgP8BxDuFq6WEFUUpd7U96inW6t4aER9nvdK5HzzDVKrJeC9d7HcOhs0VjD+PThnwlmZwchjPxzgt0OpzBrWlifHtK92QlppoY7fPz1E6ul8+lwbRq+rQ2s1ge3PuD95bttzeNt789qg1+jl00vNklYUpcE06c7shmYqLib3u2U4jrgKm9zNEL8NJnwEzv4V+xSXGbjvm2i2nsriuas7cu+QNtUeMzuliLXzD1Kcr2P0PZ0I71XztRuklCw5soT3o9+nm1c3PrzqQ9xsa7+0qqIoypVQgeIceStXYsrPx2PytbB+OrQZBt2nVjyeW6zjzqX/cjg5n3cmduHmXkHVHi/+SDbrPjuMpbWGGx7rgU9YzUc1GUwGXt/1OitOrmBs6FheHfSqWvtBUZRGoQJFOanXk730S+x69sQ+7lOQEq79sKLJKS1fy9QvdhGfU8KC23swupNv1ceSkoMbk9i+4hQegY5cfX8XnNxr3lRUpCviiS1PsD15O3dH3c3DPR5WfRCKojQaFSjKFaxdiyE1Fd9pIyDmbRj3NriFAHAms4ipX+wmv1TPl3f1oX9bjyqPYzSa2PrDKY5sSSasqycj74rE2rbmL3NacRoPbHiAmLwYXuz/IhMjJl76SYqiKPVIBQrMVwDZn3+BTbs2OGYsBf/u0PseAA4n5zNt8W4Avp/Rj6iAqmcxa4v1/PnZYZKO59JjTDD9rmtbq/kRx7KP8eCGByk2FDN/xHwGBAy4onopiqLUBRUogKLNmyk7dQq/W7sgSrNgygqw0PBPTDb3frUHFzsrvr67D228HKs8Rl56Cb/NP0hBVilX3dGRjgNqt8DPlqQtPLH5CVxsXPhq3FdEuEVcabUURVHqhAoUQM7nX2Dp5YGL8U/ofx/4d2PdkTQeXLaPEHd7vrq7D34uVc9ujjuUxV9LjiKE4LpHuuMf7lqr839//Hve2P0G7d3a8/GIj9WEOUVRmpRWHyhK9++nZM8efIY4IFx8YfizrIxO4ukfD9I5wIUld/bGzaHyJH0GnZEdP57m0OZkPAIcGXdfFC5e9jU+t0maeHfPu3x19CuGBg7l7SFvY29V8+criqI0hFYfKLI+/xwLBxtcvU7D2KVsSSjjyZUHGNjWk0+n9sTBpvKXKCupiHVfHCE3tZiuI4Lof31bNFY1H5lUaijl2a3P8lfCX9za4Vae7v00Gov6X71OURSltlp1oCg7c4aiDX/jEaXFouNIkvxGMfvj7UR4O7Hojp6V5m2SJvPQ1x0/ncbW3oprH+5KcGTVo6DOZZIm9qbvZW3sWtbFr6OgrICnez/NlMgpdV01RVGUOtOqA0X24sUIDbi3L6Fs9FvM+m4fBqNk4dTKg0Rxfhl/f3mMhKM5hHbx5KqpHbBzqn7tCCklx3OOszZ2Lb/H/k56STp2lnYMCxrGzRE309u3d31VT1EUpU602kChT8+gYPVqXEKLsBzzJC9sK+FgUj6LpvasdMnSuINZbPjqGIYyI0Nva0+nwf7V5muKL4ivCA6x+bFYCksGBgzksZ6PMSxomOqLUBSl2Wi1gSJ36WKk0YhHf29WWt/Ast3HmDWs7UUzrvXlHdaHNyfjGeTIqOmdcPerfOGfjJIM/oj9g99jf+dw9mEEgp4+PZkaOZVRwaNwtXVtgJopiqLUrVYZKIyFheQu+w7noFKSxnzAs6tPMKidJ4+Pbn/efllJhaz7/Ai5aSV0GxlEv+sq77DembqTzw9+zu603UgkHd078kSvJxgTOgZfh6pTfSiKojQHrTJQ5H7+ISatHqfxA5i8wRJPBw0f3NKtYj0JaZIc+DuRf1bHYOtgxYTZ3QjqePGqdTF5MbwX/R5bkrbg6+DLfV3vY1zYOMJcwhq6SoqiKPWm1QUKk1ZLzjfLsPc38ozdXWSkl7H8vv54OJozs2YlFbF95SmSjucS1tWT4VM7YOd4fod1VmkWC/Yv4MdTP2Jvac9jPR/jto63qeyuiqK0SK0uUOR/8hzGYiNx113DbzE6Xrshim5BruRnlrJ7zRlO/puOjZ0lw25vT+Sg8zustQYtXx/9mi8Of0GZoYxJ7Sdxf9f71RoRiqK0aK0qUMiCDHJ++BVLLxvuKhnOxJ6BXN/eh83LTnB0awoWGkGP0SF0Hx2MrYNVxfNM0sRvZ37jw30fklacxvCg4Tza81HVxKQoSqvQqgJF4UcPoiuw4PsBo4nyduV6jQPf/N9OTAZJ5CB/el0TioPL+c1H/6b9y9w9czmafZRIj0heH/S6mvugKEqr0moChYzbTvbaaEqc3Yl1G8X4RMmBkwmE9/ahz7VhuHqfP68hNj+W96LfY1PiJnwdfHl90Otc0+YatYCQoiitTusIFAYdRZ8+Qoz1cI50upG+xVb4R7nS97o2eAU5VexWpCtiT/oeNiVu4ufTP2NjacPsHrOZ0nEKtpY1X6FOURSlJWnxgUKaJKeXfcP29Ecpbu+Lxs2SG6Z3xj/cDZ1Rx79p/7IrdRc7U3dyOOswRmnERmPDjeE3MqvbLDzsapbHSVEUpaVq8YHi9493EXs0FAddMhaa/Qx5bCzr0n9m5/qd7M3YS6mhFAthQZRHFNOjptPfvz9dvbpirak+h5OiKEpr0eIDhZtxOcacDAKO7WfOoy7MX7sEgDYubbih3Q309etLL99eOFs7N3JJFUVRmqZGCxRCiEeBewAJHALuklJq6/o88zjOC4di2djXgd4Rw+jn14++fn3VKnKKoig11CiBQggRADwMREopS4UQy4FbgKV1fa7ZSREIiwRmvv4L1v7+dX14RVGUFq8xm54sATshhB6wB1Lq4yQdunRH7+WngoSiKMplapRAIaVMFkLMBRKAUmCdlHLdhfsJIWYAMwCCg4Mv61zu06ZdQUkVRVGURpk9JoRwA64DwgB/wEEIcdF6oFLKRVLKXlLKXl5eXg1dTEVRFIVGChTASCBWSpkppdQDq4ABjVQWRVEUpRqNFSgSgH5CCHthTs86AjjWSGVRFEVRqtEogUJKuQtYCezFPDTWAljUGGVRFEVRqtdoo56klC8CLzbW+RVFUZSaUalQFUVRlGqpQKEoiqJUSwUKRVEUpVpCStnYZagRIUQmEH+ZT/cEsuqwOM1Ja647tO76t+a6Q+uu/7l1D5FSXtFEtGYTKK6EEGKPlLJXY5ejMbTmukPrrn9rrju07vrXdd1V05OiKIpSLRUoFEVRlGq1lkDRmifztea6Q+uuf2uuO7Tu+tdp3VtFH4WiKIpy+VrLFYWiKIpymVSgUBRFUarV4gOFEGKsEOKEEOK0EGJOY5enPggh4oQQh4QQ+4UQe8q3uQsh1gshTpXfup2z/zPlr8cJIcSYxit57QkhFgshMoQQh8/ZVuu6CiF6lr9mp4UQH5ZnMW7yqqj/S0KI5PL3f78Q4upzHmsx9RdCBAkhNgohjgkhjgghZpdvb/HvfzV1b5j3XkrZYn8ADRADtAGsgQOY1+lu9LLVcT3jAM8Ltr0NzCn/fQ7wVvnvkeWvgw3mhaNiAE1j16EWdR0C9AAOX0ldgd1Af0AAvwPjGrtuV1D/l4AnKtm3RdUf8AN6lP/uBJwsr2OLf/+rqXuDvPct/YqiD3BaSnlGSqkDvse8sl5rcB3wZfnvXwLXn7P9eyllmZQyFjiN+XVqFqSUW4CcCzbXqq5CCD/AWUr5jzT/y/nqnOc0aVXUvyotqv5SylQp5d7y3wsxr2ETQCt4/6upe1XqtO4tPVAEAInn3E+i+he3uZLAOiFEdPk64wA+UspUMP+RAd7l21via1LbugaU/37h9ubsQSHEwfKmqbNNLy22/kKIUKA7sItW9v5fUHdogPe+pQeKytreWuJ44IFSyh7AOOABIcSQavZtLa8JVF3XlvYaLADaAt2AVODd8u0tsv5CCEfgR+ARKWVBdbtWsq1Z17+SujfIe9/SA0USEHTO/UAgpZHKUm+klCnltxnAT5ibktLLLzMpv80o370lvia1rWtS+e8Xbm+WpJTpUkqjlNIEfMZ/TYktrv5CCCvMH5TfSilXlW9uFe9/ZXVvqPe+pQeKf4FwIUSYEMIauAX4pZHLVKeEEA5CCKezvwOjgcOY6zmtfLdpwM/lv/8C3CKEsBFChAHhmDu3mrNa1bW8eaJQCNGvfMTHHec8p9k5+yFZ7gbM7z+0sPqXl/UL4JiU8r1zHmrx739VdW+w976xe/MbYLTA1ZhHCMQAzzV2eeqhfm0wj244ABw5W0fAA9gAnCq/dT/nOc+Vvx4naOKjPSqp7zLMl9h6zN+O7r6cugK9yv9RxQAfU56loKn/VFH/rzGvPX+w/APCryXWHxiEuZnkILC//Ofq1vD+V1P3BnnvVQoPRVEUpVotvelJURRFuUIqUCiKoijVUoFCURRFqZYKFIqiKEq1VKBQFEVRqqUChaJUQwjhKoSYVc3jO2pwjKK6LZWiNCwVKBSleq7ARYFCCKEBkFIOaOgCKUpDs2zsAihKE/cm0FYIsR/zJLcizBPeugGRQogiKaVjeQ6enwE3wAp4XkrZpGf7KkpNqQl3ilKN8kydv0opo4QQw4DfgChpTt3MOYHCErCXUhYIITyBnUC4lFKe3aeRqqAoV0xdUShK7ew+GyQuIIDXyzP3mjCnbvYB0hqycIpSH1SgUJTaKa5i++2AF9BTSqkXQsQBtg1WKkWpR6ozW1GqV4h56clLcQEyyoPEcCCkfoulKA1HXVEoSjWklNlCiO1CiMNAKZBexa7fAmuEEHswZ/Y83kBFVJR6pzqzFUVRlGqppidFURSlWipQKIqiKNVSgUJRFEWplgoUiqIoSrVUoFAURVGqpQKFoiiKUi0VKBRFUZRq/T/iTsEPwGW0OAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['average_specificity',\n", + " \"average_specificity_no_mods\",\n", + " \"average_specificity_update\",\n", + " \"average_specificity_cover\",\n", + " \"average_specificity_both\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[[\"fraction_accuracy_no_mods\",\n", + " \"fraction_accuracy_update\",\n", + " \"fraction_accuracy_cover\",\n", + " \"fraction_accuracy_both\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['population',\n", + " \"population_no_mods\",\n", + " \"population_update\",\n", + " \"population_cover\",\n", + " \"population_both\",\n", + " ]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEGCAYAAACQO2mwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAACOFklEQVR4nOydd1gUVxeH39llYVl679UGCAIKdrHXWNI1TRNTjKZ3003vPV9MTDQmMTGmGUvsvYsNbIio9N572TLfHwMI0hGs8z4Pz8rsnZk76zJn7im/I4iiiIyMjIyMTGMoLvcEZGRkZGSuXGQjISMjIyPTJLKRkJGRkZFpEtlIyMjIyMg0iWwkZGRkZGSaxOhyT6A12Nvbi97e3pd7GjIyMjJXFYcOHcoRRdHhYo5xVRgJb29vDh48eLmnISMjI3NVIQhC4sUeQ3Y3ycjIyMg0SacZCUEQ1IIgRAqCEC0IwglBEN6o3m4rCMJGQRDiql9tOmsOMjIyMjIXR2euJCqBEaIoBgMhwDhBEPoDc4HNoih2AzZX/y4jIyMjcwXSaTEJUdL7KKn+VVX9IwJTgGHV238CtgEvdNY8ZGQ6Aq1WS0pKChUVFZd7KjIyDVCr1bi7u6NSqTr82J0auBYEQQkcAroC/xNFcb8gCE6iKKYDiKKYLgiCY2fOQUamI0hJScHCwgJvb28EQbjc05GRqUUURXJzc0lJScHHx6fDj9+pgWtRFPWiKIYA7kBfQRACW7uvIAgPCYJwUBCEg9nZ2Z02RxmZ1lBRUYGdnZ1sIGSuOARBwM7OrtNWuZcku0kUxQIkt9I4IFMQBBeA6tesJvZZIIpimCiKYQ4OF5XmKyPTIcgGQuZKpTO/m52Z3eQgCIJ19b9NgVHAKWAlMKN62AxgRWfNgdh1sPPTTju8jIyMzLVOZ64kXICtgiAcBQ4AG0VRXA28D4wWBCEOGF39e+dwbivs+rzTDi8jc6lITk7Gx8eHvLw8APLz8/Hx8SExMZFZs2bRpUsXevbsSUREBPv37wfgnXfeoWfPnvTq1YuQkJDa7TIybaEzs5uOAqGNbM8FRnbWeethaguVhaDXgrLjo/4yMpcKDw8PZs+ezdy5c1mwYAFz587loYce4oUXXsDHx4e4uDgUCgXnzp0jJiaGvXv3snr1ag4fPoyJiQk5OTlUVVVd7suQuQq5tiuuNbbSa3n+5Z2HjEwH8NRTT7Fv3z4+//xzdu3axc0338z+/ft5++23USikP2VfX19uuOEG0tPTsbe3x8TEBAB7e3tcXV0v5/RlrlKuCu2mdlNjJMpywVzOtJXpGN5YdYKTaUUdeswAV0ten9Sz2TEqlYqPPvqIcePGsWHDBmJjYwkJCUGpVDYYO2bMGN588026d+/OqFGjmDp1KkOHDu3QOctcH1zbKwnTGiORd3nnISPTQaxduxYXFxeOHz/e7Dhzc3MOHTrEggULcHBwYOrUqSxevPjSTFLmmuIaX0nYSa/lspGQ6ThaeuLvLKKioti4cSP79u1j8ODBLF26lOjoaAwGQ627qS5KpZJhw4YxbNgwgoKC+Omnn7j33nsv/cRlrmqu7ZVEXXeTjMxVjCiKzJ49m88//xxPT0+ee+45vvnmG8LCwnj99deRVHAgLi6OFStWEBsbS1xcXO3+UVFReHl5Xa7py1zFXNtGQnY3yVwjfP/993h6ejJ69GgA5syZw6lTp3jkkUfIyMiga9euBAUF8eCDD+Lq6kpJSQkzZswgICCAXr16cfLkSebNm3d5L0LmquTadjcZa8DIVF5JyFz1PPTQQzz00EO1vyuVSg4dOgTQZEB6z549l2RuMtc21/ZKAiSXk5wCKyMjI9Murg8jIbubZGRkZNrFtW8kTG1ld5OMjIxMO7n2jYTGVk6BlZGRkWkn14GRsJNXEjIyMjLt5No3Eqa2UF4ABv3lnomMjIzMVce1byQ0doAIFYWXeyYyMu2mKanw7du3IwgCX331Ve3YRx99tJ4Ex8cff4yfnx+BgYEEBwfz888/A7B69WpCQ0MJDg4mICCA77777pJek8zVwXVgJOSqa5mrn7pS4UCtVLiXlxeOjo588cUXjUqBf/vtt2zcuJHIyEiOHz/Ojh07EEURrVbLQw89xKpVq4iOjubIkSMMGzbsEl+VzNXAtW8k5KprmWuEC6XCn3nmGQAcHBwYOXIkP/30U4N93n33Xb755hssLS0BsLKyYsaMGRQXF6PT6bCzk/TNTExM6NGjx6W7GJmrhmu74hrklYRMx7N2LmQc69hjOgfB+OabNF4oFW5sbFz73ty5cxk/fjwzZ86s3VZcXExxcTFdunRpcCxbW1smT56Ml5cXI0eOZOLEidxxxx2NCgXKXN9c+9+I2sZD8kpC5uqnKalwHx8f+vbty2+//Va7TRRFBEFo8lg//PADmzdvpm/fvnz88cf1DIyMTA3XwUqiWi5cdjfJdBQtPPF3FhdKhU+bNq3e+y+99BK33norERERAFhaWmJmZsa5c+fw9fVt9JhBQUEEBQVxzz334OPjI/eckGnAtb+SMDYHhUp2N8lc1TQmFf7ss8/WG+Pn50dAQACrV6+u3fbiiy/yyCOPUFQkddIrKipiwYIFlJSUsG3bttpxspS4TFNc+ysJQZCrrmWuehqTCl+8eDGJiYn1xr388suEhobW/j579mxKSkoIDw9HpVKhUql45plnEEWRDz/8kFmzZmFqaoqZmZm8ipBpFKGmWcmVTFhYmHjw4MH2H+CbAWDrC9N+7bhJyVxXxMTE4O/vf7mnISPTJI19RwVBOCSKYtjFHPfadzdBtcifvJKQkZGRaSvXh5HQyEqwMjIyMu3h+jESckxCRkZGps1cJ0bCTnI3XQXxFxkZGZkrievDSJjagqiXRf5kZGRk2sj1YSTkqmsZGRmZdtFpRkIQBA9BELYKghAjCMIJQRCeqN4+TxCEVEEQoqp/JnTWHGqRq65lrnKakgpPTEwkISHhssqFHzx4kMcffxyAbdu2sWfPntr37r33Xv7666/2XPJlZ/HixTz66KPNjrnweq9FOnMloQOeEUXRH+gPPCIIQkD1e5+JohhS/bOmE+cgISvBylzlNCcVDlxWufCwsDC+/PJL4Pq4adblerjeTjMSoiimi6J4uPrfxUAM4NZZ52sW2d0kcw3QlFQ4dK5ceFBQEAUFBYiiiJ2dXe0q5J577mHTpk1s27aNiRMnkpCQwLfffstnn31GSEgIO3fuBGDHjh0MHDgQX1/fJlcVS5YsoW/fvoSEhDBr1iz0eqmTpLm5OS+//DLBwcH079+fzMxMCgsL8fb2xmAwAFBWVoaHhwdarbbeMS9cxZibmwPSjT0iIoKbbrqJgIAAHn744dpj/fjjj3Tv3p2hQ4eye/fu2n1XrVpFv379CA0NZdSoUWRmZjZ6vdnZ2dxyyy2Eh4cTHh5e7xhXK5dElkMQBG8gFNgPDAIeFQRhOnAQabWR36kTkOXCZTqQDyI/4FTeqQ49pp+tHy/0faHZMc1JhUPnyYUPGjSI3bt34+Xlha+vLzt37mT69Ons27eP+fPnU6OG4O3tzcMPP4y5uXmtrtTChQtJT09n165dnDp1ismTJ3PrrbfWO35MTAzLli1j9+7dqFQq5syZw6+//sr06dMpLS2lf//+vPPOOzz//PN8//33vPLKKwQHB7N9+3aGDx/OqlWrGDt2LCqVqtWfd2RkJCdPnsTLy4tx48bxzz//MGjQIF5//XUOHTqElZUVw4cPr5U4GTx4MPv27UMQBH744Qc+/PBDPvnkkwbXe+edd/LUU08xePBgkpKSGDt2LDExMa2e15VIpxsJQRDMgb+BJ0VRLBIEYT7wFiBWv34CNNAoFgThIeAhAE9Pz4ubhIkVCArZ3SRz1VNXKrxGx6mG9sqFHzt2jE2bNvHxxx+zcePGBhpOQ4YMYceOHXh5eTF79mwWLFhAamoqtra2tU/nzXHjjTeiUCgICAggMzOzwfubN2/m0KFDhIeHA1BeXo6joyMAxsbGTJw4EYA+ffqwceNGAKZOncqyZcsYPnw4v//+O3PmzGlxHnXp27dvrTLuHXfcwa5duzAyMmLYsGE4ODjUnuP06dMApKSkMHXqVNLT06mqqsLHx6fR427atImTJ0/W/l5UVERxcTEWFhZtmt+VRKcaCUEQVEgG4ldRFP8BEEUxs8773wOrG9tXFMUFwAKQtJsuaiIKRbU0h7ySkLl4Wnri7ywakwp3cXGpN6Yz5MIjIiL43//+R1JSEu+88w7Lly/nr7/+YsiQIa2at4mJSe2/G9OKE0WRGTNm8N577zV4T6VS1Ro5pVKJTqcDYPLkybz44ovk5eVx6NAhRowY0WBfIyOjWjeSKIr14jUXGs6a35syqI899hhPP/00kydPZtu2bcybN6/RcQaDgb1792Jqatro+1cjnZndJAALgRhRFD+ts73ut/om4PiF+3YKctW1zFVMa6TCoXPkwj08PMjJySEuLg5fX18GDx7Mxx9/3KiRsLCwoLi4uE3XNnLkSP766y+ysrIAyMvLa6BueyHm5ub07duXJ554gokTJ6JUKhuM8fb25tChQwCsWLGiXswiMjKS+Ph4DAYDy5YtY/DgwfTr149t27aRm5uLVqvlzz//rB1fWFiIm5sUUq0b97nweseMGcPXX39d+3tUVFQbPokrk87MbhoE3AOMuCDd9UNBEI4JgnAUGA481YlzOE9N1bWMzFVIY1Lhp06dYvv27Q3Gvvzyy6SkpNT+Pnv2bIYPH054eDiBgYEMHToUjUZTKxfeo0cPQkJCeP3115uUC+/Xrx/du3cHJPdTamoqgwcPbjBu0qRJLF++vF7guiUCAgJ4++23GTNmDL169WL06NGkp6e3uN/UqVNZsmQJU6dObfT9Bx98kO3bt9O3b1/279+PmZlZ7XsDBgxg7ty5BAYG4uPjw0033YSLiwvz5s1jwIABjBo1it69e9eOnzdvHrfddhtDhgzB3t6+yev98ssvOXjwIL169SIgIIBvv/22VZ/Blcz1IRUOsPROyE+AOdd2uppM5yBLhV87bNu2jY8//rjeautaQJYKv1g0NrK7SUZGRqaNXPud6WrQ2EmBa1GUutXJyMhclwwbNqxdRYPXK9fPSsLUFvRVUFV6uWciIyMjc9Vw/RiJGv0m2eUkIyMj02quIyMhV13LyMjItJXrx0jIIn8yMjIybeb6MRKyXLjMVYwsFS5zubiOjISsBCtz9SJLhV+5iKJYK/9xLXL9GAm1NSDIKwmZqxZZKrxtUuGZmZncdNNNBAcHExwcXGu8Pv30UwIDAwkMDOTzzz8H4IUXXuCbb76p3XfevHl88sknAHz00UeEh4fTq1cvXn/9dQASEhLw9/dnzpw59O7dm+Tk5Cb/3652rp86CaURqK3kwLXMRZPx7rtUxnSsVLiJvx/OL73U7BhZKrxtUuGPP/44Q4cOZfny5ej1ekpKSjh06BA//vgj+/fvRxRF+vXrx9ChQ5k2bRpPPvlkrZrsH3/8wbp169iwYQNxcXFERkYiiiKTJ09mx44deHp6Ehsby48//ljPuFyLXD8rCZBF/mSueupKhV9Ie6XCN2/eTN++ffn444/rGZgaaqTCd+zYwezZszl27FinSYWHhISwefNmzp07BzSUCk9ISADOS4UD/P77743qN23ZsoXZs2cDkoKslZUVu3bt4qabbsLMzAxzc3Nuvvlmdu7cSWhoKFlZWaSlpREdHY2NjQ2enp5s2LCBDRs2EBoaSu/evTl16hRxcXEAeHl50b9//xav/2rn+llJwPmqaxmZi6ClJ/7OQpYKb5tUeGM0p1V366238tdff5GRkcG0adNqx7/44ovMmjWr3tiEhIR6goHXMtfXSsLUVo5JyFyVyFLh9WmNVPjIkSOZP38+AHq9nqKiIiIiIvj3338pKyujtLSU5cuX117HtGnT+P333/nrr79qXWJjx45l0aJFlJSUAJCamlo7z+uF68tIaOygvHM7pcrIdAayVHhDWpIK/+KLL9i6dStBQUH06dOHEydO0Lt3b+6991769u1Lv379eOCBB2pblPbs2ZPi4mLc3NxqV2hjxozhzjvvZMCAAQQFBXHrrbe22Qhe7Vw/UuEA61+Gg4vg5Za/gDIydZGlwmWudGSp8Hai1ddJizO1AW0ZaMsv34RkZGRkriKuaSPx3v73mLB8wvkNctW1jIyMTJu4po2EtdqazNJMKvWV0ga56lpGRkamTVzTRsLDwgMRkdTiVGmDvJKQkZGRaRPXvJEASC6uLpk3leXCZWRkZNrC9WUkZHeTjIyMTJu4po2EjYkNZiozkoqTpA1yTwmZq5RrWSo8ISGBwMDANp3z888/p6ysrPb31siDdBYTJkygoKCgQ49ZUFBwxWhCXdNGQhAEPC08z68kjIzB2EI2EjJXHbJUeH0uNBKXkzVr1mBtbd2hx5SNxCXE3cKdlOLz1aeyyJ/M1cq1LBWu0+mYMWMGvXr14tZbb601AJs3byY0NJSgoCBmzpxJZWUlX375JWlpaQwfPpzhw4fXHuNCSfELKS0tZebMmYSHhxMaGsqKFSsAWLx4MTfffDPjxo2jW7duPP/88wDMnz+/9t814x577LEGx/X29iYnJ6dWPvzBBx+kZ8+ejBkzhvJyqSZr2LBhPPnkkwwcOJDAwEAiIyMBSZL8448/rj1WYGAgCQkJzJ07l7NnzxISEsJzzz1Heno6ERERhISEEBgY2Opq9o7gmhf487DwYGvyVvQGPUqFUjIScuBa5iLY+cdpcpJLOvSY9h7mDLm9e7NjrlWpcIDY2FgWLlzIoEGDmDlzJt988w2PPvoo9957L5s3b6Z79+5Mnz6d+fPn8+STT/Lpp5+ydetW7O3tAZqUFK/LO++8w4gRI1i0aBEFBQX07duXUaNGAZJu1ZEjR2oN5WOPPcatt97KgAED+PDDDwFYtmwZL7/8crP/R3FxcSxdupTvv/+e22+/nb///pu77767do579uxhx44dzJw5s1El3xref/99jh8/TlRUFACffPIJY8eO5eWXX0av11/SVdQ1v5LwsPBAZ9CRWVb9ZCGL/MlcxVyLUuEgudMGDRoEwN13382uXbuIjY3Fx8enVjNqxowZ7Nixo9H9m5IUr8uGDRt4//33CQkJYdiwYVRUVJCUJMUrR44ciZWVFWq1moCAABITE3FwcMDX15d9+/aRm5tLbGxs7RybwsfHh5CQkEbncccddwCSqm5RUVGb4hjh4eH8+OOPzJs3j2PHjmFhYdHqfS+W62IlAVKGk6u5q1QrkXvmMs9K5mqmpSf+zuJalQoHGhgyQRCalfW+kKYkxesiiiJ///13A5fa/v37682x7v5Tp07ljz/+wM/Pj5tuuqlZgws0OE6Nu6nmmuoiCAJGRkb1Wp9WVFQ0etyIiAh27NjBf//9xz333MNzzz3H9OnTm51LR3FdrCTggjRYWQlW5irjWpYKB0hKSmLv3r0ALF26lMGDB+Pn50dCQgJnzkgPdb/88gtDhw5t93nGjh3LV199VWt8jhw50uI+N998M//++y9Lly5tUm22tdQ0Sdq1axdWVlZYWVnh7e3N4cOHATh8+DDx8fFAw+tLTEzE0dGRBx98kPvvv792n0tBpxkJQRA8BEHYKghCjCAIJwRBeKJ6u60gCBsFQYirfrXprDkAOGmcMFIY1TESdlBZBHpt8zvKyFxBXMtS4QD+/v789NNP9OrVi7y8PGbPno1arebHH3/ktttuIygoCIVCwcMPPwzAQw89xPjx4+sFrlvi1VdfRavV0qtXLwIDA3n11Vdb3MfGxqbW/dS3b99Wn6upYw0cOJCHH36YhQsXAnDLLbeQl5dHSEgI8+fPr/2M7ezsGDRoEIGBgTz33HNs27aNkJAQQkND+fvvv3niiScuai5todOkwgVBcAFcRFE8LAiCBXAIuBG4F8gTRfF9QRDmAjaiKL7Q3LEuVip80vJJdLPpxqfDPoXI72HNs/DMabBwavcxZa4vZKlwmYth2LBhfPzxx4SFXZRqd7NcdVLhoiimi6J4uPrfxUAM4AZMAWry9H5CMhydSr00WLnqWkZGRqbVNBm4FgShd3M71hiA1iAIgjcQCuwHnERRTK8+RrogCI6tPU578bDwICorSsr0qBX5k9NgZWRkLg11Yz9XG81lN33SzHsi0KrO44IgmAN/A0+KoljUUnZAnf0eAh4C8PT0bNU+TeFh4UGJtoSCygJsZGkOmXbSUjqpjMzlojM7jDZpJERRbH1EqAkEQVAhGYhfRVH8p3pzpiAILtWrCBeg0a7ioiguABaAFJO4mHnUzXCykVcSMu1ArVaTm5uLnZ2dbChkrihEUSQ3Nxe1Wt0px29VnYQgCIFAAFA7C1EUf25hHwFYCMSIovhpnbdWAjOA96tfV7Rxzm2mxkgkFSfRy6ObtFGOSci0AXd3d1JSUsjOzr7cU5GRaYBarcbd3b1Tjt2ikRAE4XVgGJKRWAOMB3YBzRoJYBBwD3BMEISo6m0vIRmHPwRBuB9IAm5rz8Tbgpu5G1BdK6EyBSNT2d0k0yZUKhU+Pj6XexoyMpec1qwkbgWCgSOiKN4nCIIT8ENLO4miuAtoal0+svVTvHjURmqcNE51MpzsZCMhIyMj0wpakwJbLoqiAdAJgmCJFENovL7/CsbDwqNOQZ2N7G6SkZGRaQWtMRIHBUGwBr5HKog7DER25qQ6g/pGwk4OXMvIyMi0ghbdTaIozqn+57eCIKwDLEVRPNq50+p4PCw8yCnPoUxbhsbUFgqSL/eUZGRkZK54mlxJCILgV/3au+YHsAWMWiq0uxKpyXBKKUmRGw/JyMjItJLmVhJPIxWzNVZU1+piuiuFurUS3TV2UF4ABj0olJd3YjIyMjJXMM0V0z0kCIICeEUUxd2XcE6dgruFlEOcUpwiNR5ClAyFmd1lnZeMjIzMlUyzgevqrKaPmxtztWBlYoWlsaUUvJarrmVkZGRaRWuymzYIgnCLcA1oEdRmOGmqW1jIcQkZGRmZZmmNkXga+BOoFAShSBCEYkEQijp5Xh1C+fETFK7+r/b3WiMhi/zJyMjItIoWjYQoihaiKCpEUTQWRdGy+nfLSzG5i6Xwn3/IeO01xOoesh4WHqSVpKFVW0kDZHeTjIyMTLO0aCQEQdjcmm1XIsru/hRjgTYpCZCMhF7UkyFWSQNkd5OMjIxMszRXJ6EWBMEWsBcEwaa6N7VtdQMh10s2w4sgKsuNwyFPUhETA5zPcEquzAOlsbySkJGRkWmB5lYSs5BkOPyqX2t+VgD/6/ypXTx2XZ3QGltSfOwUAJ4WUvOi5Jo0WDkmISMjI9MszdVJfAF8IQjCY6IofnUJ59RhWLtaAJB7Oh03wEHjgInSpDrDyRbK8y/vBGVkZGSucFoTuL4qDQSAtaMGgPy0YkRRRCEocDd3P18rIbubZGRkZJqlNSmwVy1WDqaASIlBgy4zE6hOgy1JBlMb2d0kIyMj0wLXtJFQqhSYWygpN3Wk4uT54HVKcQqiqa28kpCRkZFpgVYZCUEQ3ARBGCgIQkTNT2dPrKOwcbGgTONERcxJQFpJlOvKyVWbSTEJUbzMM5SRkZG5cmlNj+sPgKnASUBfvVkEdnTivDoMa1cL0k85UX5SqryuVYM1UmAv6qGiEEytL+MMZWRkZK5cWtPj+kaghyiKlZ08l07B2skUncKEotOJQB0jgYFQkFxOspGQkZGRaZTWuJvOAarOnkhnUZPhVFwkosvPx83cDYWgIFmskAbIabAyMjIyTdKalUQZEFUtxVG7mhBF8fFOm1UHYlVtJMpMHak8dQqzAQNw1jiTrCuWBsjBaxkZGZkmaY2RWFn9c1ViYadGoRQo00gZTmYDBkhpsBXV6a9yGqyMjIxMk7RoJERR/OlSTKSzUCgErBxMqSjwpOKklOHkbuHOlnxJqkMW+ZORkZFpmiaNhCAIf4iieLsgCMeQspnqIYpir06dWQdi7aQhJ8OFipjzGU75lYWUKIwwl91NMjIyMk3S3EriierXiZdiIp2JtaOGRMGCyvgEDGVleFpWC/2Z2+Avu5tkZGRkmqQ5gb/06tfESzedzsHK0RSDqKDCxJqKU7F4eFenwWqs8JdXEjIyMjJNck3LctRg7XQ+w6ki5uT5WgkTtZwCKyMjI9MMnWYkBEFYJAhCliAIx+tsmycIQqogCFHVPxM66/x1qTESlXZeVMTEYKYyw1ZtS7KRkZzdJCMjI9MMbTIS1R3qWhuwXgyMa2T7Z6IohlT/rGnL+duLxtIYlYmSSpfuVNYV+lMY5DoJGRkZmWZoTY/rbYIgWFa3Mo0GfhQE4dOW9hNFcQdwRTymC4KAtZOGcgsXKuLiEKuqpFoJsUpKgZVF/mRkZGQapTUrCStRFIuAm4EfRVHsA4y6iHM+KgjC0Wp3lM1FHKdNWDuaUoIFaLVUnj2Lh4UHGfpytPoqqCq5VNOQkZGRuapojZEwEgTBBbgdWH2R55sPdAFCgHTgk6YGCoLwkCAIBwVBOJidnX2Rp5XkOUrLFRgEIypOxuBh4YEBkVQ5LiEjIyPTJK0xEm8C64GzoigeEATBF4hrz8lEUcwURVEviqIB+B7o28zYBaIohomiGObg4NCe09XD2kmDKEKljTsVMTHnM5xURnLVtYyMjEwTtKbH9Z+iKPYSRXF29e/nRFG8pT0nq16R1HATcLypsR1NjRqstmsIFSfPp8EmqYzk4LWMjIxME7QmcO0rCMIqQRCyq1NaVwiC4NOK/ZYCe4EegiCkCIJwP/ChIAjHBEE4CgwHnrroK2glVo6mAFQ6d6Py1ClsjW0wVapJMTKCMrlWQkZGRqYxWqMC+xvwP6Qnf4BpwO9Av+Z2EkXxjkY2L2zT7DoQtZkKUwsV5RYuGMrK0CYl4W7uSnJxvrySkJGRkWmC1sQkBFEUfxFFUVf9s4RGBP+uBqwcNFKGE0guJ0svqaBOjknIyMjINEprjMRWQRDmCoLgLQiClyAIzwP/CYJgW107cdVg7WRKUTGgUlEZE4OHhScpKiMMpfJKQkZGRqYxWuNumlr9OuuC7TORVhS+HTqjTsTaScOpvRkou/tTcTIGz0ljqRIEskozcL7ck5ORkbm2yU8EjS2YWFzumbSJ1jQdajFIfbVQk+Gk6xZKxfaVuJvPBCC5Ils2EjIyMp2HKMKisWDtBfetAYXycs+o1bQmu0kjCMIrgiAsqP69myAIV2WPiVqhP+du6PPzcStTA5BSVXAZZyUjI3PNU5gCxemQvA/2fn25Z9MmWhOT+BGoAgZW/54CvN1pM+pELB2kNNhyc6lcwyoxDyMEknVll3NaMjIy1zoZR6VXBz/Y8jZknri882kDrTESXURR/BDQAoiiWA4InTqrTkJlrMTcxoRS0QwEAe2p07goTUmm6nJPTUZG5lomPRoEBdz1J6itYPks0F0d953WGIkqQRBMqU57FQShC1DZqbPqRKydNBTmaTH28ZHkOYytSVYC2vLLPTUZGZlrlfRosO8B1p4w6QvIOAbbP7jcs2oVrTES84B1gIcgCL8Cm4EXOnNSnYm1o4aCzDJM/PylWgm1wyVvPqQvKqLi1KlLdj4ZGZnLTHo0uARL//a7AULugl2fQsrByzuvVtAa7aYNSDLh9wJLgTBRFLd28rw6DWsnDZVlOhTde6JLT8cHe4qUSgoLL10r7+wvviRh6jT0JbJEuYzMNU9xphS0rjESAOPeA0s3ye1UdWXHRFuT3bRZFMVcURT/E0VxtSiKOYIgbL4Uk+sMajWcXLoB4JlnAkByfruEbdtF6b59iJWVlO7YccnOKSMjc5moCVrXNRJqK5jyP8g9A5vmXZZptZYmjYQgCOrqimr76ralttU/3oDrJZthB1NTK1FmJmU4OWRKCiPJhfGX5Py6nByqzp4FoHjTVWtrZWRkWkt6tPTqHFR/u+9Q6PcwRH4H57Zd8mm1luZWErOAQ4Bf9WvNzwokwb+rEgt7NQqFQHEJGLm6YJpSBEBySdolOX/ZQckHadKjByU7diBWtS7DYWlkErvP5HTm1GRkZDqD9Giw9QW1ZcP3Rr4Odl3h30egovDSz60VNGkkRFH8orra+llRFH1FUfSp/gkWRfHqqgapg1KpwNLBlIKsMtT+AejOJGKv05NcnnVJzl8WGYmg0eDw2KMYSkoojTzQ4j7pheW88u9xvth06VxiMjIyHUTdoPWFGGvgpgVSzGLt3Es7r1bSmuymDEEQLACqK6//EQShdyfPq1OxdjSlILMcdYA/VQmJ+JaLJFdemp4SZQcOoOndG7PBgxE0Goo3b2pxn6WRyegNIlEpBVTq9K06jyiKFG/a1OqVioyMTCdQng8FiU0bCQD3PjDkaYj+DWIutkN0x9MaI/GqKIrFgiAMBsYCPyH1qr5qsXLUUJglpcEiigRlK0nWdX6mkS4vj8q4M2jCw1Go1ZgPHkzJ5i2IBkOT+1TpDCyNTMLKVEWVzsDx1NYtSUt37CDl0ccoXLmyo6YvI1OLKIrsX3WOrMSiyz2VK5v0RoLWjRHxPDj3glVPQEl258+rDbTGSNQ8ut4AzBdFcQVg3HlT6nysnTTotAb07lKGk2+OiiyxigpdRaeet+yAFI/Q9A0HwGLkCHRZWVScaLpEf/2JDLKLK3l1YgAABxJat+IpXLECgNLIyIuZsoxMoxRmlXPwvwSObEy63FO5sqnJbHJuwUgYGcNN30FlEax+UhIEvEJojZFIFQThO+B2YI0gCCat3O+Kxbo6DbbEYIbSxganHOlyUktSO/W8ZZGRCKammAYGAmA+dCgolc1mOf2yNxFPWw03h7rh62DGwYSWi/70xcUUb94infPglV+sI3P1kXRS6sGSEpOPaLhybmhXHOnRYOkOZnYtj3UKgBGvwKnVEP1758+tlbTmZn87sB4YJ4piAWALPNeZk+psatRgC7PLUQcEYJFVnQZbnNyp5y2LjEQTGoqgUgGgtLZGEx7eZFziVEYRkQl53N3fE4VCINzLloOJ+Rha+KMs3rABsbISy8mT0KWlU5XSucZP5voj6YT0sFJRqiU7ufgyz+YKprmgdWMMeBQ8B8Da5yXl2CuA1lRcl4mi+I8oinHVv6dXV2FftZhZmWBkrKAgswx1gD9CVgVKvcjG0ycY9en2Tski0uXnUxkXV+tqqsFi5EiqzpylKiGhwT4/703ExEjB7WEeAIR521BQpuVsdvPxk8IVKzH28sLu/gcAKVguI9NR6LR6UmPz6dLbEYDkGLn9b6NUlkBOXNuMhEIJN34DBj38OweaiVdeKq5qt1F7ERQCVo6a6jRYf9CL9Mgy8M/RKJLzyvhm2xmyijo2PlFzo9b07Vtvu8WI4QC17qEaiiq0/HsklcnBrlhrpBBQuLfULba5uIQ2NZWyyEgsp0zGpFtXlFZWlB2UjYRMx5EeV4hOa8BvgDN2buaykWiKzOOA2DYjAVJNxdi3IX47HPihU6bWFq5LIwFSXCIvo4wF6dINOCRNj59rKWueGILOIDJ/+9kOPV/ZgYMIanVtPKIGlZsbJgH+FG+uH5f4+1AKZVV6pg/wrt3mZafB3tyk2bhE4Sophc5q8mQEhQLT8LDagPn1xKJd8fyy79LpcV1PJJ7MRWmkwK27DR4BtqSfKURb2brU7OuKmkprl15t37fPfdB1FGx8DXLOdOy82sh1aST0BpEUnZbC7DK+O12O3lhFtwwRrSKHLg7m3Bzqxq/7k8jswNVEWWQkpqEhCMYNE8MsRo6k/MgRdDlSRbUoivyyL5EQD2uC3K1qxwmCQLi3DQcSGzcSoihSuHIlpn36YOzuDoAmLAxtUhLazMwOu5a66LKz0RcUdMqx20thmZYP1p3iw3WnWl1XItN6kk7k4drNCpWJEg9/Gwx6kbS4gss9rSuP9KNg5gAWLm3fVxBg8tfg0AMqL28l9nVnJA4k5DHpq10sP5OFAoHf7u6LeTdPXLMgtTwLvUHPYyO6YTCIzN/WMasJfUEBladPY3aBq6kGi5EjQRQp3iqJ6+4+k8u57FKmD/BqMDbM25bkvHIyChsasIrjJ6g6dw6ryZNrt2nCpRhIZ60mEu+7j7M3TKT82LFOOT5ARmkGy04twyC2zj+7/EgKlToDxRU6tsdeWTnnVzvFeRXkp5fi2VPK1nHtao3SSEHyySvE5VScCXu/gayYyz2T80FroZ092ixd4KFt4NanQ6fVVq4bI5FeWM7jS49w27d7yS+r4r6xUo2EA0rUPbphmaNAr9eRUZaBp52GW3q781tkUqM347ZSdvAgiGLtDftCTHr0QOXmRkl1XOLnvQnYmhkzIajhE0i4tw0gGbsLKVyxAsHYGMtxY2u3qf38UJibd0rwuiohgaozZ9EXFZE4fQbFW7a0vFM7WHpqKW/vf5vfYn5rcawoiiyNTKanqyW2ZsasiL40mlzXC0knpNRXjwApPmZkrMS1mxXJpy6jkRBFOLcd/pgOnwXA+hfhz/tAr718c9JWQHZM2+MRF9JeA9OBXPNGokKr5+stcYz4eDvrTmTw+IiubH5mKBMHeQJIGU49g1DqBJzzz6fBPjqiKwaDyDfbLt4fWHbgAIKJCepejfsmBUHAYtRISvfsISUtl00xmUwN90CtUjYYG+BiicZY2SAuIWq1FK1Zg/nw4Sit6riolEpM+/TuFCNRUi117v3Lz5h06ULKo4+R91vLN/K2EpUVBcCnhz4lNi+22bGHkwqIzSzm7v5e3BDkwuaYTEoqdR0+p+uV5JN5mNuYYOtiVrvN3d+WvLRSSvIvccPKsjzY+z/4Ogx+niwZin4Pw/iPpBt05PeXdj51yToJBt3FG4krgGvaSGw8mcnoz7bz8YbTDO3uwOanh/L0mB5ojI1Qm6sw0RhRkFWOOlhazvlmiLVGwsNWw21h7vwemUxawcW1Ni2NPIBpSAiKRuIRNZiPHIlYVcXWXyQZjbv6eTY6zkipoLenTYMMp5Jdu9Dn5WE1ZXKDfczCw6k6dw5dbu5FXEVDSrZtx9jXF9OQELx+/gnziAgy33yLzI8+alZqpC1oDVpO5J5gou9ErEysmLtzbrOV8UsjkzAzVjIp2JXJIa5UaA1sPJnRIXO53tHrDSTH5OEZYItQ5wnXs3pVcUmynERR6ua2fDZ86g/rXwJTG7jxW3jmFIx9B/o+KAV9t70HJZdGuLMBtUFr2Uhc0RxNKcBUpeTXB/rx7T198LDV1Hvf2qlaw6lHAIJCxDezfkHdI8O7InJxqwl9YSGVp041qI+4EE3v3iisrKjYuoURfk6422iaHBvmbcOpjCKKKs4vpwtXrERpY4P54MENjx0WBnRsXMJQWkrZgQOYR0QAoNBocP/6K6zvmEbewkWkPfsshsqLf7KMzYulUl/JMI9hvDPoHc4UnOHTQ582OrawXMvqo2lMDnHD3MSIPp42uFmbsjJKdjl1BJnxRVRV6GvjETXYuZpjamncuUaisgQOLYbvIuCHkXByBQTfAbN2wgObIOQOUElKCggCjPtA6lu/6Y3Om1NzZByVGgtZN4wrXm10mpEQBGGRIAhZgiAcr7PNVhCEjYIgxFW/2nTW+UG6ya95fAiDuto3+n5Nv2tBpcLEVqBHlkBK8fkqR3cbDbeFebDsQDKp7VxNlB06BKLYZNC6BsHIiPzgfgSnnuCecLdmx4Z722IQ4UhSASD1zC7ZsgXLCRMazZ5S9+yJoNF0qERH6f79iFot5sOG1rsG59dew/G5Zylas5akmfdfdOZTjasp2CGYgW4DuSfgHpaeWsqOlIZd/VZEpVKhNXBnX2kVplAITAx2YWdcDnmlshruxZJ0IhdBIeDuV//PVlAIePjZkHIqr+MlOooz4L9npVXDqiekIrMbPpFWDZM+bzq91L4rDJgDUUsuTx/p9GhJsO8KiClcLJ25klgMjLtg21xgsyiK3YDN1b93GmqVEiNl05do7WRKSX4l2io9amcTPDIMJBfVFyx7ZHhXAP63tX2ribL9kQjGxk3GI+qyyqIbFtpyehckNDsuxMMapUKojUsUrV+PWFXVqKsJQFCp0ISEdGhcomTbdhQaDZre9VXjBUHA7v77cf3kYyqOHiXhjjupSmm/vEBUdhQuZi44mzkD8ETvJ+hu051Xd79KTvn5JkyiKPLb/iQC3SzrpQ1PCXZDZxBZcyy93XOQkUg6kYezryUmGlWD9zwCbCkv1pKT2sFqymueg8M/QY/xMHMDzN4N4Q803sDnQiKeA3NnWPPspa1c1msh4/g14WqCTjQSoijuAC5cf05Bkhqn+vXGzjp/a7CqbmVamFWOiZsVpuUipalJiHUUGN2sTZka7sGfB5NJyW97w/KyA9XxCBOTZscdTy3kL8EVvcqY0hayhMxMjOjpalmb4VS0YiXGPj6og4Ka3EcTHkbl6dMdUtMgiiIlO3ZgNmhgoysXAKsbbsBz0UJ0eXkkTJ1G+bHjjY5riejsaEIcQmp/N1Ga8GHEh5RqS3l196u1/1dRyQWcyijmjr71Yzn+LhZ0dTSXXU4XSVlRFdlJxXgGNC5U5+FXHZfoyFRYvU4KRgdPg5sXgGe/Vj2ZG8rKMFRVgYkFjHkL0o7AkV86bl4tkXMa9JXgElK7SRRFdPn5iLqrL4niUscknERRTAdJAwpwvMTnr0dNv+uCzDLUXtJUnFJKyb+gAdEjw7siILR5NaEvKqIiJqbJ1Ne6/LI3EcHUFLOBAynevLmeoWqMMC9bopILKE1MpuzgQaymTK4XTLwQTXg4iCJlhw+36Roao/J0HLqMDEnFthk04eF4//YrCrWaxOnTKd6ytU3nySjNIKM0g2DH+k9kXay78GzYs+xK3cVvp6RsqqWRSWiMlUwOrt9+XRAEpgS7EpmQd9EJCNczNfEGz562jb5vZm2CratZx8Yl0qOlQjKf5r9nNYg6Hbk/Lub0oMGcDgsn4a67ydqQTHFVMPo1b0gNgC4BhvgDlOeoyD+QScbb75A4417iBg4ibsBA0ufNuyRz6Eiu2MC1IAgPCYJwUBCEg9nZnVMQZVUtGV6YXYba2w1REPHJFBuowbpYmTKtrwd/HkwhOa/1q4maeMSFek0XUlimZUV0KjeGuGEzZjS69HQqY5ovBgr3tqFCa+Dsb38CYDlxUrPj1b16IRgbU9aKdqktUbJjOwBmQyJaHGvSpQvevy/FxNeXlEcfJX/p0lafJyo7CqDeSqKGqT2mMtR9KJ8e/JQjGSdZFZ3O5GBXLNQNXSGTqg3HKrlmot0knchFba7CwcOiyTG1Eh1VHVTlHr9Nem2FkaiIjSVh2h1kffABZv36YXP33aDTkfvTT6T8k83pX004O24M6a+9TuGKFVQlJ7f4INYSolZLZVwcRWvWkPX55yTPeYQzo0YTe+8HJGxyIOOj/1Hwzz8YyssxHzkCsyFDKFz+71Wnymx0ic+XKQiCiyiK6YIguABN5qeJorgAWAAQFhbWKYL1xmojzKyMKcgsQ+HpiMJSj0+GguTiZIId6j+9zhnWld8PJPP1ljN8cGvrtFjKIg8gqFSYBtcfb9AbqKrQozaTbmh/HkqmQmvgngFemKvdQaGgeNNm1AEBTR67j7cNiCLadWuwCg/H2L35YLfC2BjT4OAOiUuUbN+Oib8/KqfWLQSNHBzw+uVnUp9+how33qRq5XtYdDFBb2SHQWGFQTBHL2ow6FTodUoMlQYMJaWYp8fwcYEB48WPcc7KCq9ffkZpId2kBEHgjYFvcMvKW3h66/OU6x5o4GqqwdvejGAPa1ZGpzFraJeLvv7rDdEgnk99VZxfreqLijBUVGBkb4+gUODhb0v0pmTS4woaZEC1i3PbwCkQzB2aHGKorCTnm/nkLlyI0soKt88+xWLcuNpVtaGigopjxyj77W3Koo5R9N9qCv74A5C+l6Z9+qDp3Rt1YCDodeiLSzCUFKMvLsZQ++8SDMXF6EuKMZSUVv+7BH1ODqK2OsNQqcTY2xt1UCDW3iWY2Bth8shvqNzcEBTSs7g2I4Mzo8eQt2gRzq+9evGfzyXiUhuJlcAM4P3q1xWX+PwNsHbSUJBZDn52mFlX4Z1pxPFG+ko4W6m5s68nv+xL5JHhXfG0azpFtYayAwcwDQ5GoVbX275/5Tli9qQz471BCAqBJfsS6eNlQ09XKeBq2juU4s2bcXj8sSaP7WihZqiYjSYzFavHHm7VtWrCw8n59lv0JSUozc1btc+F6AsLKT8Shd2DD7Rpv5oU2YyHJpK3J5G8I1rggiCnIKJUGVCoRBRqI4rNFFRZK9BYGFF06BS5Cxbg+MwztcPtTO14e9DbzN48GxefzfRyn9Lk+ScHu/LW6pOcySqhq2P7rv16JTu5mPJibb0bf2VcHAlTp2EoKwOVCpWzMwoXdxSaO4n9dRMWwQIqVxdULtKPwsysmTM0grYckvZLNQ9NUHbgAOmvvkZVQgJWN92E4/PPYWRTP/NKoVajCQ9H0/NH+KoPor0jlYM+o/zIEcoOHabs8CGK161r8hyCSoXCwgKFhTlKcwsUFhYYe3uhMDPHyMEek27dMOneHWNfX6kOymCA9z0g5E7w8Kh3LJWzM1ZTJlPw11/Yz34YI4emjd+VRKcZCUEQlgLDAHtBEFKA15GMwx+CINwPJAG3ddb5W4uVk4ZzR7LB1BaNjRb7RIiLPwSNJCbMHtaFpZFJfLUljo9uaz5zQV9cTMXJk9g/XP8GrtcbiNmTTnmxloyzhZwRdCTklvHU6O61YyxGjiLrgw+oSkmpFeprjMmZUVQpVZiPGdOqa9WEh8E3BsoPH66tb6hHyiE4uRxGvQmKxj2RpXv2gF6PeUTr/MR1EUrScfY+hFXwOAx9HkZpYS79AZooUYrFCBWZCEWpUJhCRUEitxTtYUaFwJSsKMgxJW/xYmzuuAOV6/m4g4UYSFXuIErstrEzdScR7o27wCb1cuHt/06yMjqNp+t81jUYqqrI/vwLrG6cgrp7w/evZ2oaDHn4S/EIQ1kZKU89hWBqitPTT6PLzESbno42PR3r0kRSS41x/+fdesdQWFlJBsPdDbP+AzAfGoHxBTfR+ifdJwV/G3E16YuLyfr4EwqWLUPl7o7Hwh8wHzSo+YvQ2MLI1xBWP4laexz1HXdgc8cdAGjT0qiIjUVhYiJ9H83NUVpYVH83m084aUDeOagqaTKzyf6BByj8Zzl5P/9c74HnSqbTjIQoinc08dbIzjpne7B20FBRoqVCsEVtIy0ds6MjKRxfiJWJVb2xTpZq7uznyc97pdWEt33TT0flhw+DwdCgiC7peC7lxdJ5kmLy+KUwD3tzY8YFOteOsRg5gqwPPqBk82ZsZ8xo9PhiVRXdT+xjt3MA5pUKWuNEMQ0JAZWqXhFcPTa/IWnYO/hD6F2NHqNk23aUVla1LrQNPxwnN60Ur0A7vIPscPa1QtFU2vH2DxAE0Nz7Hlg1ZvzOy6ifzDyMbt0eQiZ8Ca6DcPx0OMWLc8j6+EPcPv28dtzSyCQUBTfQ1TeLV3e/yt+T/8betGFdjKOlmgG+dqyMSuWpUd0aBPlzf/iBvEWLKNmxHZ9//mm2Ov5Sk15YjqOFGqXi8uTcJ53MxcHTAo2l9JlkvP0OVWfP4bnwB8wGDqw3Nm99InuXn8V15XpUJTlo09LRpqehS09Hm5ZOZexpSjZtJvNtMPb1xXzoUMyHDkXTp3dtx0ZA+h4qjMCr/vGLN28m44030eXkYHvffTg89igKTcuregB6T4dDP8KGV6H7ODCRVpQqV9d6Dx4XRXqU9NqEkTD29sZy3Fjyf1uK3YMPorRsRSrvZeaKDVxfKqydpOB1Qbklamvp5u2VrmdTYuMtRWcP7YKRQuCrLc1nOpVGRlbHI+p/WU7tzcDUQoWzryVnj+aw+VQW08I9MTE6r9Nk7OmJSbduzfa+Ltm1C6OSIjZ79GlV32sARXV/7UYrr3POSH+YSmPJWFQ2bEkpGgyU7NyJ2ZAhCEoluaklxB3MQq81EL0pmeWfHGHhs7tY//1xTu1Lp7y4TgFb7lmI+g3C7m/CQNSnJmjdy6EXKFWo7vkW2x7lFK1ZT/mJEwAUV2hZGZ3GpF6efDRUSot9bfdrTQYkp4S4kpBbxrHU+tLLVUlJ5H77HSZ+flSdOUvON9+0OL9LRVpBOUM/2sYH605dlvNXlmnJOFdUm9VUuGIFhf/8g93DsxoYCDi/2sjIU6Hp3RuriTdg/+CDOL/2Gh7fzqfrxg10WbcWpxfnonJ2Im/JEpLuvZfTAwaS8vgTFPz9D7rsbCke4R5eeyPXZWeT8sSTpDzyKEobG7yX/Y7TC8+33kCA1PVtwsdQnAY7Pz5/jTo9fxxM7hhZ+fRo6W/Iwa/JIXYPPYShtJT8TtA56wxkI1HT77rEFKWJiLGbPSNjlKw/u7bR8Y6Wau7u78XyIynE55Q2edyyyAOoe/VCYWpau62iREvCsRy693XGK9CewrRSNAa4sxGdJvNRIyk7dAhdfuNpe4X/rkBpa0uCT1CzneouRBMWRvnx45IvuS6HfpSe3G5bDCWZsOuzBvtWnDiBPi8P86HSKuTY9lSURgpueaEP938yhHEPBdIl1IG0uAI2L45h0fO7+PP9gxz4L56sFd8iKtUw5OlWzTMqKwovSy9s1dUpl86B2D14P0pjPVnz5iKKIiuj0yir0nNHX0+62nTlmbBn2Jm6szYt9kLG9XRBpRRYUadmQhRFMt56G8HICI/vvsXqppvI/f6HWkN0ufl5byJVOgM/7o4nKbftdToXS8qpfESDiGdPOyrPnSP9jTcxDeuDwyOPNDre3t0cUwsVSc2kwhp7e2M7YwaeixbRfe9e3L/+Csvx4yiPiiL95ZeJGxJB/OJksk9YU370KAV//8PZiZMo2boVhyefxOevPzFtpiaoWTz6SnIee76WHlyAX/cl8fxfR/lmawe0BkiPBscAUDbMsqtB7eeH2dAI8n76ueHf4RXIdW8kLO1NEQQoKJQ8bw5TeuOcqcVy3b56Fb11eXhoF4yNFHy1pfFe2PqSEipOnmzgajp9IBODXsRvgAtO3SVX1kRHW1ytTRscw2LkKDAYKNm6reHxCwsp2boVyxtuINTHvlHZ8KbQ9A0HnY7yqKjzG7XlEPUr+E8Cvxsg6Hbpjyi/fme3km3bQRAwGzyYynIdsfsz6BbmiKm5McamRnTp7ciI6f7c+/4gbnsxjL4TfRAEiFwdz5+R41mcs5At/+Ry9kgWBn3TFbCiKBKdHd0gw0w5ei72AywoO3aGko1r+D0yGT9nC0I8rAGY1mMaEe4RfHrwU07nn25wXCuNimE9HFl9NA19tXxE8YaNlO7cicMTj6NycsJp7gsY2dqS/tLLiFWXV8qjrErH0sgk+vvaolQIfLi+dasJURQpyu2YmpCkE7kYq5U4uBiT+tTTKExMcPvkEwSjxj3VkmyHLckx+a1KMVWam2ExahQub71F1+3b8Fn+Dw53jkUQIGfNUc5Ou4vEee9h0q0rPv/+i/3Ds+q7pdrDqDfASA3r5qI3iCzekwDA/G1nm33waxFRlDSbWlFpbT9rFvr8fAr++qv957tEXPdGQmmkwMLelIIcHSiNsfCzROjTi9t26NlyYlWj+zhYmHBPfy/+PZLKueyGMgTlhw+DXo/ZBUV0p/amY+9hjr27OfvzSygTRIJV6gb7A6h7BmDk7EzxloYup6J16xG1WqymTCHc25bE3LJW9+Q2De0NCkV9HacT/0qFRmEzpd9HzQNBAZter7dvyY4dmPbqhZGNDbH7MtBV6gkc1tB1JCgEHL0sCb/Bh1tfCGNm/yWMsvsOVz8nzkVls+6742z44QT6JgxFSnEKeRV5DYwERsbYvPQdxhY60t96jRPJedzZz7M2viAIAm8OfBMLYwte2PEClfqGAoOTg13JLKokMj4PfUkpme++i4mfHzZ3STEYpZUVzm/MozI2lpzvL6PUNPD34VQKy7W81+U4T/c1Y/XRdI4ktbxq3PfvWX55eW9t74f2IooiSSfzcPe3JefDD6mMjcX1g/dROTk1u5+Hvy3lRVXkprbthisIAmp/f+z7KPG+oYKuO7YSe9OnHBj+Pk7fLMTE1+diLuc8Fk4wbC7EbSB68+8k5ZXxxuSemBgpeG3F8fbXTxQmS39HrTASmt690YSFkbvox8v+MNIS172RgGqhv6wy0NghlOfh/eobmFdA+Q8/N7nPrKFdMDFSNhqbKDtwAFQqKVBcTW5aCdlJxfj1lxoJ/RKZRK6ZQGVKaaNfSkEQsBgxgtJduzGU138qLFy5EuMuXVD3DCDcR3LHHExsnctJaW6GOiCgflHdwUVg1w28h0i/W7nB4CfhxHJI3AuALieHimPHMB82FFEUOb49BUcvC5y8Wwi8pRzCNP5veozpw9iHezPzo8EMvKUrZ49ks+H7E+h1DQ1FbRGdY0jDz8UrDIdpw9Bnl/FE6nKmhNSvD7EztePtwW9zpuAM7+1/r8FnO8rfCY2xkpXRqeT873/oMjNxfv21ek/GFiNGYDlxIjnffkdFbMMVyaXAYBD5cXc8411K8Nn5LPdnv4+9mYp318Q0exNLic3n8IYkBAG2/34anbb9fvb89DJK8itxNKRRsGwZdg/c33jCwwXUxCXaLdFxbht4DSQ5RUFGrpLKKoH9qxPad6ym6DcL7Hvguu8NfKyU3NXPk2fH9mBnXA7/tVfnq1YePKRVw+1mzUKXkUHhqsYfRq8UZCMBWDuaUpBVjqi2hbJ81H5+ZI4IpPeODFJPNl58Zm9uwvQBXqyISuXsBauJ0shITIOC6gXVYvdmoFAI2Phbs+ZYOtHJBXTpZU9ZURW5TYiiWYwaiVhRIaWdVlOVnEz5oUNYTZZkOHq6WqJWKdrmcgoPp/zoUUnKO+MYpERKq4i6GT8DHwdLN1g3V3J77dwFgFlEBKmx+eRnlBHUyCqiAVveAo0d9J8NgEKpIHS0J0OmduNcVDbrvz/ewFBEZUVhrjKni1XjOVuKWZ8h2MO4E3uxKG/4tDzYbTAPBD3A33F/815kfUNhaqxkTIATx3ccIu/nn7G+7TY0oaENjuH08ksoLS1Jf+mly6K3s/10NueyS5njdg4AZdJuvux5mgMJ+Ww42Xi/8ooSLZt+PIm1o4bxDwdRlF3O4XWJjY5tDUknpc/W6OePMA0NxeGJJ1q1n7mNCTYuZu3rVleYArln0HsOY/ffcdi6mhE41I0TO1PJTmqYTNFulCri+76Gsz6dD912YKRUcHd/LwLdLHlz1UmK68jwt5r0aBCU4NR0EWxdzAYPQh0QQO6C7xH1V24vdtlIIAWvdZV6ylQeUC59sbs8+wpVRpD47ptN7vdQhC9qlZIvN0uxiZJKHbHxmZQfO0G8W3c+Xh/L08uimPrtHvZsSSJOqSPiyx3M+fUw1hoVk8b4ApDUxBOXJjwchYVFvSynwpUrQRCwmjQRAJVSQaiHDQfbErwOD0esqqLi6FFpFWGklkTU6mKskdxO6VEQvZSSHdtROtij9vfn2PZU1GYquoa1UHGdsAvObYXBT0lia3XoNdyDiGndiY/OYd2C+oYiOjuaXg69UCoaduYDWH0yj//1vAlDhUDua40X9T0e+jgzAmaw9NRS3tn/Tj1DMaWXCzMi/0BvZo7D0081ur+RjQ3Or75KxYkT5C76sdExqQXl/LIvsTa+0ZEs2h2Ps6WagNJ95KV5U6kJYcCZzwhxgPfXnkJ7gatOFEW2/nqK8uIqxtzfE59gB7qFO3FofSIFme0LjiYey8Fcl4faUILbJx+3KRbg4W9DWlxB21cy5yTJl+isMIpyKhh8azf6T/HF1FzFzmWnL1pKoy5fJbizQexLWPKPUJiCUiHwzo1BZJdU8unGdqwg06PBocf5vhYtIAgCdg89RFViIsUbNrT9fJcI2UhQR+hP9IQy6enJyyeY3aOdsTl4hpLduxvdz87chOkDvFkZnUaveesJfH09L775K4JBz5e5lszffpb98XlYF+kx1YNrqD1v3RjIonvD2PBUBM7O5pIoWhNGQlCpMB82jJKtWxF1OkRRpHDlSjR9+9bL6w73tuFEWmGr23Rq+vQGQaB07244+gcE3iIVG11I4K3gFoa48Q1Kd+3CPCKC0sIq4qNz8B/kglEj7VVrEUXY8jZYuEjSzo0QNMydiGndSThabSi0BkqqSogriGsYj6jD0sgkTvuNwyLEjdytcWgPNCzcFwSBZ8Ke4b6e97Esdhnv7H8HgyjdWHud2EXPvAS2D5vaoEK3LpbjxmIxdiw5X31F5dn6mS85JZXc9f0+Xv33OH8far8UemPEZhSzMy6HmX0dyF0RReaOKhL/qaAyvYivHVcRn1PK0sj6kvYxe9I5dySbfpN9cfCUDPKgW7tiZKRgRzturtpKPWmxedikH8H1vXfbXEfg4W+LXmsg/Uxhy4PrEr+dMmMfDu6swDvIDo8AW0w0Kvrf2IX0s4Wcjmx8FdVWsooqWBWdxonAFxBEA2x4BYBgD2vu6ufJT3sSOJHWxrmnty5oXReL0aMw9vEh57sFHWoAOxLZSABWNbUSOhepb27N9rvvIsMaUt99u0mXw+yhXbg51J0bQ92YO96PZ5xKEJVKvn5nBrFvjWP33BHcbGOD2kzFU9ODuae/FyP8nHC0kALWngG2pJ0pQFvZ+BOXxcgR6AsKKD9yhIroaLSJSVhNrt83Iqy6CVFUdROillBaWWHSowfl29dJ1aE1AesLUShg3PuUJ+RjKC7BPGIoJ3amIYoigRHNa0VxZjMk7YWIZ5t9sgoa5s7QO3uQcDSHtQuOEZ1xFINoaFTUDyRJ9eiUQu7o64Hju98gigqy33lR6lx2AYIg8FSfp5gZOJNlsct4e9/baPPyyP3kE7K8/fifcQ/Kqpo3rM6vvoLCzEzKdqp2CZRW6pi5+AAZRRV0dTTnw/Wx7XNPNMGPu+NRqxRMjl5G7kkNlkPDEYzVJO1wxe7QX9zlns3nm+JqOxMWZJaxc9lp3HrYEDr6fDq1mZUJ/ab4knwyjzOH2tbG88yyLRhQ4N3HDYsRI9p8DW7dbVAohbbFJUQRzm1jv342+ioDg27tVvuW/wAXHL0s2PP3GarKL979t2RfIjqDyE3DB8Dgp6X4W4LkUn1ujB+2Zsa88u9xDK1dJRZnQElGm42EoFRi9+CDVJ46RemOho20rgRkIwFY2KhRGikoqHSQ3E3VDUrGdLuBJSMUGM4mNJmqZqVR8cntwbw5JZCHh3bBLSEGTVAQbi62GCkVVJRqiY/OoVu4E0qjhh+3R4AtBp1I6unG3UVmg4cgqFQUb9pMwYoVCGo1FmPry3CEelqjEGhjXCKMsthERIdAcOvT9ECPcEp0ISCIqP3cObErDe9AOyztm1lSi6IUi7D2hNDpLc4lMMKNYXf1IPFYLlFLcjAyqAhyaDwP/vcDSZgYKbgp1B1j3+7YThlNYayBiiXPNjpeEASe7P0kDwQ9wJ+n/2T93HvQFxejee5FynQiG5vw79dgZG+P08svUx4dTd7Pv1ClM/DwkkOcSCvif3f25uPbgskpqeSbbR2QYw/kllTyz5FUHrHII3/hcszcdLh+8S1eP/+EYGZF8lZ7ns+eT0FpBd9uO4teZ2DDwhMoVQpG3RtQT4APIHCoO/Ye5uz6M67VN9eqlBTi/t2HQtTi/0ITDxAtoDJR4tLFqm1xiexYsvNNOZnalaDh7rU1TCBlzA2Z1p2yoioOrElo15xqqNDqWbI/iZF+TpJqwqDHwdJdWk0YDFhpVLw0wZ8jSQUsO9hQx61R0o9Kr+1oNGQ1aSJGri7kfLegdltxhZa1x9J5/q/odvWx6UhkI4H0BbRyNKWg3BJEg6RhD7iYu1A1KJRzvhqyv/gSfVFRs8cxlJVRfvx4vf4RZw5lodcZ8Bvg3Og+rl2tUaoUTerwK83N0AwcQPHGjRSvWYvFyJENxPks1Cr8XSw5mNgGI+FjjaiDctvx9QLWVY1kG5WkqdA46khY+SflRVWNpr3WI2aVFMsY9iIYtU7eoucQN4bf7QdJ5tx49jFMhYaVtGVVOv49ksYNvVywqu6OZvf8GyjUxmQtWQ+JexrsA5KheDz0cZ41mUSXHeeIGd2V0GF9cLFSt6oZkeXEGzAfMYLszz/nnQXr2RmXw3s3BzHS34kQD2tuDnVj4c74NsnIN8Vv+5Nwzktj1LLPMLEWcZsehqDWYOztjdcvvyCYW5O5PJ8vNRtYuCueLX+dJjupmBF3+2Nu01BnSKEQGHanH2VFVUSuim/6xHotVJUhVlWR+tTT5Fp2x62rFSqzxlO0W4NHgC05ySWUFbUuxVM8u43dxTNRa5SETfBu8L6zjxX+A104ujmZ/Iz21zOsiEolr7SKmYOrz6EyhRGvSM2JTvwDwE2hbvTzseX9tafILZFSqbVVelJi8zm4Jp5VX0ax4Yc66bI1mU3ObS/yE1Qq7GbOpPzwYZYtXMmd3++j91sbmf3rYdYdz+Bc9kXUbnQAspGoxtpRQ2FJ9dNxHZfTON/xzB9Wib6ggJxv5jd7jLIjR0Cnq9c/4tTedGxdzWr9xBdiZKzErZt1s8tyixEj0aaloS8sbLJFabi3LUeSChoENJtCoz8kzbngvE/+g3WnGPj+ZrKLz9cXaNPSqDwTj/mg/hw/bY+VjYCnf+ONZwCpB/HWd6SU2qDbWzWXGvwGObO3+z/Y5XiyZv4xdBf0JVgdnU5JpY676lSoG9nYYD97DqXpakq/fhiqmrhR6/UMWXqSCltz3u15hjf2zWNiL2e2n84mv4X+14Ig4Pz661QqjOj561c8N7obt4d5SOeK38nz4/xQKgTeW9t8D5CWqNIZ+HfrMT48uBiliQqPQZkog8bXvm/s5YXXb8sQ1CZ0+2sjw/KSiN2WRsAgF3xDm1YUdfKxpOcQN45uTSY7uZEMocpi+HECvO9J1gPDyI9Lo0ztgFefFlyKLVCbCtvKRkTxBxNIrQqi7+SutTL6F9L/xi4YmSjZ+Udcu3z4oiiycFc8fs4WDPCtI2fea6p0g9/0BmgrEASBV0f1wLnYwHdfHuLP9w/yw5M7WPHZEfavjCcvo5S4g1kkHqvOrkuPAtsuDRI0mqNCq2dbbBavrzjObUkO5JuYU/nTInJLqrh/sC9/zBrA4VdHE9H98qrFykaiGmsnUwoLlRhERT0jMdZ7LMnOStKG+5O3ZAmV8U0/jZVFHgClEk1vKaUyP6OUzPgievR3brZrnEeALfkZZRTnNV4QZzFiOAgCSnv7RvVyAMK8bSir0hOT3vxqR5poHkYJqzF2MqfsiPQEtOdsDvO3nSWnpIrPN53P7CjZsROAynHPkK71J1CzDoFm/jiP/QXZp2D4S6Bsm37kuYJzRNttx3ZsBckxeayZf7SeofgtMonuTub09qwfbLaZcR8qJzsyd5Yhbn670WPnLVlCZWwsXea9w8zwOfx75l/SVT+jM+hZezyjxbn9dLqEr/wmEpQbzx3pkdLGdS/ATxNxLjvN7GFdWHMsg/3n2l/A9t+Bczy6+VssK0vwmDMMlZkeuo6uN8bYywuvH75Fb6ImvNyBEqqwHdx8cRtA/ym+qM1VbP8tFrGun11bDkvvgNRDFKtGkheZT7mflHrsdWgmrJ0LZ7eArmFhYks4eFigNlOR0gojoa+oYndsMDbmRfQc0nSQXGNpTN+JPiSfzCM+unFFhObYfSaX05kl3D/Yp97fpCgIFIS9xcn0bmz+/D+WvLaX7R9FMbnEGLOkcsp0ekLGeHLDI724/5Mh3P3WACzs1Bz4L14yVq0MWqcWlLNkXyL3Lz5AyJsbuPfHAyw7mIy3qy1lk24lPCuWf8fYMXe8H319JJf15ebyz+AKwcpRg8EgUKx3qE2DBbA3tSfMKYwf+pehMDEh66OPmzxG2YEDqAN71mrnx+7LQBCgR7/GXU01eAQ0X3xk5OCA9dTbsX/44SblEMK8pGO0Sscp6jfQV6LpN4DyQ4cpKinnuT+P4m2nYWqYB78fSOZMlvTEWbJjByo3N2KT1BgZifhpf4Gjvzd+XL0Wtr0LTkEQcGPL87iA6GzJYA0c0ZOR0/1JPpXPf98cRVul52RaEVHJBdzR17OBwVWYmODw3ItUFqgo/P1HSK5f26LNzCTny68wGxqBxejRzAmZw5zgOWxPX4O9z7+siG7e7/zvkVTe/i8G4xsmohk8mKxPP6Nq/2o4XF1seewPHhzii6uVmjdXn2xXSqxBr6fqrdfpnp+C+ycfYVp1BJx7gaVLg7GqoIEkjHuBKpU5g6K/5udfN7T4VK02UzHwlq5kxhdxcne1i01XBcvugYRdaId8QNq/iZgE+FPQbxaW5lqsnK2kFOlfboIPfGDpnXBoMRS1rsOfoBBw97chKSavxflFrzxAkc6JwSMUTasIVxM4zA1bVzN2/RnXYLXZEot2x2NvblzbrRAg4VgOi+fu5tcfRLYWPUpCvBE2DioG3NyFG54K4S8vgd/MKgmb5IN3kD1qMxVKpYI+47zISiwm+UgiFCY1ayROphVxy/w9DHp/C6/8e5zTWcVMDfPgx/vCiXptDAvvDWf4C3NQmJuTu+DyVvpfiGwkqqkJkhXoXWvTYGsY5zOO42IKhuk3U7JlS73ithoM5eWUHzuGWbWryWAQid2fgUeAHWZWzWvS27qYYWZtUlu81Bgu8+Zhe3fj8t0gNUXysDVtWRFWFKU/fI9+aIaOxVBayvyF60gvLOeT20N4YbwfGpWS99eewlBVRenevRgPGc7pyEy69XVB7eEnLckbySbiyBLIT5D8u030o2iOqOworE2s8bL0wm+ACyNn+JMSm89//zvK7/sSqwPWjbtALCeMR90zgOzj1hj+mgPa86uyzPfeR9TrcX7llVoDMztkNo+EPEKlOpLoiu9ILWjc77vjdDbP/hlNf19bPp0aiutbbyIIAukvv4ho4Qq+w+DY35gawQvj/TiRVtSulNij896j17nDpN3xIJaD+kDyfujWeJ+QmD3pxGc7EW69FiftWaYt+4Bd/+1s8Rw9+jnj2s2avcvPUl5QBn/fT+WhrWTkTeTM8wvQa7U4f/QJKQlaPHt7I9zzF7yQAHcsk+poMo7CqifgU3+YPxg2vwmlza+cPPxtKSusIi+9GTHMoioO7ijDy+QgnkNb6AsBKJUKhkztTnFuBYc3JLU4voaz2SVsOZXF3f29UFenb5/Ymcqab46isTRm+N1+3PmYAzMd7+WGbn/Te4wX3j1seW1KT2Izi1m0q74Xwa+/C+Y2Jhz87xyiSKNGokKr58N1p5j09S4Sc0t5cbwfm56OYMdzw3ljSiDDezjWzkVpYYHNXXdRvGEDlefOtfq6OhvZSFRTWyuhc63nbgIY5TkKI8GIjX2NUbm7SzedC1Jiy6OiQKutDVqnxuZTkl/ZZMC6LoIg4BlgS8qp/GaF71oi3MuWAwktCKvFb4e8sxB2P5owaa4ZO/fy8NAu9PGywdbMmNnDu7ApJotDKzYjlpeT7jIQXZWBoGEeMO4DKdVv9+f1j6utgB0fSfLO3ce2a/5RWVGEOITU3sj9+rsw6t4A0k7no92WyQ09nbHWNB4IFxQKnObORVcKeXvSYPsHAJTs3EXxunXYPzyrQZObh4Mf5u7us1BZHeGJzc+jM9T/Pz2aUsDDSw7R1dGcBdPDUKuUqFxccLw1nLIUHQXKm6H3DEl6OmEXk4NdCfW05sP1sY3WrOi0eo5sTGLfirOSDEw1+X/+icmfv7Kp6yAGv/iY5N4RDY1+jgWZZez8Iw63HtaEPXADPsMzMTIGzUtPUhIV3eznKwgCEXd0R1uhZ/sbi0j8ejfn1jqSuzmabdbdeKzvLJ74JwVdpb5WGhxjDfQYBxM/hSePwey9kkCe2hJ2fQ6rHm/2nK2R6Ni/6hx6PQzy2Q1mrWt76t7Dhq59HDm8PpGinNaJGS7enYCxUsFd/bwQDSJ7/z3Ltl9j8expx03P9CZgsCs2PYMQet8Nkd9LDYSA0QFOjPJ34vNNcaQVnD+XUqWg91gv0lMhtSqwgZHYdy6X8V/s5JttZ7k51I1NTw9l1tAudHW0aNL9bDv9HgQTE3J/WNiqa7oUyEaiGlMLFcZqJYV613ruJgAbtQ39XPuxJm0TDs89S2VcHAV//V1vTGlkJCiVmPbuDcCpfekYmxrhE9ywAU5jeATYUlmmIyux/dIDYd625JRUktCcpPTBRWBqCwFTKDa3JsPCgYElSTw56nw3tpmDfHC1UnPkz//ARE1cignOvpZS8N0jHIJugz1fQUGdp7hDP0JRKox4tb68RyspqCggoSiBYMf6f2g9+jljMsgB9yoFA4qbKd5DqiQ3HzmS3NM26DZ/iSFhPxlvvyVJU99/f6P7vDDgUWwqpxBbsoOXdr1UaygSckq578cD2GiM+WlmXyzV1YHUojSsDSvR+JiR9ct6tJYhYGwBx/5AEARemxggpcRuPa/pJYoi56KyWfrGfvb8fYbD6xL59bV9rPwyipO/7yRt3lscdOxB5ZynMDU2gtMbwNSmQWqyXmdg46ITKJWClO7afRSq8In4j0qn1MiYhPtmUh7dtKGoSklFv/Q7PFM3cbY8gHST3vwTdiN3jnmZpDlzmTFjDMqsKvSIvHXgHMcv6LuBIEiSE4OfhPvWQMRzcGr1+fTPRrCwVWPjrGkyeJ2TUkzMrjSCNOuw8Q9sdExTDLylK4IAu/9uvrcLQEFZFX8dSmFKiCu2ahUbfzzJ4XWJ9BziyoTZQRir67hxh78sSX1veqN20+uTAhAReWNVfQl5/0EuaIzLOFgxvbYgtbBcy4v/HGPagn3oDSJL7u/HR7cFN/mAUxcjOzusb7uNwpUr0aa1zq3X2chGohpBEKR+1/hIqZSG+r7O8d7jSS1JJTHUGU14ONlffFEvJbbswAHUAQEozc2pKtdx7nA23cIcm69KroOHny0ITUt0tIZwbymg22S9RHEGnPoPQu9CNDLh5eXHOGrnQ2BuPKo63wS1SsmzY3vgczaa1KBxFGZXEDi0TtrrqHmAABurVWKrSmHnJ+ATAb5tb2sKcDRHutFcWGmdnFfGp6dTSXE0IutwDrH7mw8yOz7zDAYd5MQ6kPvqA2gTk3B+/bVmO81N959JZdY41savZcHRBWQVVzB9USQGUeTn+/viZFknDXTdiwiiDpePvkIURdJee4sqx1FwciVoKwj1tOGmUDd+2CWlxOallbLyiyjWfnsMI2MlU54MYcZ7g+g7yYe85EK2btOyu/9bbA55kFuD3KUanTMboesoqUlOHSJXx5OVWMzwe/wwt6me07j3MbFSYj5eTY7SlMT7H6gnAy/q9RRv3UrSrFmcHT2a3B9+IKD0T1RCMeu6z2Jz8Bi+fXQ0793ci+kDvImwMEfpqOZQaiETv9rFI78dblTpGJD0uEysYNv7zf6fuPvbkna6AL22oZTIrj/jMDYRCTNbCr7Dmz3OhVjYqukzzptzR7JbLNr7/UAy5Vo9d/f2YOWXUcQdyKT/jb4MvbNHwxiIhbOkXXbyX0iWkhQ8bDU8PrIb609ksuXU+doaI5WS3rYbSS3vRtqZAtYdz2D0p9tZdiCJhyJ8Wf9kBIO7te5BsQa7++4FaFIO5lIjG4k6WDlqKFB0kyqFd35a770RniNQKVSsS1yP04tzpZTY+d8CYKiooCL6aG3/iDOHs9BpDfgNaBh0bAq1uQpHL0uSm4lLtEQXB3OsNaqm4xKHfwGDDvrcx4qoNNYez8Bj2CAoLqIyrn5vjAnWWtxLc4g2DUVtrqJr7zo6TVbuUgHSiX+kXsT7v4XSbBjxWrvnHpUVhVJQEmh//mnSYBB59s9oBEFg9uN9cO1mzbYlp8hJaeKmBZj4+mAz9XbyTynJPaTFsqcVZv36NjkeYGIvV7R5w/A1HcTCYwu5Z/FasosrWXRvOF0c6tSknNkk3TiGPItx4ACcXniBsn37OPvxfs78rSZj7iOU7N7NcyN8MBUFfvz6ML+/HUl2UjFDpnZn6svhuPvZYmZtQmg/CwYefpteib+RpDYmrMqUNe8dZu0Xu0jKd0fsWt/VlBqbz+H1iQQMcqFLaJ3/C0tXhOEv0Vt1hFWDB1CqNifp/gco3rKVnG+/5czo0aTMnkPlyRjsxvei68QMDgwJ5S8zYxwMSj4I8mFAF8nFU1pQSX5aKQMGubPj+eE8NqIrW09lMfqzHbzw19F6rhYATK1hwByI/Q/Sopr8fD39bdFpDaSfLai3PT46h9TYAvr1iENtVAVeA5r9f2qMkNEeWDqYsvOP040qCgNo9QZ+2pPAcHcbTvxymoxzhYyeGUCfcd5NZx0OfAzMnaQCu2r37QODfenqaM7rK09QXhMwrywmQFyK2qSKn384ysNLDmFnbsK/jwzipQn+mBq37iGxLipXV6wmT6bgzz/R5V6c3HtHIBuJOlg7aSguNUIXMFXK0kk4r9lkYWzBYLfBrI9fj7G/H1a33EzekiVUJSRQHhWNqNXWBq1j92Vg7aTByadt/Ws9A2zJjC+iorR9Eg8KhUCYl23jYn8GvZSZ4juMdCNXXltxnD5eNky4awJAfelwoGzXTspNbDFW2lHpaYpSdcFXZdATki7Tmmdh9xdSz2CP+v0z2kJ0djR+tn6YGp2v5F60O5798Xm8NikAT3szxj4YiInGiHXfHaOyrOnPyP6RR1CYmiKYmODYNVZqx9oMzlZq+vnYUpAyFq0ekoRlfHN3b0LrptpqK+C/Z8Guq2QgAZupt9Nl00acXn4JY2slBev2knT/g8TcPZfZ2QZsUyux727KXW/2p9dw99onVkNFBcmPPIIhN4fUu25jiYWB8Ed6EjLKg7SEclblz2PJHy4c3pBIeUkVFaVaNi0+iZWDKYNu69bwAvrOAqdAXrFfzgv97wVbO1LmzCH78y8w8fbG7YsvcHx9Co6Wa1mhHswvNnP47OmBePey5/DaxNrU65pVrGdPW6xMVTwzpgfbnxvO9AFeLD+SyrCPtvHmqpPklNRJh+0/G9TNryZcu1tLEh0x57+Xeq2B3X+fwcbFjJ7C71LHOOOme8Y3hZFKyZDbupGfUcbRrY0nDKw7noE+t5J+53SUFVUx+fEQuvdtIVZoYi6lcSfvh5iVABgbKXhrSiDJeeX8r9qdKGYcQyVUkqDKwKJAx3Ph3qx8dBC93K3bfC11sXvgAcSqKvJ+arpdwaVCNhJ1sHY0BREK+74NNj7w9/1Qej4Xe7zPeLLKsziceRjHJ55AoVKR+dHHlEVGgkKBaZ8+FGaXkxZX0GJtRGN4BNgiitJTY3sJ97bhXE5p/T9kgLgNUJSCGDaT5/86ilYv8sltwag93FG5utZvQgSUbN9BRsBEBAR+yc5tWHBmbCa5nTKOQUWh5MdtJzqDjmM5x+q5muIyi/lwfSyj/J24rY/k6tJYGjP2oSCKcyvYtDimfr5/HYzs7PD4dj4eCxejGnKfZMSO/tnsHKaEuJGYZUxF9nCMLE5gYn6Bn3vXZ5AfDzd8Akbns9WM3d2xvecePJ+7BYtJNkRP+YJTPrdhUZFF30PvE/TtfaTfdTtZn31O2eEjnMiM5uSTs6g4egznDz/kf2kqwr1t6BfkxMCbu3Kv/4eM9lmBmY0pe/85y09z9/D3h4coK5TUXev5zmtQGsENn2Kjy2aa6QaW3fUSjs8+g+/aNbj/sJCYomNY7XqTdWI/8kd+zPJHhtDT1Yoht3cDg+TyAUkaXGNpjJ3b+dWTg4UJr0/qydbnhnFjqCuL98Qz9MOtfLohVtKOUlvBgEfh9FpIPdzoZ2usNsLZ16peXOLo1hSKsssZPMkJRUYU+LTPTQng3cser0A7DvwXT2lhw3qOFWvOcFepGlO1kpuf7YNbj6ZFHesRcjc4+MOmeVK6MDCgix03h7rx3Y6zbDmVyU9/S+KS2V72qEyVeGXoUHVAbYOJrw8WY8eS/9tv6Is7UCK9HchGog61/a4LBKnXc1keLJ9Vq+U01H0opkamrEtYh5GDA3YPP0zJ5s3k//FHbTwidl86tKI2ojGcfCwxVisvKi4R5l3dhOjC1cTBRWDuzK8FPdkZl8NLN/hLujVU6zgdPFibFWUoLaX4wGFSbXrj5GdNpk7Hl421ag26XUrTDH8QXHq1e86n809TriuvbTKk1Rt4+o9ozE2MeO/moHrG1qWLFQNv7UrC0RwOb2i6V4ImPFwqahz/AXgNgpWPNnkTAxgf6IyvgxlP93sQTwtP3ot8D62+erWSe1YyEoG3SimvF1CSX8mGuPH8W/AWlVqRMff35I7F08l9/XUW9ryBXMGY3B9+IPHOO6kaNQ3ltkgMj9zDPtcgkvPKmTmouuNaSRbKjIN0H+DOzc/2YdqrfQkY5EJ5cRUDb+mKo1czK1PPfhB6DzOVa9l7+iS5k6aSYu7A11++S/jxtzhi0hf/R5bx4LAetQValvamhN0g+fTjj+aQfDIPz562jT7cuFmb8uGtwWx4aijDejjy5ZYzRHy4lWkL9nJfTG9KBHMO//wC0xbsbfRnT4nUdOuBBfv5fWc8B9bE4xVoh6dJFCA2+rm2hcG3dUOvM7B3eX0NrbUr4ghO1GJsY8ytL4Rh69qG1YrSCEa/KWU5HVxUu/nFCf6YqpTMXHwQm8IYyk3s+eaRG+g92ovEY7kd1vfC/qEHMVRUSE3MLiOykaiDVU0abGaZdNMb967kh97zJQAalYah7kPZmLgRnUGH7YzpqNzc0OfkSD0aqmsj3HvYYGHbds0bpVKBu58tSSdz2y0bHOhmiYmRon5cIj8R4jZS4H8H76w9w5Bu9txdR9pCEx6OPjeXqurc7NL9+8m0CaLKoKL/WG+mhnvyy95EEi7s/6tQwJ1/wA1NFxi2hqisKIBa5df/bT3DsdRC3rkxEAeLhjUmvYa70y3cif0rzrUs+aBUwe0/g5kj/H4XFDcu6GetMWbLM8N4OKIHL/R9gYSiBJbELJH80WuelVYPY9+pt49Oq+fg2gR+nbePc6d0hDls5q6A/9Et3AmFQsG4iYM4O/Im5oQ/hNOWLSyf3oWDASrWDLfgaaetLNh9DHcbU8b0rH6giNsovVbXR9i5mRNxRw8e+DSC4JH103cbZfSbYGrFO8Y/MvvnA3zy5afMKfiYbPtwQp5ZgZdjwyfokFGe2Dhr2LToBJVlOjx7Np+C2tXRnP/d1ZvVjw1mUFd7DCKUCmasMruF3pWR+FTGYhBp8JNnIfnmK1NK2fJnHBUVOqLsoPDkJjA2B7feLV9fM1g7aQgZ6UnsvgzSzxYiiiL7/j3LubXJpBiL3DE3vMV6pUbpNlpa5Wz/AMoLAGl19eGtwUwN82CCQxamHqEoFAJBw90x0Rhx8CIFCGtQBwTQbdvWdqnwdiSykaiDiakRlvZqjmxM4vSBDMQ+MyFgilQ0lLQfgHHe48iryCMyIxKFiQmOLzwPgNmgQaSdKaAop6JNAesL8QiwpSSvst2NYkyMlAR7WHOgbjvTQ4sRBYHnzoWgUgp8eGuvek+LmrAwAMoOSC6nku07SPUYhrWjKe5+Njw1uhvGRgo+XH+q4Qnbke56IdHZ0TiaOuJs5szRlAK+2nKGm0LdGB/U+OcoCALD7/bDxsWMDQtPNClnUouZPdzxG1QUwLK7W5SYiHCPYKj7UL6N/pasqJ+luoURr0hZL9RPad2/4hye/rbcOa8f/UZbo0rZVpsaXJMSm11cyRO7FrDULRHnd99hzJsLySrPIUb3LdMHeKCsUW6N2wDmzlKldXvQ2KIY/Sa9ieX+wi/5wuhLRJdQnB76B8G4oWAiSD3eI+7oQVWFHkGozrJrBYFuVvzvzt78MWsAf8wawB2Pvg2mNrxns7p2W92f758ciInGiCnmlgRrjSh0M+Gn46nkHdvAIaEn/53IaVRcsi30Ge+FmbUJO36PZdOPJzm0LpGjJjqsxrhibdkOAwHS93vMW1Lv6l2f1W4eF+jMB1O6oco9XVsfYWJqRNBwd85FZTfZbbItlOvKeS9uPrmNdF+8lMhG4gImzO6Fpb0pGxee5L/5xyge8glYe8BfM6Esj8HugzFTmbEufh0AlmPG0GXjBswGDeTUvgxUJkp8Q9ovyOVZLdFRz+WUnwD/PgKrnmw2i6SGcG8bTqQWSr0SdFVw5BcSbIewMVXFm1MCcbGqL/Ot8vLCyMGBsgMHpLTOfbEUmXsROMwdQRBwtFAzK0LSJjrUyl7abSE6O5pgx2AqdZKbycHchHmTeza7j8pEyfhZQeh1htqGRc3iHAQ3zpdatf73dG3GSlM8H/48WoOWzyI/lG7a1Y2T8tJLWfWllNKqVCmZ/EQI4x8OkqTTg26Tdj52XlY+1NOG4cFlHCn+k2FuY5nUZRJBDkF0U96NkflpSjXS9wi9Fs5uhW6jLs7whtyF6NGPO422onLyQzX97xZF59x72BA01A3fUEfU5q3vPlcPtaWUEXRmYwNZFJCSKtz9bMk8V4SJxojnnu7Hvjnd8VFkskvfk0d+O8zA97fw8frYdktjG6uNGHRLV3KSSzgdmUmFvwUbTbVMH+TdvmuqwSVYEgDcN79+bVDWSRD19Yrogkd4oFIrL3o1IYoib+59kz9P/0lsfuxFHetikY3EBdi5mXPL830YfFs3UmPzWfr+SY56fYtYnAX/zsFEYcxIz5FsStpU67M29vBAV2Xg7KEsuvZxRGXS9rS3GiztTbFyNJXyvqtKpe5uX/eV0k2jf4cFQ+H7EXDk1yYVT8O8bdEZRKKSC+DUKijN5q3M/kwIcmZKSEPxNEEQ0ISHU3bwIJWnT5OoDsRIKdZbET0Y4YOjhQnv/HeyQztoZZdlk1qSSohDCB+tj+VMVgkf3dYLK9OWb1bWThpGzvAnK6GInX82EjO5kJ43QsTzknzI/u+aHepp6cm9pl6sVis4PHgOlRUGdv0Rx7K3IslMKGbw7d2Y+kp4bUUxADbe4NFf6vZX/RmVVJWQYvQD6KyoyrgRkLqiHTnZAy/jCBadWMCOlB1SFk1lIXRrX7V6LQoFwpRvoM99cPdyqSivFUTc0YNxD7WtmK0BfR+SCjW3vdfo2zUPQH0n+qI2U2GXuReARx94gEX3hhHsbsX/tkmxjvsXH2Drqaw262B1DXOkzzgvht3rz0/5eYwPcsHdpvFVVJsY8YpkvLfUEZCskQevYyTUZiqChrlz5nBWs1IkLbEsdhmrz61mTsgcBro2Lup5qZCNRCMoFALBIz2447V+OHexYue6cv7RLSbv5DHY9w1jvcdSXFXMnrTzGk7njmShrdS3SoajJTwDbEk9lYP+ywGS1EXAZHj0IDwTA+Pel6SdV8yBT/1g3YuQU/8G2dvTBkGQgteGA4vIUDhyzCSMt28MajLjShMehi4zk4yfl5Hp2IduobaYmJ7PpNEYG/H06O4cTpIKhjqKGlE/ZZU3i3bHc09/L4Z0a/1KrEuoI6FjPDmxI5VT+9Jb3mHYi9DjBlj/Epzb1vS49KM8cHI7ToKaxdtjWPLaPqK3JuM3yIW73+xP8AgPlI1lsfS6DbJjIPM4AO9FvkdWeQaTXJ5l/fFCIuPz+GVfIjoDfDryTfxs/Xhx54ukxCwHhdFFB3ABsO8Kkz4H80ssMW1iIaUHn91cW4RWlx79nBk9M4DAiOoHlfjtYOaI0imAEX5OLLw3nJ3PD2fOsK5EpxRy3+IDDP1oK59siGVXXA6lrWjPKwgC/W/swmGxkqIK3fmeEc2QVZbFwmMLKalqxkVk7SGl+x5dJvWdAMlIqK2l5lp1CBnpgZFKwaF1CS2euzGis6P54MAHRLhH8FCvh9p1jI5ENhLNYGlvyqTHghl1rz/5ZRYsy/2cA/8cpa/WGCsTK9YmrK0de2pfBpb2aly6WF/cSdOP4pH6FTqdQLoYAvetg1t+ACs36amw/2x4JBJmrIYuIyByAXwdBosnSi0YdVVYmaoIsTGnat1Z1kcNZGn+Y7zUyxuhWNtkO8YazanYAzkYlMYEj2+Yj39bmAc9nCx4f92pi/Yf1xCVFYWxwpj/ra/Ay1bDixP82nyM/lN8cethzbZfYxvvl1AXhQJu/g7su8MfM2r1eephMMB/z1BIGNPOvkOPY8PQWZZx+4vhDL/LD1OLZuQVAm6SbvZH/2Bt/FpWnl3JQ70e4rXRN+BipWbeyhP8uj+JUf5OdHe049NhnyIi8nT6Jio8+0lum4tkXfw65myac3l82eEPgsau0dWEUqWge19nqV5EFOHcdqlCv86Di7uNhmfH9mDP3BF8fWco7jamfL31DHcv3E+vNzYw6atdvLHqBGuOpZNV1HgsymAQWbQ7gWAP6way8heyN20vt626jc8Pf84LO19Af4HSQj0GPyVd24ZXpfmnR0uriAsevEwtjAmMcCMuMrPNscXc8lye2fYMThon3h38Lgrh8t+iL8sMBEFIEAThmCAIUYIgHGx5j8uHIAj06O/Cna/3p0uoPZHFU1n+2VnGmUxka9JWKnQVFOdVkBKbT4/+Lg3aR7aa0lxY/RQsGIqbdjMKhUiS76uNV6EKAvgMkdJ0nzop6SXlJ8Kf98JnPala/w4jMnWYlkCOzgtVeSBpa1P4bd5+FjyxnT/ePcDmxSc5sjGJpBO5lBZUovL1RWFjS4rLIOxNS+rlytegVAjMneBHYm4Zv+5vOv20LURlR2GGNxmFWj65PQSNcdt6UAAolArG3B+IurrQrsViRBMLKZAtCJL8dWV9w1Ky6zc2Hh/IP2lzMao0Iz5sN790ewuVYytkqc3soOto0k78xVt73yLYIZhZvWZhaqzkhXF+nEwvkrqiVae9elh48F7o08QoDbxjZXpRrrwqfRVv73ub53Y8x87UnXx44MN2H6vdmJhLhZZnt9QmezRKVgyUZjVZH2FspGBiL1d+f2gA0a+P4aeZfZkzrAtmJkqWRiYx59fD9H13MxEfbuXpP6JYGpnEmaxiRFFk2+ks4nNKmTmo6YpqvUHP/Oj5zNo4C2sTax4IeoAdKTv46shXTc9ZbQVD50LCTkmzKvNEk6nfIaM9URgpOLS+9X8nOoOOF3a8QEFlAZ8N+wwrE6tW79uZtP0vsuMYLopi27uGXCY0lsaMeSiU7lv2sv1vFTbrwwl1Lmd7/E7s4rqBCH792+Fq0uukHOytb0vy231nYTzsBVzmx5MUk0+L3kgLJ4h4VnrKObMJMXIhW9aAstLAWOsPOKfRMPHJv9HmV5GbWkpuWgl5qSUknczj1L7zbiMTMyPUIU9TIdrQb2DTueTDujswuKs9X2yO4+be7q2KHTRFlb6K4zknKc8ZwKxqFdr2orE0ZtysIJZ/cpjNi08yYXav5g22ra9kZH+5Gf6ZBVOXoNdD1NpTHFxri4FB9BnnRe9xXiSWO7Jp1d98deQrXh3waotz0QfdwovFhzAYtLw35D2MFNKf2eRgV5bsS0SrN9Df93wsY2hxIbPyC/mO0wTH/c2t3W9t8/WnFKfwzPZnOJl7khkBMzBWGvP9se+Z6DuRIe5D2ny8iyL8AUkActu7MH1F42NqXH2t0PqyVKsY2t2BodUd2rR6AyfSijiYkMeBhDy2x2bzz+FUAGw0KlRKBc6WaiY0kR2XW57LiztfZG/6Xib6TuTV/q9iamRKQWUBC48vpLtNdyb4Tmh8MmH3STI0Kx8HfRW4hDQ6zMzKhJ6DXTm+PZXwCd7N94Sv5usjX7M/Yz9vDXoLfzt/clNLOLg2gSG3d0dj2bo2wJ3B5TQSVyXeIwbgqjjE3pX7ETPGEzO/AhuTVFy7Wbfqi1CPc9th3VwpS8JnqFT45egPgEdAIfv+PUdpYWXr8rsVSug+loNx3TlbGU/fwLMo8vNxGf8GNpZqsFQ3KMYqL6kir9pw5KaWkhWjwzY7E7/JTd+kBEHgxQl+TPxqF99sO8OL4/3bds112Jd6FL2oxdmkB0+OakRuoo04+1ox6NZu7Fx2mkPrEgib4NNgjK5KT0l+JcV5FRTndafE8TuKI6MoifmXvApHyoqq8FEfZdDDN2BV3aGtm7ob0/ym8VvMb9zS/RYC7AKanccP2kwOq9W8a+KNh8X5+gaFQmDJA/0QReo/4cZtZDZWHHMZyLv738XP1q+ehlVLbE3aysu7pYr3L4Z/wQjPEVTpq9ictJm3973N8inL0ag6IHjbWozNpNXEhlcgcW/jq+H47ZKhvsCf3xpUSgUhHtaEeFjzwBBfRFEkIbeMAwl5HEzIIzq5kJmDvRutfD6ceZjntj9HQWUBrw94nVu63VL7f/FS35c4V3CO1/e8jreVd+P/z0oVjH5DSqWGZhsNhY7x4vjOVA6vT2TYXc27UTcnbWbh8YXc2v1WhluNZdOPJ4mNzMDYREnOwGI8A1onod4ZCB2ZqdLqkwpCPJAPiMB3oiguaG58WFiYePDgFeSVMhhg6TQ+SM1Hlz4T63InRkz3x39gC/URogglmdIy9dBiSRPG2hPGvgt+E+v5NrOTivnj3QOMutefHv1bV3dx7kg2a787Ro/+zoyc4d9mWZC28Mwf0aw6msaWZ4a2K3tEFEWmLHmHeMMyFgxdyQDvhjf09iCKIhsXnSTuYCZ9xnqhrdRTnFdRaxgqSi5wRQlgZlyOuSEJCydr/Evn4zliuHQjqENRVRGTlk/C08KTn8f/3ORnG50dzYy1MxijtOWDpDiEZ+NA1UxhpbYCPvSBkLsoGPkKt6+W+oIvm7gMG3XzKyutQcuXh79k8YnFBNgF8MnQT3C3OK/WezjzMDPWzWB6wHSeC3+u2WN1OFVl8EUwOPrBjFX139Nr4QNvKWV40udNHkIURU7knqCosohw53BUyvavWg2igZ9O/MQXh7/AzdyNT4Z9gp9twxt3bnku0/6bhiiK/D7xd+xNG1FwFUX4cbz0d/xCYrMNtrb9FkvM7jSp3WkTBbaJRYlMWz2Nbsb+3Fv5LLG7MxGUAr2GudN7rFf705IBQRAOiaIY1u4DcPlWEoNEUUwTBMER2CgIwilRFHfUHSAIwkPAQwCenm1/2uhUFAq4cT5jfhjMvb0+4FXXNxq6miqLIesUZJ2AzJPSaiHzxPleFSqNlFY34LFGbyL27uaYWqhIOpnXKiORm1rCxsUncfS2ZNhdPTrVQAA8O7Y7q4+m8fH6WD6fFtrm/VdGp3G64Dh2tk4dZiDgfKFdQWYZh9YlojJRYmGnxtxGjaOXBea2aixs1ZjbmGBhq8bM2gQlWinwnxIJjh4w9PkGx7U0tuTJ3k/y2p7XWH1uNZO6TGowpqSqhLk75uKkceLVoMcR4u6EuPVSQWZTJO4CbRl0G4O12prPhn3GPWvvYe7OuXwz8huUisbTqTNKM3hu+3NEZUcxtcdUng9/HmNlfZdEb6fe3Nb9NpbELGGC7wR62jVfe9KhGGukvhPrX5KEMr3rdJxLPQxVJU1mcp0rOMd/8f+xNn4tycVSa1krEytGe41mgs8E+jj1aVNAt7CykFd2vcK2lG2M9hrNGwPfwMK48doRO1M7vhz+JdPXTufpbU/zw5gfGnyuCIJUxV+U2mIHxt5jPYnZlcaRDUlETOve4P0ybRnPrn+B3vHjCMqIIFafScBgV8ImeGNm3c4CwA7msqwk6k1AEOYBJaIoNqntcMWtJKoxJOxmzOYH8De25auQp6oNwUnJMNQtulGZSW4kpwBw7Cn926VXiznsGxedIDkmj/s+GEy5XpJpbsxtUF5SxV/vH0SnNXD7i+GX7Mv1/rpjLI57j0FdnHlj4Cs4W1i3qnF7RmEFoz/bhtLrLcZ2GcIHEc33I2gPBoOItkKHsalR6wxmcSb8+7DkJmni5mUQDdy95m7SS9NZdeMqzI3rB/df3vUyq8+t5sexP9LbIVhq8+keDtN+bfq8a1+QVpXPx0s3VuCv03/xxt43mNVrFo+GPtpglz2pe5i7cy6V+krmDZzHeJ/xTR6+qKqIG/+9EXtTe3674bfa+MglQVsurSbsu8O9q89v3/aBlP30/LnaRj0ZpRmsjV/Lmvg1nMo7hUJQ0Ne5LxN8JmCjtmFt/Fq2Jm+lXFeOo8aR8d7jmeA7AX/b5lfMx3OO88y2Z8gqz+LZsGe50+/OVn0f1sWv47kdz3FLt1t4fcDrF/XQteWXGE7vz+SedwbUcx1XlWv56MdFmJ5wx0RvSvd+TvSd6IOVQ8e5Bq/KlYQgCGaAQhTF4up/jwHevNTz6AgU3oMYZ9uLXwtPkP3vgzgYBLDvBm5h0Hu6ZBCcAsDKs109nz0CbDkdmcn3237hh/Sv0Rl0hDmFEeEeQYR7BJ6Wnuj1BtZ/f5zSgipufCb0khkIg2ggw3gxKstj7M86wdg/D1OechcmBg8s1EbVPyos1EZYVr/WbNsZl41OyANFEaHVon4djUIhYKJpwzLdwgnuWd78MQUFL/Z9kTvX3Mm30d/ybPizte+ti1/HyrMrmdVrFr2dqnWIAm+FA99Lkg6NPRCIIpxeLzVrqiObcUu3W4jOjua7o98RZB/EUA8puFuTkbPg6AK62nTlk6Gf4GPV/CrM0tiSF/u9yNPbnmbJySXcG3hv6z6PjkBlKiVUrJsL8TuljDyQ4hEuvchXCGyM/YP/zv3H4SxJfLGXfS/m9p3LWO+x9Vw9wzyGUaYtY1vyNtbEr+HXmF/56eRPeFt6M8FnAhN8J+Bl6VU7XhRFlp5aykcHP8LB1IGfxv1EL4fWy52M8xnH6fzTfH/se7rbdOdO/zvb/TH0GefFqb0ZHNmYxOBbu6HXGji+I5Xdq09hXd4NwaeEqXf3bTSj8Ergkq8kBEHwBWr+Go2A30RRfKeZXa7YlQRAbO4ppv03FbXShHsDZnBP4H0dEiQURZFNp7Zx+guRfZ6rsO6vw9PCk52pO4kvlBqye1t6MyLpToxjnBg6vRuBA1shAtcBiKLIhwc+ZEnMEu7zfxSx3Is/k9+jQl9MqNl9OIgRlFbpKarQUlyho7j2VUe5Vo9SIXDH8BxWpH3En5P+bNQ3fCXz2u7XWHV2FX9P/htfa1/SStK4deWt+Fj78NO4n84/racdgQXDYNIX0OfehgfKOQNf94EJH0PfB+u9VaGrYPra6aSUpLBs4jJMjUyZu2Mu+zP2c2PXG3mp30v1em80hyiKPLH1Cfam7WX5lOX14hadjrYcvggBuy5w73+UleWw5dtQ1rj5sbcqF52ow9fKlxt8b2C893g8LFv3HS6oKGBj0kbWnFvDocxDiIj0tOvJeJ/xRLhH8PWRr9mQuIEI9wjeHfxuu9JJDaKBJ7Y8wc7UnXw3+jv6ufRr8zFq2LT4JGcPZTHg5q4c2ZhISV4laVZxVPVJ5YPb5nVaPURHrCQuu7upNVzJRgIkqeuvj3zN1uSt2KpteTDoQW7rcRsmyvY91Z8rPMeHkR+yO203dx5/BVdbJ2a8OKz2/eTiZHak7OD4rhTcD4UT7bKV6K4b6O/Snwj3CAa7DcbJzKmDrq4hi44v4rNDn3G3/908H/48giCQW57L3J1z2Ze+j0m+k3il/yuNGkut3oBWb+DzIx/y75l/2XPHnkvrAukAcstzmbR8EoH2gcwfNZ+Z62dyKu8Uf03+q142E6IIX4dLHc7u+6/hgfZ+A+tfhCeiJUmPC0gpTmHq6qk4mDpQVFVEcVUxL/V7iZu63dTmOWeUZjDl3ymEOIbw7ahvOyRmlVGaQXJxMiVVJZRoSyiuKqZUW0qxtljaVlUi/TvvDCWFSRSbO5KnLUYr6nExsWF8t5uY4DOB7jbdL2o+GaUZrE9Yz3/n/iMmLwYApaDksdDHuC/wvou6AZdUlXDXmrvIrcjl9xt+b7eBzc8o5bc39oMItp6mrLD9gSKHdH6f9DuWxhdfQNkUspG4wjiafZQvD3/J/oz9OJs5Myd4DpO6TGr1TbC4qphvo7/lt5jfUBupmRMyB++T/Ti+NZX7PxlSr+FM+pkC/v3sCM7dLLG+qYhdabvYkbqDjFKp9sHP1o8I9wju8b8Ha7V1h13jyrMreXnXy4z3Hs/7Ee/X+wPUG/QsOLaA+VHz8bXy5dNhn+Jr7dvocW5fdTuWxpb8MPaHDpvbpeTXmF95P/J9BroOZE/aHt4Z/A6Tu0xuOHD7R1INzJPHJWmHuvw8BYrS4dGGEhY17EjZwaObH8XL0otPhn1Cd5uGwc/W8lvMb7wX+R7vDXmPib4T230cgL9P/83b+99GZ2golWGiNMFcZY6FsQVmKjPMjTRYJO3HXGWOjYUrw87tJ+SJ0yhMOt69El8Yz/bk7YQ4htT2J7lYEosSueO/O3A2c2bJ+CXt9hScPpCBoIT3sl7iWM4xlkxYQg/bHh0yx6boCCOBKIpX/E+fPn3Eq4m9aXvFO1bfIQYuDhQn/jNRXBe/TtQb9E2O1xv04j+n/xEjfo8QgxYHia/tfk3MKcsRRVEUk2Jyxa9nbRbjo7NrxxfllosLn90h/vLKHrG8pKp2u8FgEGPzYsUfjv4gTl8zXez1Uy9x9J+jxeis6A65rh3JO8Tgn4LF+9ffL1bqKpsctzdtrxjxe4QYviRcXHV2VYP3S6tKxeCfgsUvD3/ZIfO6HGj1WvHGf28UAxcHis9te040GAyND8w9J4qvW4rizk/rb68oFsX/t3fvwVHVVwDHv0cCKKiAYigPK684U7gqgraoSKu2AjogtmpBx6A4bZ1qRR1UoDpFO7ZVC6I1KFDrRrDYwRdB6gMVARHLywDLICSpBGIw4RUIISTZ7Okf90ID5oa8dje7ez4zO3vz23t3f+f+svfsff1+j5+t+v6Uk37Wtn3btKyyrMl1DlWH9NbFt+qV86/UfeX7GvUeldWV+uQXT6oTcPQ3H/5GVxWu0uCeoOYfyNe95Xv9/y/+M9tdD386V/WV65sQRWysLFipF2ZeqBM+mVDnd/lkpq2dpk7A0YW5C5uxdv6AtdrE7W/ME0B9HvGWJFTdDfZH+R/pDW/foE7A0ZuzbtYVBSu+szHJLs7WMYvGqBNw9LbFt2lwT/C410OV1frS75bqsvlbVVW1siKk/3pytc6a8KnuLTxUZx2Cu4M67I1hOuDVATp381z/DVk9bCjeoJfOu1RvzrpZSytKTzp/UVmRpv87XZ2Ao1M/n6pHQkeOvbZ612p1Ao4u27ms0fVpCYK7g/rI8kf0QMWBumec81PVjMuOL9vyrrvRzPs0chWsxdZ9W3VA5gCdsuLkyelE+8v36/j3x6sTcPSZ1c9oVXVV/ReuOqI67QduzJ8+3eDPbgkyg5nqBBzN+DKjwcseCR3RhbkL1Qk4+sdVf4xA7WpnSSIOhKpDmpWbpcPeGKZOwNH0f6fr+qL1WlxWrFNWTFEn4OjV/7paF+Ut8t2IL/pbts597HMNh8P6wZxN+sLdx+9Z1KXkSIne+/G96gQcfWDpA3qw4mCDY/i65GsdMn+IDn9juO4+XL/PVXV/bT+79ll1Ao7elHWT5h/IV1XV2RtmqxNwtORISYPrEpeO/oreten/ZVn3qT7ZXbXKf48sUp5b95w6AUdXFa6q9zLb9m3TYW8M04GvDmz8r+A1L7vroWBd45aPsXA4fOw7++H2D2udpzpcrfkH8vWj7R/pzOyZ+uDSB3Xk2yP1osyL1Ak4OvbdsXXuhTe35kgSdk4iSqqqq3gz501mbZzFnvI9tDmlDYoyrv84fnXBr+o8zrnh4518tiAHZ2h3gsu/YfDo3gwa3rPen62qZG7OZMb6GXQ7vRvTfjyNH5xdv+40dh/eze3v3U55qJy5I+by/TMbfmPj8oLlTF4xmbCGeeKKJ3gn9x0KSgtYONqnX59EU7YXpp0Pl93jDjGqCs/2d4fs/OW8qFenorqCX2T9grCGeWvUW5yaUvdQu5/s+ITJKybTvnV7Zlw1o0GXkh5HFfZsg3Miexw+kiqqKxj//nhySnLIuCaDUDhEzv4cckpyyN2fS96BPMpD7j1NgtDjjB6kdUwjrVMafTv1ZWj3oVHtIsVOXMeh8lA587+az87SndzZ/856bXT3f1vGP6e6PWr2vSSVa+/q36irQb4s/pKJyyZScqSEST+axE1pN9X5PqWVpdz5/p3sKN3BK8NeoX/nxt+xW3iokInLJrJpzyZSJIVRfUfx+OWPn3zBRPHaLe4YE/cH3ZsuX7oCRv3NvZ8mBtZ8u4bxH4znLucu7h90f63zqCqzNs4iIzuDCzpfwIyrZpDaLjW6FW2Big8XM+bdMewu332s7KxTzyKtU9qxhJDWMY0+HftEt8+sWsTlzXTJ7rSU0xjvjG/QMh27tKPDOafR+tRWXJ3e+D6ZLk69mAUjFzB5xWSeWPUE64vW89jgx2r9R66ormDC0gnkleSRcU1GkxIEQLfTu5E5PJPp66Yzb8s8Bncd3KT3izsX3gJvfgD5K6HAG96z789iVp1Lv3cpN/a9kcDmACN6jfjOVTaHqw7z6MpHWZK/hJG9R/KHy//Q6Eu6E01qu1Qyh2eysnAlPTv0JK1jGmefFrsO+CLN9iTixOGDlbRu26pJQ6MeVR2uZs6mOczMnkmvDr2Y/pPp9OnY57jXH1r+EEvylzTL5ZInKiorIrVdasT7l2pRKg/DX9PA+bk7kmBlGdy9IqZVOlBxgFHvjKJb+27Mu27esX6iCg8Vct8n95FTksODgx4kvV96crVVAmmOPYnYD3tk6qXdmW2aJUEAtDqlFXdfdDezr51NSUUJYxePZVGe21OnqvLUmqdYkr+EiZdMbPYEAdClfZfk2+i0aef29Lv5HXc867RrY10jOrTtwKQfTiK4N8jrW18HYO23axm7eCyFhwrJuCaDcf3HJV9bmePY4aYkNrjrYBaMXMDDyx9mymdTWFe0ji7tujD/q/nc0f8OxvUfF+sqJpYLb4GN7saY84fFti6e4T2Hk5WXxXPrn6OsqowXs1+kxxk9eP7q50/aL5RJDna4yRAKh8jIzuDvm9y7n6/vfX2LGV83oVSH3J5hw1XwUJ47UFQLUHiokNELR1MeKmdI9yE8PfRp3660TXyxE9emWaScksKEgRMYmDqQdUXruGfAPZYgIqFVClz/V3egoRaSIMC9qODPV/6ZHQd3kN4v3XcMC5OcbE/CGGMSlJ24NsYYE1GWJIwxxviyJGGMMcaXJQljjDG+LEkYY4zxZUnCGGOML0sSxhhjfFmSMMYY4ysubqYTkd1AfiMX7wzsacbqxJtkjt9iT17JHH/N2M9T1XOa8mZxkSSaQkTWNvWOw3iWzPFb7MkZOyR3/M0dux1uMsYY48uShDHGGF/JkCRmx7oCMZbM8VvsySuZ42/W2BP+nIQxxpjGS4Y9CWOMMY1kScIYY4yvhE4SIjJcRLaKSK6ITIp1fSJBRLaLyCYRyRaRtV7ZWSKyRERyvOdONeaf7K2PrSLSMgZaricR+YeIFItIsEZZg2MVkUHeOssVkedFRKIdS2P4xD9VRL7x2j9bRK6r8VrCxC8i54rIUhHZIiKbRWSCV57w7V9H7NFpe1VNyAfQCsgDegNtgA1Av1jXKwJxbgc6n1D2NDDJm54EPOVN9/PWQ1ugl7d+WsU6hgbEOhQYCASbEiuwGrgMEOA9YESsY2tC/FOBibXMm1DxA12Bgd70GcA2L8aEb/86Yo9K2yfynsQPgVxV/a+qVgKvAzfEuE7RcgOQ6U1nAqNrlL+uqhWq+jWQi7ue4oKqLgf2nVDcoFhFpCtwpqquUvdb82qNZVo0n/j9JFT8qrpLVdd706XAFqA7SdD+dcTup1ljT+Qk0R3YWePvAupesfFKgQ9FZJ2I/Nor66Kqu8D9BwNSvfJEXCcNjbW7N31ieTy7V0Q2eoejjh5uSdj4RaQncDHwH5Ks/U+IHaLQ9omcJGo71paI1/teoaoDgRHAPSIytI55k2WdgH+sibYOXgT6AAOAXcA0rzwh4xeR04E3gftV9WBds9ZSFtfx1xJ7VNo+kZNEAXBujb97AIUxqkvEqGqh91wMvI17+KjI27XEey72Zk/EddLQWAu86RPL45KqFqlqtaqGgTn8//BhwsUvIq1xN5KvqepbXnFStH9tsUer7RM5SawB0kSkl4i0AcYAWTGuU7MSkfYicsbRaeBaIIgb5zhvtnHAQm86CxgjIm1FpBeQhnsiK541KFbvkESpiAz2ruxIr7FM3Dm6gfTciNv+kGDxe3V9GdiiqtNrvJTw7e8Xe9TaPtZn7iN8VcB1uFcC5AG/j3V9IhBfb9yrGDYAm4/GCJwNfAzkeM9n1Vjm99762EoLv6qjlnjn4+5WV+H+KrqrMbECl3hfqDzgBbyeB1r6wyf+ucAmYKO3ceiaiPEDQ3APjWwEsr3HdcnQ/nXEHpW2t245jDHG+Erkw03GGGOayJKEMcYYX5YkjDHG+LIkYYwxxpclCWOMMb4sSRjjQ0Q6ishv63j983q8x6HmrZUx0WVJwhh/HYHvJAkRaQWgqpdHu0LGRFtKrCtgTAv2F6CPiGTj3sB2CPdmtgFAPxE5pKqne33qLAQ6Aa2BR1W1Rd/Fa0x92c10xvjwetx8V1UdEfkJsBhw1O1+mRpJIgVop6oHRaQz8AWQpqp6dJ4YhWBMk9mehDH1t/pogjiBAH/yeuAN43a/3AX4NpqVMyYSLEkYU39lPuW3AecAg1S1SkS2A6dGrVbGRJCduDbGXynucJEn0wEo9hLEVcB5ka2WMdFjexLG+FDVvSKyUkSCQDlQ5DPra8AiEVmL20PnV1GqojERZyeujTHG+LLDTcYYY3xZkjDGGOPLkoQxxhhfliSMMcb4siRhjDHGlyUJY4wxvixJGGOM8fU/8sh3N2B90D8AAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['steps_in_trial',\n", + " \"steps_in_trial_no_mods\",\n", + " \"steps_in_trial_update\",\n", + " \"steps_in_trial_cover\",\n", + " \"steps_in_trial_both\",\n", + " ]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"XCS\",\"XNCS\" , \"XNCS with env update\", \"XNCS with env cover\", \"XNCS with both env inputs\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "188.20000000000002\n", + "206.90000000000003\n", + "145.20000000000002\n", + "226.4\n", + "179.40000000000003\n" + ] + } + ], + "source": [ + "print(sum(df[\"steps_in_trial\"]))\n", + "print(sum(df[\"steps_in_trial_no_mods\"]))\n", + "print(sum(df[\"steps_in_trial_update\"]))\n", + "print(sum(df[\"steps_in_trial_cover\"]))\n", + "print(sum(df[\"steps_in_trial_both\"]))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "collapsed": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificitysteps_in_trial_no_modssteps_in_trial_updatesteps_in_trial_coversteps_in_trial_both...population_coverpopulation_bothaverage_specificity_no_modsaverage_specificity_updateaverage_specificity_coveraverage_specificity_bothfraction_accuracy_no_modsfraction_accuracy_updatefraction_accuracy_coverfraction_accuracy_both
trial
010.61000.0000000.0808451454.81600.08.14737529.522.018.017.7...1447.51448.18.2093758.1586878.0711878.2665000.9980.9859310.9889090.952294
10011.61081.4094320.1268241378.61600.09.1474376.99.59.16.1...1401.11401.59.4720008.3646259.7540628.6804380.9840.2730000.9500000.320000
2008.21237.3228090.0831441359.31600.09.8675004.64.56.15.0...1394.61393.710.6621878.79943810.5015009.2368750.9670.1880000.9300000.193000
3008.41289.2683470.0788311339.71600.010.4018124.93.613.09.6...1394.71394.611.9510639.07256311.5103129.8921250.9530.1330000.9210000.204000
40012.51102.1198910.1213351341.81600.011.0082505.94.67.53.4...1397.81404.212.6592509.74643812.50393810.3510620.9530.1010000.8910000.172000
5005.21307.8798680.0517341339.61600.011.1298755.24.112.25.5...1393.01403.512.9760009.95837513.82837510.8253750.9550.1320000.9450000.186000
6007.71270.1714860.0852151337.21600.011.5811259.42.85.25.2...1395.21406.213.99356310.14800014.37393811.4243750.9430.0740000.8960000.139000
7004.61382.9574400.0490061338.01600.011.7835626.44.711.19.3...1397.41406.614.93950010.77475014.84187511.7153120.9390.1730000.9540000.256000
8004.51428.2842050.0531351330.91600.011.5295629.73.49.68.8...1400.01403.115.53218810.83943715.31275012.1706250.9600.1140000.9270000.187000
9007.01237.2705140.0664951330.21600.011.6061259.511.09.77.1...1400.11402.916.28000011.31062515.68900012.2906250.9340.2370000.9240000.223000
100011.31275.7468200.0976871334.71600.011.5865006.98.66.64.9...1403.21405.416.47837511.38981215.95875012.5503120.9620.1740000.8970000.257000
11006.41202.6293310.0772101331.31600.011.8925004.86.99.45.1...1401.91407.116.74612511.50631216.15550012.6955620.9230.2020000.9020000.162000
12008.31318.5367780.0809831333.51600.011.8616877.64.06.86.1...1407.11409.417.09681211.87006216.41993713.0188750.9730.1670000.9450000.203000
13005.31307.9757080.0472701325.91600.012.0991252.86.46.37.1...1404.21403.817.15268712.16231216.80693813.1892500.9200.1500000.9150000.245000
14009.21228.7289220.0983641329.11600.011.8386878.74.28.36.4...1404.81405.717.41225012.65456217.19275013.4141880.9240.2080000.9240000.293000
15006.11348.4099460.0531121324.01600.012.2793755.95.56.68.8...1400.11401.818.01431212.65737517.87968713.6055000.9690.1920000.9220000.277000
16007.21208.3761400.0698391327.41600.011.8947507.72.87.36.0...1400.31399.718.52637512.85875018.09606213.8348750.9670.2250000.9510000.288000
17006.31395.5093410.0559201325.21600.011.9179377.24.29.612.1...1399.91398.919.01662512.92018718.23031314.2993120.9080.2860000.9420000.291000
18006.31309.5833590.0596281323.11600.012.3130003.84.39.45.8...1397.31396.418.62875013.29443818.48950014.3744370.9670.1800000.9550000.352000
19005.61219.3592920.0481101320.31600.011.94331310.34.98.98.8...1396.51397.018.58975013.44193718.87925014.5556250.9660.2850000.9590000.335000
20005.21401.3457600.0485271316.41600.012.15231311.04.310.05.9...1392.51392.819.05312513.52050019.28893714.7555620.9570.1740000.9070000.370000
21009.11267.2018680.0707101319.11600.012.7558128.15.69.67.4...1391.31389.519.41750013.62537519.71237514.8593130.9580.2110000.9090000.385000
22006.31300.6717790.0523841316.51600.012.4585005.03.59.77.8...1387.11390.319.71543813.88575020.15731215.1264370.9550.2510000.9010000.318000
23007.41275.1446590.0691291322.91600.012.57806213.83.810.04.3...1387.21395.319.99393714.02506219.97456215.2536880.9640.2660000.9010000.328000
24007.91199.9858050.0729911318.61600.012.81900011.36.06.45.2...1383.61391.020.23118714.34162519.81312515.5719370.9460.2750000.9010000.362000
\n", + "

25 rows × 22 columns

\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 10.6 1000.000000 0.080845 1454.8 1600.0 \n", + "100 11.6 1081.409432 0.126824 1378.6 1600.0 \n", + "200 8.2 1237.322809 0.083144 1359.3 1600.0 \n", + "300 8.4 1289.268347 0.078831 1339.7 1600.0 \n", + "400 12.5 1102.119891 0.121335 1341.8 1600.0 \n", + "500 5.2 1307.879868 0.051734 1339.6 1600.0 \n", + "600 7.7 1270.171486 0.085215 1337.2 1600.0 \n", + "700 4.6 1382.957440 0.049006 1338.0 1600.0 \n", + "800 4.5 1428.284205 0.053135 1330.9 1600.0 \n", + "900 7.0 1237.270514 0.066495 1330.2 1600.0 \n", + "1000 11.3 1275.746820 0.097687 1334.7 1600.0 \n", + "1100 6.4 1202.629331 0.077210 1331.3 1600.0 \n", + "1200 8.3 1318.536778 0.080983 1333.5 1600.0 \n", + "1300 5.3 1307.975708 0.047270 1325.9 1600.0 \n", + "1400 9.2 1228.728922 0.098364 1329.1 1600.0 \n", + "1500 6.1 1348.409946 0.053112 1324.0 1600.0 \n", + "1600 7.2 1208.376140 0.069839 1327.4 1600.0 \n", + "1700 6.3 1395.509341 0.055920 1325.2 1600.0 \n", + "1800 6.3 1309.583359 0.059628 1323.1 1600.0 \n", + "1900 5.6 1219.359292 0.048110 1320.3 1600.0 \n", + "2000 5.2 1401.345760 0.048527 1316.4 1600.0 \n", + "2100 9.1 1267.201868 0.070710 1319.1 1600.0 \n", + "2200 6.3 1300.671779 0.052384 1316.5 1600.0 \n", + "2300 7.4 1275.144659 0.069129 1322.9 1600.0 \n", + "2400 7.9 1199.985805 0.072991 1318.6 1600.0 \n", + "\n", + " average_specificity steps_in_trial_no_mods steps_in_trial_update \\\n", + "trial \n", + "0 8.147375 29.5 22.0 \n", + "100 9.147437 6.9 9.5 \n", + "200 9.867500 4.6 4.5 \n", + "300 10.401812 4.9 3.6 \n", + "400 11.008250 5.9 4.6 \n", + "500 11.129875 5.2 4.1 \n", + "600 11.581125 9.4 2.8 \n", + "700 11.783562 6.4 4.7 \n", + "800 11.529562 9.7 3.4 \n", + "900 11.606125 9.5 11.0 \n", + "1000 11.586500 6.9 8.6 \n", + "1100 11.892500 4.8 6.9 \n", + "1200 11.861687 7.6 4.0 \n", + "1300 12.099125 2.8 6.4 \n", + "1400 11.838687 8.7 4.2 \n", + "1500 12.279375 5.9 5.5 \n", + "1600 11.894750 7.7 2.8 \n", + "1700 11.917937 7.2 4.2 \n", + "1800 12.313000 3.8 4.3 \n", + "1900 11.943313 10.3 4.9 \n", + "2000 12.152313 11.0 4.3 \n", + "2100 12.755812 8.1 5.6 \n", + "2200 12.458500 5.0 3.5 \n", + "2300 12.578062 13.8 3.8 \n", + "2400 12.819000 11.3 6.0 \n", + "\n", + " steps_in_trial_cover steps_in_trial_both ... population_cover \\\n", + "trial ... \n", + "0 18.0 17.7 ... 1447.5 \n", + "100 9.1 6.1 ... 1401.1 \n", + "200 6.1 5.0 ... 1394.6 \n", + "300 13.0 9.6 ... 1394.7 \n", + "400 7.5 3.4 ... 1397.8 \n", + "500 12.2 5.5 ... 1393.0 \n", + "600 5.2 5.2 ... 1395.2 \n", + "700 11.1 9.3 ... 1397.4 \n", + "800 9.6 8.8 ... 1400.0 \n", + "900 9.7 7.1 ... 1400.1 \n", + "1000 6.6 4.9 ... 1403.2 \n", + "1100 9.4 5.1 ... 1401.9 \n", + "1200 6.8 6.1 ... 1407.1 \n", + "1300 6.3 7.1 ... 1404.2 \n", + "1400 8.3 6.4 ... 1404.8 \n", + "1500 6.6 8.8 ... 1400.1 \n", + "1600 7.3 6.0 ... 1400.3 \n", + "1700 9.6 12.1 ... 1399.9 \n", + "1800 9.4 5.8 ... 1397.3 \n", + "1900 8.9 8.8 ... 1396.5 \n", + "2000 10.0 5.9 ... 1392.5 \n", + "2100 9.6 7.4 ... 1391.3 \n", + "2200 9.7 7.8 ... 1387.1 \n", + "2300 10.0 4.3 ... 1387.2 \n", + "2400 6.4 5.2 ... 1383.6 \n", + "\n", + " population_both average_specificity_no_mods \\\n", + "trial \n", + "0 1448.1 8.209375 \n", + "100 1401.5 9.472000 \n", + "200 1393.7 10.662187 \n", + "300 1394.6 11.951063 \n", + "400 1404.2 12.659250 \n", + "500 1403.5 12.976000 \n", + "600 1406.2 13.993563 \n", + "700 1406.6 14.939500 \n", + "800 1403.1 15.532188 \n", + "900 1402.9 16.280000 \n", + "1000 1405.4 16.478375 \n", + "1100 1407.1 16.746125 \n", + "1200 1409.4 17.096812 \n", + "1300 1403.8 17.152687 \n", + "1400 1405.7 17.412250 \n", + "1500 1401.8 18.014312 \n", + "1600 1399.7 18.526375 \n", + "1700 1398.9 19.016625 \n", + "1800 1396.4 18.628750 \n", + "1900 1397.0 18.589750 \n", + "2000 1392.8 19.053125 \n", + "2100 1389.5 19.417500 \n", + "2200 1390.3 19.715438 \n", + "2300 1395.3 19.993937 \n", + "2400 1391.0 20.231187 \n", + "\n", + " average_specificity_update average_specificity_cover \\\n", + "trial \n", + "0 8.158687 8.071187 \n", + "100 8.364625 9.754062 \n", + "200 8.799438 10.501500 \n", + "300 9.072563 11.510312 \n", + "400 9.746438 12.503938 \n", + "500 9.958375 13.828375 \n", + "600 10.148000 14.373938 \n", + "700 10.774750 14.841875 \n", + "800 10.839437 15.312750 \n", + "900 11.310625 15.689000 \n", + "1000 11.389812 15.958750 \n", + "1100 11.506312 16.155500 \n", + "1200 11.870062 16.419937 \n", + "1300 12.162312 16.806938 \n", + "1400 12.654562 17.192750 \n", + "1500 12.657375 17.879687 \n", + "1600 12.858750 18.096062 \n", + "1700 12.920187 18.230313 \n", + "1800 13.294438 18.489500 \n", + "1900 13.441937 18.879250 \n", + "2000 13.520500 19.288937 \n", + "2100 13.625375 19.712375 \n", + "2200 13.885750 20.157312 \n", + "2300 14.025062 19.974562 \n", + "2400 14.341625 19.813125 \n", + "\n", + " average_specificity_both fraction_accuracy_no_mods \\\n", + "trial \n", + "0 8.266500 0.998 \n", + "100 8.680438 0.984 \n", + "200 9.236875 0.967 \n", + "300 9.892125 0.953 \n", + "400 10.351062 0.953 \n", + "500 10.825375 0.955 \n", + "600 11.424375 0.943 \n", + "700 11.715312 0.939 \n", + "800 12.170625 0.960 \n", + "900 12.290625 0.934 \n", + "1000 12.550312 0.962 \n", + "1100 12.695562 0.923 \n", + "1200 13.018875 0.973 \n", + "1300 13.189250 0.920 \n", + "1400 13.414188 0.924 \n", + "1500 13.605500 0.969 \n", + "1600 13.834875 0.967 \n", + "1700 14.299312 0.908 \n", + "1800 14.374437 0.967 \n", + "1900 14.555625 0.966 \n", + "2000 14.755562 0.957 \n", + "2100 14.859313 0.958 \n", + "2200 15.126437 0.955 \n", + "2300 15.253688 0.964 \n", + "2400 15.571937 0.946 \n", + "\n", + " fraction_accuracy_update fraction_accuracy_cover \\\n", + "trial \n", + "0 0.985931 0.988909 \n", + "100 0.273000 0.950000 \n", + "200 0.188000 0.930000 \n", + "300 0.133000 0.921000 \n", + "400 0.101000 0.891000 \n", + "500 0.132000 0.945000 \n", + "600 0.074000 0.896000 \n", + "700 0.173000 0.954000 \n", + "800 0.114000 0.927000 \n", + "900 0.237000 0.924000 \n", + "1000 0.174000 0.897000 \n", + "1100 0.202000 0.902000 \n", + "1200 0.167000 0.945000 \n", + "1300 0.150000 0.915000 \n", + "1400 0.208000 0.924000 \n", + "1500 0.192000 0.922000 \n", + "1600 0.225000 0.951000 \n", + "1700 0.286000 0.942000 \n", + "1800 0.180000 0.955000 \n", + "1900 0.285000 0.959000 \n", + "2000 0.174000 0.907000 \n", + "2100 0.211000 0.909000 \n", + "2200 0.251000 0.901000 \n", + "2300 0.266000 0.901000 \n", + "2400 0.275000 0.901000 \n", + "\n", + " fraction_accuracy_both \n", + "trial \n", + "0 0.952294 \n", + "100 0.320000 \n", + "200 0.193000 \n", + "300 0.204000 \n", + "400 0.172000 \n", + "500 0.186000 \n", + "600 0.139000 \n", + "700 0.256000 \n", + "800 0.187000 \n", + "900 0.223000 \n", + "1000 0.257000 \n", + "1100 0.162000 \n", + "1200 0.203000 \n", + "1300 0.245000 \n", + "1400 0.293000 \n", + "1500 0.277000 \n", + "1600 0.288000 \n", + "1700 0.291000 \n", + "1800 0.352000 \n", + "1900 0.335000 \n", + "2000 0.370000 \n", + "2100 0.385000 \n", + "2200 0.318000 \n", + "2300 0.328000 \n", + "2400 0.362000 \n", + "\n", + "[25 rows x 22 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracy
trial
029.5600.0000000.4900141600.01453.78.2093750.998
1006.91309.3244210.1018271600.01407.29.4720000.984
2004.61370.7361580.0572021600.01400.410.6621870.967
3004.91516.5677990.0631751600.01396.911.9510630.953
4005.91364.9549110.0743141600.01402.512.6592500.953
5005.21459.0808650.0630731600.01405.412.9760000.955
6009.41123.4854990.1147001600.01408.013.9935630.943
7006.41392.1796660.1033211600.01411.614.9395000.939
8009.71229.3459010.1600701600.01407.715.5321880.960
9009.51311.7367050.1203321600.01405.816.2800000.934
10006.91425.9571210.0934191600.01399.516.4783750.962
11004.81637.4022620.0692431600.01399.616.7461250.923
12007.61183.0354510.1069111600.01403.017.0968120.973
13002.81619.2878640.0437781600.01407.217.1526870.920
14008.71238.9402830.1230191600.01404.317.4122500.924
15005.91301.3399340.0701721600.01403.518.0143120.969
16007.71282.7052240.1125201600.01402.618.5263750.967
17007.21437.4670590.0943681600.01400.019.0166250.908
18003.81413.7900110.0503191600.01408.318.6287500.967
190010.31204.9478290.1319571600.01407.018.5897500.966
200011.01258.3107440.1330521600.01408.619.0531250.957
21008.11246.2354670.1101841600.01407.219.4175000.958
22005.01488.1224030.0672361600.01405.919.7154380.955
230013.81201.9871600.1817871600.01406.619.9939370.964
240011.31409.0073650.1431451600.01407.520.2311870.946
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 29.5 600.000000 0.490014 1600.0 1453.7 \n", + "100 6.9 1309.324421 0.101827 1600.0 1407.2 \n", + "200 4.6 1370.736158 0.057202 1600.0 1400.4 \n", + "300 4.9 1516.567799 0.063175 1600.0 1396.9 \n", + "400 5.9 1364.954911 0.074314 1600.0 1402.5 \n", + "500 5.2 1459.080865 0.063073 1600.0 1405.4 \n", + "600 9.4 1123.485499 0.114700 1600.0 1408.0 \n", + "700 6.4 1392.179666 0.103321 1600.0 1411.6 \n", + "800 9.7 1229.345901 0.160070 1600.0 1407.7 \n", + "900 9.5 1311.736705 0.120332 1600.0 1405.8 \n", + "1000 6.9 1425.957121 0.093419 1600.0 1399.5 \n", + "1100 4.8 1637.402262 0.069243 1600.0 1399.6 \n", + "1200 7.6 1183.035451 0.106911 1600.0 1403.0 \n", + "1300 2.8 1619.287864 0.043778 1600.0 1407.2 \n", + "1400 8.7 1238.940283 0.123019 1600.0 1404.3 \n", + "1500 5.9 1301.339934 0.070172 1600.0 1403.5 \n", + "1600 7.7 1282.705224 0.112520 1600.0 1402.6 \n", + "1700 7.2 1437.467059 0.094368 1600.0 1400.0 \n", + "1800 3.8 1413.790011 0.050319 1600.0 1408.3 \n", + "1900 10.3 1204.947829 0.131957 1600.0 1407.0 \n", + "2000 11.0 1258.310744 0.133052 1600.0 1408.6 \n", + "2100 8.1 1246.235467 0.110184 1600.0 1407.2 \n", + "2200 5.0 1488.122403 0.067236 1600.0 1405.9 \n", + "2300 13.8 1201.987160 0.181787 1600.0 1406.6 \n", + "2400 11.3 1409.007365 0.143145 1600.0 1407.5 \n", + "\n", + " average_specificity fraction_accuracy \n", + "trial \n", + "0 8.209375 0.998 \n", + "100 9.472000 0.984 \n", + "200 10.662187 0.967 \n", + "300 11.951063 0.953 \n", + "400 12.659250 0.953 \n", + "500 12.976000 0.955 \n", + "600 13.993563 0.943 \n", + "700 14.939500 0.939 \n", + "800 15.532188 0.960 \n", + "900 16.280000 0.934 \n", + "1000 16.478375 0.962 \n", + "1100 16.746125 0.923 \n", + "1200 17.096812 0.973 \n", + "1300 17.152687 0.920 \n", + "1400 17.412250 0.924 \n", + "1500 18.014312 0.969 \n", + "1600 18.526375 0.967 \n", + "1700 19.016625 0.908 \n", + "1800 18.628750 0.967 \n", + "1900 18.589750 0.966 \n", + "2000 19.053125 0.957 \n", + "2100 19.417500 0.958 \n", + "2200 19.715438 0.955 \n", + "2300 19.993937 0.964 \n", + "2400 20.231187 0.946 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracy
trial
022.0800.0000000.3382211600.01451.08.1586870.985931
1009.51226.4607070.1390271600.01406.18.3646250.273000
2004.51377.7751170.0784401600.01399.88.7994380.188000
3003.61454.7711650.0526271600.01402.39.0725630.133000
4004.61400.9942450.0690921600.01407.89.7464380.101000
5004.11427.0405380.0680501600.01409.89.9583750.132000
6002.81596.6093010.0351631600.01410.810.1480000.074000
7004.71335.3245770.0678551600.01411.610.7747500.173000
8003.41687.0761310.0518811600.01417.410.8394370.114000
90011.01279.1969890.1475541600.01415.811.3106250.237000
10008.61335.5752420.1191271600.01414.711.3898120.174000
11006.91401.4704410.1040801600.01418.011.5063120.202000
12004.01363.7040640.0608581600.01417.511.8700620.167000
13006.41316.1811190.0857681600.01420.512.1623120.150000
14004.21416.4721380.0573881600.01416.812.6545620.208000
15005.51358.6187560.0889011600.01421.312.6573750.192000
16002.81664.7308970.0378731600.01415.612.8587500.225000
17004.21470.4711710.0550871600.01413.712.9201870.286000
18004.31414.0442040.0635651600.01411.713.2944380.180000
19004.91404.3210490.0776711600.01411.913.4419370.285000
20004.31454.8204150.0677101600.01412.913.5205000.174000
21005.61293.1042310.0887851600.01416.913.6253750.211000
22003.51450.8429240.0548151600.01413.113.8857500.251000
23003.81502.3072120.0536831600.01411.214.0250620.266000
24006.01520.1128880.0879851600.01412.514.3416250.275000
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 22.0 800.000000 0.338221 1600.0 1451.0 \n", + "100 9.5 1226.460707 0.139027 1600.0 1406.1 \n", + "200 4.5 1377.775117 0.078440 1600.0 1399.8 \n", + "300 3.6 1454.771165 0.052627 1600.0 1402.3 \n", + "400 4.6 1400.994245 0.069092 1600.0 1407.8 \n", + "500 4.1 1427.040538 0.068050 1600.0 1409.8 \n", + "600 2.8 1596.609301 0.035163 1600.0 1410.8 \n", + "700 4.7 1335.324577 0.067855 1600.0 1411.6 \n", + "800 3.4 1687.076131 0.051881 1600.0 1417.4 \n", + "900 11.0 1279.196989 0.147554 1600.0 1415.8 \n", + "1000 8.6 1335.575242 0.119127 1600.0 1414.7 \n", + "1100 6.9 1401.470441 0.104080 1600.0 1418.0 \n", + "1200 4.0 1363.704064 0.060858 1600.0 1417.5 \n", + "1300 6.4 1316.181119 0.085768 1600.0 1420.5 \n", + "1400 4.2 1416.472138 0.057388 1600.0 1416.8 \n", + "1500 5.5 1358.618756 0.088901 1600.0 1421.3 \n", + "1600 2.8 1664.730897 0.037873 1600.0 1415.6 \n", + "1700 4.2 1470.471171 0.055087 1600.0 1413.7 \n", + "1800 4.3 1414.044204 0.063565 1600.0 1411.7 \n", + "1900 4.9 1404.321049 0.077671 1600.0 1411.9 \n", + "2000 4.3 1454.820415 0.067710 1600.0 1412.9 \n", + "2100 5.6 1293.104231 0.088785 1600.0 1416.9 \n", + "2200 3.5 1450.842924 0.054815 1600.0 1413.1 \n", + "2300 3.8 1502.307212 0.053683 1600.0 1411.2 \n", + "2400 6.0 1520.112888 0.087985 1600.0 1412.5 \n", + "\n", + " average_specificity fraction_accuracy \n", + "trial \n", + "0 8.158687 0.985931 \n", + "100 8.364625 0.273000 \n", + "200 8.799438 0.188000 \n", + "300 9.072563 0.133000 \n", + "400 9.746438 0.101000 \n", + "500 9.958375 0.132000 \n", + "600 10.148000 0.074000 \n", + "700 10.774750 0.173000 \n", + "800 10.839437 0.114000 \n", + "900 11.310625 0.237000 \n", + "1000 11.389812 0.174000 \n", + "1100 11.506312 0.202000 \n", + "1200 11.870062 0.167000 \n", + "1300 12.162312 0.150000 \n", + "1400 12.654562 0.208000 \n", + "1500 12.657375 0.192000 \n", + "1600 12.858750 0.225000 \n", + "1700 12.920187 0.286000 \n", + "1800 13.294438 0.180000 \n", + "1900 13.441937 0.285000 \n", + "2000 13.520500 0.174000 \n", + "2100 13.625375 0.211000 \n", + "2200 13.885750 0.251000 \n", + "2300 14.025062 0.266000 \n", + "2400 14.341625 0.275000 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracy
trial
018.0800.0000000.2375621600.01447.58.0711870.988909
1009.11243.5142210.0968111600.01401.19.7540620.950000
2006.11314.3746200.0767551600.01394.610.5015000.930000
30013.01140.7319090.1360101600.01394.711.5103120.921000
4007.51283.6252750.0864511600.01397.812.5039380.891000
50012.21244.8864490.1277241600.01393.013.8283750.945000
6005.21319.7028200.0642061600.01395.214.3739380.896000
70011.11268.4384790.1225271600.01397.414.8418750.954000
8009.61371.0867700.0964311600.01400.015.3127500.927000
9009.71180.9212810.1050001600.01400.115.6890000.924000
10006.61471.6119980.0748461600.01403.215.9587500.897000
11009.41234.2410230.1010761600.01401.916.1555000.902000
12006.81273.8620910.0744751600.01407.116.4199370.945000
13006.31346.8754570.0617261600.01404.216.8069380.915000
14008.31329.2066640.0929721600.01404.817.1927500.924000
15006.61290.9821090.0728911600.01400.117.8796870.922000
16007.31371.7305060.0767431600.01400.318.0960620.951000
17009.61379.2191300.0972811600.01399.918.2303130.942000
18009.41253.6715870.0950751600.01397.318.4895000.955000
19008.91250.9827890.0969481600.01396.518.8792500.959000
200010.01366.0290230.1208421600.01392.519.2889370.907000
21009.61468.4226300.1009431600.01391.319.7123750.909000
22009.71346.5090040.0917891600.01387.120.1573120.901000
230010.01181.9446020.1216891600.01387.219.9745620.901000
24006.41307.2653490.0763021600.01383.619.8131250.901000
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 18.0 800.000000 0.237562 1600.0 1447.5 \n", + "100 9.1 1243.514221 0.096811 1600.0 1401.1 \n", + "200 6.1 1314.374620 0.076755 1600.0 1394.6 \n", + "300 13.0 1140.731909 0.136010 1600.0 1394.7 \n", + "400 7.5 1283.625275 0.086451 1600.0 1397.8 \n", + "500 12.2 1244.886449 0.127724 1600.0 1393.0 \n", + "600 5.2 1319.702820 0.064206 1600.0 1395.2 \n", + "700 11.1 1268.438479 0.122527 1600.0 1397.4 \n", + "800 9.6 1371.086770 0.096431 1600.0 1400.0 \n", + "900 9.7 1180.921281 0.105000 1600.0 1400.1 \n", + "1000 6.6 1471.611998 0.074846 1600.0 1403.2 \n", + "1100 9.4 1234.241023 0.101076 1600.0 1401.9 \n", + "1200 6.8 1273.862091 0.074475 1600.0 1407.1 \n", + "1300 6.3 1346.875457 0.061726 1600.0 1404.2 \n", + "1400 8.3 1329.206664 0.092972 1600.0 1404.8 \n", + "1500 6.6 1290.982109 0.072891 1600.0 1400.1 \n", + "1600 7.3 1371.730506 0.076743 1600.0 1400.3 \n", + "1700 9.6 1379.219130 0.097281 1600.0 1399.9 \n", + "1800 9.4 1253.671587 0.095075 1600.0 1397.3 \n", + "1900 8.9 1250.982789 0.096948 1600.0 1396.5 \n", + "2000 10.0 1366.029023 0.120842 1600.0 1392.5 \n", + "2100 9.6 1468.422630 0.100943 1600.0 1391.3 \n", + "2200 9.7 1346.509004 0.091789 1600.0 1387.1 \n", + "2300 10.0 1181.944602 0.121689 1600.0 1387.2 \n", + "2400 6.4 1307.265349 0.076302 1600.0 1383.6 \n", + "\n", + " average_specificity fraction_accuracy \n", + "trial \n", + "0 8.071187 0.988909 \n", + "100 9.754062 0.950000 \n", + "200 10.501500 0.930000 \n", + "300 11.510312 0.921000 \n", + "400 12.503938 0.891000 \n", + "500 13.828375 0.945000 \n", + "600 14.373938 0.896000 \n", + "700 14.841875 0.954000 \n", + "800 15.312750 0.927000 \n", + "900 15.689000 0.924000 \n", + "1000 15.958750 0.897000 \n", + "1100 16.155500 0.902000 \n", + "1200 16.419937 0.945000 \n", + "1300 16.806938 0.915000 \n", + "1400 17.192750 0.924000 \n", + "1500 17.879687 0.922000 \n", + "1600 18.096062 0.951000 \n", + "1700 18.230313 0.942000 \n", + "1800 18.489500 0.955000 \n", + "1900 18.879250 0.959000 \n", + "2000 19.288937 0.907000 \n", + "2100 19.712375 0.909000 \n", + "2200 20.157312 0.901000 \n", + "2300 19.974562 0.901000 \n", + "2400 19.813125 0.901000 " + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracy
trial
017.7800.0000000.3638591600.01448.18.2665000.952294
1006.11311.3440220.1124461600.01401.58.6804380.320000
2005.01405.4120210.0931461600.01393.79.2368750.193000
3009.61452.4190370.1774211600.01394.69.8921250.204000
4003.41549.9591190.0603121600.01404.210.3510620.172000
5005.51270.0336390.1206451600.01403.510.8253750.186000
6005.21285.8047820.0994561600.01406.211.4243750.139000
7009.31222.6948490.1872261600.01406.611.7153120.256000
8008.81266.4596660.1821601600.01403.112.1706250.187000
9007.11334.6229030.1334131600.01402.912.2906250.223000
10004.91386.2458800.1005141600.01405.412.5503120.257000
11005.11339.2793850.0730451600.01407.112.6955620.162000
12006.11276.3832200.1231401600.01409.413.0188750.203000
13007.11300.0711150.1314861600.01403.813.1892500.245000
14006.41343.7399100.1023071600.01405.713.4141880.293000
15008.81235.9659270.1700571600.01401.813.6055000.277000
16006.01430.0467470.1207611600.01399.713.8348750.288000
170012.11189.2752810.2019081600.01398.914.2993120.291000
18005.81343.0987700.1067441600.01396.414.3744370.352000
19008.81305.2139860.1669001600.01397.014.5556250.335000
20005.91359.6236250.1042771600.01392.814.7555620.370000
21007.41197.2128650.1354631600.01389.514.8593130.385000
22007.81275.5211420.1400571600.01390.315.1264370.318000
23004.31356.4407140.0868641600.01395.315.2536880.328000
24005.21449.2273700.1058541600.01391.015.5719370.362000
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 17.7 800.000000 0.363859 1600.0 1448.1 \n", + "100 6.1 1311.344022 0.112446 1600.0 1401.5 \n", + "200 5.0 1405.412021 0.093146 1600.0 1393.7 \n", + "300 9.6 1452.419037 0.177421 1600.0 1394.6 \n", + "400 3.4 1549.959119 0.060312 1600.0 1404.2 \n", + "500 5.5 1270.033639 0.120645 1600.0 1403.5 \n", + "600 5.2 1285.804782 0.099456 1600.0 1406.2 \n", + "700 9.3 1222.694849 0.187226 1600.0 1406.6 \n", + "800 8.8 1266.459666 0.182160 1600.0 1403.1 \n", + "900 7.1 1334.622903 0.133413 1600.0 1402.9 \n", + "1000 4.9 1386.245880 0.100514 1600.0 1405.4 \n", + "1100 5.1 1339.279385 0.073045 1600.0 1407.1 \n", + "1200 6.1 1276.383220 0.123140 1600.0 1409.4 \n", + "1300 7.1 1300.071115 0.131486 1600.0 1403.8 \n", + "1400 6.4 1343.739910 0.102307 1600.0 1405.7 \n", + "1500 8.8 1235.965927 0.170057 1600.0 1401.8 \n", + "1600 6.0 1430.046747 0.120761 1600.0 1399.7 \n", + "1700 12.1 1189.275281 0.201908 1600.0 1398.9 \n", + "1800 5.8 1343.098770 0.106744 1600.0 1396.4 \n", + "1900 8.8 1305.213986 0.166900 1600.0 1397.0 \n", + "2000 5.9 1359.623625 0.104277 1600.0 1392.8 \n", + "2100 7.4 1197.212865 0.135463 1600.0 1389.5 \n", + "2200 7.8 1275.521142 0.140057 1600.0 1390.3 \n", + "2300 4.3 1356.440714 0.086864 1600.0 1395.3 \n", + "2400 5.2 1449.227370 0.105854 1600.0 1391.0 \n", + "\n", + " average_specificity fraction_accuracy \n", + "trial \n", + "0 8.266500 0.952294 \n", + "100 8.680438 0.320000 \n", + "200 9.236875 0.193000 \n", + "300 9.892125 0.204000 \n", + "400 10.351062 0.172000 \n", + "500 10.825375 0.186000 \n", + "600 11.424375 0.139000 \n", + "700 11.715312 0.256000 \n", + "800 12.170625 0.187000 \n", + "900 12.290625 0.223000 \n", + "1000 12.550312 0.257000 \n", + "1100 12.695562 0.162000 \n", + "1200 13.018875 0.203000 \n", + "1300 13.189250 0.245000 \n", + "1400 13.414188 0.293000 \n", + "1500 13.605500 0.277000 \n", + "1600 13.834875 0.288000 \n", + "1700 14.299312 0.291000 \n", + "1800 14.374437 0.352000 \n", + "1900 14.555625 0.335000 \n", + "2000 14.755562 0.370000 \n", + "2100 14.859313 0.385000 \n", + "2200 15.126437 0.318000 \n", + "2300 15.253688 0.328000 \n", + "2400 15.571937 0.362000 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)\n", + "display(df_no_mods)\n", + "display(df_update)\n", + "display(df_cover)\n", + "display(df_both)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/TODOs.ipynb b/XCS_Experiments/TODOs.ipynb new file mode 100644 index 0000000..d8b4f43 --- /dev/null +++ b/XCS_Experiments/TODOs.ipynb @@ -0,0 +1,41 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "applied-topic", + "metadata": {}, + "source": [ + "# TODOs\n", + "\n", + "## XCS\n", + "\n", + "### Bugs\n", + "- There are duplicate classifiers in population. Please ensure that classes implement `__hash__` and `__eq__` methods. It should be unit tested as well\n", + "\n", + "### Enhancements\n", + "- Perform `assert` statements to ensure perception is in valid type" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/XCS_Experiments/Untitled.ipynb b/XCS_Experiments/Untitled.ipynb index c8a631a..bc8fe7d 100644 --- a/XCS_Experiments/Untitled.ipynb +++ b/XCS_Experiments/Untitled.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 120, + "execution_count": 13, "id": "sitting-christmas", "metadata": {}, "outputs": [ @@ -12,12 +12,12 @@ "text": [ "\n", "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" ] } @@ -25,51 +25,14 @@ "source": [ "from utils.xcs_utils import *\n", "\n", - "scenario = MazeScenario(input_size=8)\n", - "scenario.maze.reset()\n", - "scenario.maze.render()" + "env = MazeScenario(input_size=8)\n", + "env.maze.reset()\n", + "env.maze.render()" ] }, { "cell_type": "code", - "execution_count": 121, - "id": "coastal-upper", - "metadata": {}, - "outputs": [], - "source": [ - "from xcs import XCSAlgorithm\n", - "import numpy as np\n", - "\n", - "algorithm = XCSAlgorithm()\n", - "\n", - "algorithm.max_population_size = 1600\n", - "algorithm.learning_rate = .1\n", - "algorithm.error_threshold = .01 # epsilon_0\n", - "algorithm.ga_threshold = 25\n", - "algorithm.crossover_probability = 0.5\n", - "algorithm.mutation_probability = 0.1\n", - "algorithm.initial_prediction = float(np.finfo(np.float32).tiny) # p_I\n", - "algorithm.initial_error = float(np.finfo(np.float32).tiny) # epsilon_I\n", - "algorithm.initial_fitness = float(np.finfo(np.float32).tiny) # F_I\n", - "algorithm.wildcard_probability = 0.0" - ] - }, - { - "cell_type": "code", - "execution_count": 122, - "id": "employed-laser", - "metadata": {}, - "outputs": [], - "source": [ - "model = algorithm.new_model(scenario)\n", - "for i in range(100):\n", - " scenario.reset()\n", - " model.run(scenario, learn=True)" - ] - }, - { - "cell_type": "code", - "execution_count": 123, + "execution_count": 14, "id": "referenced-affiliation", "metadata": {}, "outputs": [], @@ -88,20 +51,19 @@ }, { "cell_type": "code", - "execution_count": 124, + "execution_count": 15, "id": "elementary-punch", "metadata": {}, "outputs": [], "source": [ "from lcs.agents.xcs import Configuration, XCS, GeneticAlgorithm\n", "\n", - "agent = XCS(cfg)\n", - "population, metrics = agent.explore(scenario, 100, False)" + "agent = XCS(cfg)\n" ] }, { "cell_type": "code", - "execution_count": 125, + "execution_count": 16, "id": "productive-recipe", "metadata": {}, "outputs": [], @@ -111,125 +73,62 @@ }, { "cell_type": "code", - "execution_count": 136, + "execution_count": 17, "id": "august-anatomy", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n", - "0.05739385325559033\n" - ] - } - ], + "outputs": [], "source": [ - "average_fitness = sum(cl.fitness for cl in model) / sum(cl.numerosity for cl in model)\n", - "number = 0\n", - "for cl in model:\n", - " if cl.experience > algorithm.deletion_threshold and \\\n", - " cl.fitness / cl.numerosity < \\\n", - " algorithm.fitness_threshold * average_fitness:\n", - " number += cl.numerosity\n", - " print(str(cl) + f\" {population._deletion_vote(cl, average_fitness)}\")\n", - "print(number)\n", - "print(average_fitness)" + "prev_action_set = None\n", + "prev_reward = agent.reward\n", + "prev_state = None # state is known as situation\n", + "prev_time_stamp = agent.time_stamp # steps\n", + "done = False # eop\n", + "\n", + "raw_state = env.reset()\n", + "state = agent.cfg.environment_adapter.to_genotype(raw_state)" ] }, { - "cell_type": "code", - "execution_count": 139, - "id": "isolated-chile", + "cell_type": "markdown", + "id": "freelance-austin", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0\n", - "0.05487554256814123\n" - ] - } - ], "source": [ - "average_fitness = sum(cl.fitness for cl in population) / sum(cl.numerosity for cl in population)\n", - "number = 0\n", - "for cl in population:\n", - " if cl.experience > cfg.deletion_threshold and \\\n", - " cl.fitness / cl.numerosity < \\\n", - " cfg.delta * average_fitness:\n", - " number += cl.numerosity\n", - " print(str(cl) + f\" {population._deletion_vote(cl, average_fitness)}\")\n", - "print(number)\n", - "print(average_fitness)" + "Main Loop" + ] + }, + { + "cell_type": "markdown", + "id": "potential-plaza", + "metadata": {}, + "source": [ + "Before Update Set" ] }, { "cell_type": "code", - "execution_count": 135, - "id": "welcome-instrument", + "execution_count": 20, + "id": "theoretical-projector", "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Cond:09#1##1# - Act:6 - Num:2 [fit: 0.491, exp: 14.00, pred: 155.252]\n", - "Cond:0901#01# - Act:4 - Num:1 [fit: 0.274, exp: 5.00, pred: 142.435]\n", - "Cond:119#01#1 - Act:0 - Num:1 [fit: 0.308, exp: 7.00, pred: 133.162]\n", - "Cond:11900101 - Act:1 - Num:4 [fit: 0.285, exp: 5.00, pred: 129.223]\n", - "Cond:1#900101 - Act:4 - Num:2 [fit: 0.455, exp: 10.00, pred: 144.590]\n", - "Cond:11001111 - Act:0 - Num:1 [fit: 0.256, exp: 4.00, pred: 153.930]\n", - "Cond:1#011##0 - Act:3 - Num:6 [fit: 0.405, exp: 21.00, pred: 191.785]\n", - "Cond:10#1#10# - Act:4 - Num:5 [fit: 0.283, exp: 72.00, pred: 221.712]\n", - "Cond:0#010#1# - Act:3 - Num:4 [fit: 0.531, exp: 14.00, pred: 160.401]\n", - "Cond:11001#11 - Act:1 - Num:2 [fit: 0.494, exp: 43.00, pred: 153.595]\n", - "Cond:0#1#0010 - Act:0 - Num:4 [fit: 0.239, exp: 2.00, pred: 167.607]\n", - "Cond:01110100 - Act:6 - Num:1 [fit: 0.331, exp: 6.00, pred: 150.775]\n", - "Cond:#100000# - Act:2 - Num:1 [fit: 0.441, exp: 9.00, pred: 154.946]\n", - "Cond:09010010 - Act:1 - Num:3 [fit: 0.212, exp: 4.00, pred: 136.754]\n", - "Cond:10101000 - Act:5 - Num:1 [fit: 0.306, exp: 5.00, pred: 153.101]\n", - "Cond:11001111 - Act:4 - Num:5 [fit: 0.384, exp: 14.00, pred: 151.107]\n", - "Cond:000#1000 - Act:1 - Num:4 [fit: 0.228, exp: 4.00, pred: 149.296]\n", - "Cond:10000010 - Act:3 - Num:1 [fit: 0.380, exp: 7.00, pred: 158.779]\n", - "Cond:##000000 - Act:5 - Num:1 [fit: 0.575, exp: 15.00, pred: 174.065]\n", - "Cond:#010#01# - Act:1 - Num:1 [fit: 0.216, exp: 9.00, pred: 166.332]\n", - "Cond:0001#010 - Act:0 - Num:4 [fit: 0.212, exp: 4.00, pred: 132.836]\n", - "Cond:00000101 - Act:1 - Num:6 [fit: 0.227, exp: 5.00, pred: 149.043]\n", - "Cond:1#1#0101 - Act:1 - Num:1 [fit: 0.217, exp: 4.00, pred: 148.928]\n", - "Cond:01111110 - Act:0 - Num:3 [fit: 0.225, exp: 5.00, pred: 138.989]\n", - "Cond:01011101 - Act:0 - Num:3 [fit: 0.290, exp: 5.00, pred: 163.930]\n", - "Cond:00#11101 - Act:2 - Num:5 [fit: 0.240, exp: 4.00, pred: 187.022]\n", - "Cond:0011110# - Act:7 - Num:2 [fit: 0.240, exp: 4.00, pred: 180.617]\n", - "Cond:10101#0# - Act:6 - Num:4 [fit: 0.225, exp: 4.00, pred: 151.885]\n", - "Cond:0010000# - Act:7 - Num:3 [fit: 0.261, exp: 7.00, pred: 143.091]\n", - "Cond:1#00##11 - Act:5 - Num:3 [fit: 0.485, exp: 11.00, pred: 167.041]\n", - "Cond:011#0100 - Act:7 - Num:7 [fit: 0.385, exp: 9.00, pred: 167.215]\n", - "Cond:10100#1# - Act:1 - Num:3 [fit: 0.262, exp: 9.00, pred: 174.929]\n", - "Cond:10001000 - Act:3 - Num:1 [fit: 0.345, exp: 6.00, pred: 166.836]\n", - "Cond:00#010## - Act:4 - Num:8 [fit: 0.745, exp: 42.00, pred: 211.002]\n", - "Cond:0#0#00## - Act:5 - Num:7 [fit: 0.378, exp: 28.00, pred: 218.349]\n", - "Cond:1#00001# - Act:1 - Num:3 [fit: 0.314, exp: 6.00, pred: 196.347]\n", - "Cond:001#00## - Act:6 - Num:3 [fit: 0.312, exp: 7.00, pred: 179.387]\n", - "Cond:100111## - Act:7 - Num:4 [fit: 0.349, exp: 6.00, pred: 175.641]\n", - "Cond:0#01##01 - Act:2 - Num:8 [fit: 0.454, exp: 13.00, pred: 206.904]\n", - "Cond:1#001000 - Act:2 - Num:6 [fit: 0.288, exp: 5.00, pred: 158.223]\n", - "Cond:10011#00 - Act:5 - Num:8 [fit: 0.544, exp: 45.00, pred: 239.238]\n", - "Cond:01111110 - Act:4 - Num:3 [fit: 0.337, exp: 6.00, pred: 198.607]\n" - ] - } - ], + "outputs": [], "source": [ - "for cl in population:\n", - " if cl.fitness > 0.2:\n", - " print(cl)" + "assert len(agent.population) == len(set(agent.population)), 'duplicates found'\n", + "agent.population.delete_from_population()\n", + "# We are in t+1 here\n", + "match_set = agent.population.generate_match_set(state, agent.time_stamp)\n", + "prediction_array = match_set.prediction_array\n", + "action = agent.select_action(prediction_array, match_set)\n", + "action_set = match_set.generate_action_set(action)\n", + "# apply action to environment\n", + "raw_state, step_reward, done, _ = env.step(action)\n", + "state = agent.cfg.environment_adapter.to_genotype(raw_state)\n", + "if agent.cfg.multistep_enfiroment:\n", + " agent.reward = step_reward + agent.cfg.gamma * agent.reward" ] }, { "cell_type": "code", "execution_count": null, - "id": "theoretical-projector", + "id": "patient-circle", "metadata": {}, "outputs": [], "source": [] diff --git a/XCS_Experiments/XCS_Woods14.ipynb b/XCS_Experiments/XCS_Woods14.ipynb deleted file mode 100644 index 828b6ed..0000000 --- a/XCS_Experiments/XCS_Woods14.ipynb +++ /dev/null @@ -1,988 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### XCS in Woods 14\n", - "This experiment is meant to replicate An Analysis of Generalization in the XCS Classifier System Wood14." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "# logging \n", - "import logging\n", - "logging.basicConfig(level=logging.INFO)\n", - "logger = logging.getLogger(__name__)\n", - "\n", - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "# environment setup\n", - "import gym\n", - "# noinspection PyUnresolvedReferences\n", - "import gym_woods\n", - "\n", - "from lcs.agents.xcs import XCS, Configuration\n", - "from utils.xcs_utils import *" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "This is how maze looks like\n", - "\n", - "['O', '.', 'O', 'O', 'O', 'O', 'O', '.']\n", - "\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[36mX\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" - ] - } - ], - "source": [ - "maze = gym.make('Woods14-v0')\n", - "print(\"This is how maze looks like\")\n", - "situation = maze.reset()\n", - "print(type(situation))\n", - "print(situation)\n", - "maze.render()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1.037974421223061e-39, 1.3811668391239166e-39, 4.743284897453585e-40, 8.427625049828095e-40, 4.9040799504779394e-40, 6.360142394400049e-40, 5.74833545997614e-40, 5.794008388850102e-40], 'perf_time': 0.008311100000014449, 'population': 22, 'numerosity': 34}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 39, 'reward': [45.62688511001911, 24.65264632781858, 69.71440602604133, 33.48549285716045, 132.29225127415492, 23.932899413536067, 20.843934916434943, 34.47138563876378], 'perf_time': 0.007223899999985406, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 33, 'reward': [3.220456191415282, 9.92814748808112, 4.112510812691084, 2.743064069262731, 174.96981918912746, 1.1537750884676645, 7.264657793639873, 11.13702582525597], 'perf_time': 0.005953700000077333, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [2.6129229611939935, 0.6885595220082213, 0.6388137758574041, 1.7831039605040246, 0.6498976118144542, 0.35636649172076595, 1.189283395832308, 2.1548006624901492], 'perf_time': 0.010602599999970153, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [4.561798338703012, 7.976495553332628, 6.040540379748306, 2.7024540638523193, 1.1838628714230746, 4.785636634461957, 3.3121319352152696, 6.530033692930798], 'perf_time': 0.009622599999943304, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [17.189363439597887, 21.582805600788223, 24.253942717311453, 22.20976876942049, 43.66215304226052, 31.79177698534904, 30.285003744778276, 20.954059972234173], 'perf_time': 0.011413700000048266, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 38, 'reward': [0.008177267329437075, 0.003049037930840016, 0.020059738127996444, 0.011347265941351442, 134.87926302741408, 0.008409396368009834, 0.011881927504629027, 0.0026886003009870055], 'perf_time': 0.0074392000000216285, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [4.499814998100431, 3.7428859375115064, 2.7694567052231474, 4.218759494387161, 2.4582955879676915, 2.9010873903878833, 8.04341538729884, 3.313345634162528], 'perf_time': 0.009152400000061789, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [7.894104386222416, 19.978740726646098, 13.148951859605885, 10.851406625126646, 13.446902936343951, 22.59786572945428, 18.9533692679586, 11.266121956405497], 'perf_time': 0.01003590000004806, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [2.7963862155460952, 0.646223862345905, 1.9040958701691229, 1.5810713837397004, 7.441188934826968, 2.640657982617686, 1.4129210458398807, 2.1549475524740958], 'perf_time': 0.009897600000044804, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0.010607588675105322, 0, 32.54802111790262, 0.021638441640725474, 0.04254103965713113, 0, 0.0140382730537614, 0.03170668403282718], 'perf_time': 0.009730399999966721, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [1.6219052966378182, 10.408258406986295, 3.2346034407973745, 91.03777139555879, 1.504789114372506, 3.563587099165516, 3.7706528276818227, 53.203527678434796], 'perf_time': 0.00994089999994685, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [1.6219052966378182, 10.408258406986295, 3.2346034407973745, 79.82999665294219, 1.504789114372506, 3.563587099165516, 3.7706528276818227, 53.203527678434796], 'perf_time': 0.009582099999988714, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [1.6219052966378182, 10.408258406986295, 3.2346034407973745, 89.61468990620988, 1.504789114372506, 3.563587099165516, 3.7706528276818227, 53.203527678434796], 'perf_time': 0.010597300000085852, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [1.6219052966378182, 10.408258406986295, 3.2346034407973745, 83.88114797033472, 1.504789114372506, 3.563587099165516, 3.7706528276818227, 53.203527678434796], 'perf_time': 0.00914419999992333, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [1.6219052966378182, 10.408258406986295, 3.2346034407973745, 87.81727871752328, 1.504789114372506, 3.563587099165516, 3.7706528276818227, 53.203527678434796], 'perf_time': 0.009018299999979718, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [1.6219052966378182, 10.408258406986295, 3.2346034407973745, 75.19798523567525, 1.504789114372506, 3.563587099165516, 3.7706528276818227, 53.203527678434796], 'perf_time': 0.010300400000005538, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [1.6219052966378182, 10.408258406986295, 3.2346034407973745, 74.08331238945873, 1.504789114372506, 3.563587099165516, 3.7706528276818227, 53.203527678434796], 'perf_time': 0.009808700000007775, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [1.6219052966378182, 10.408258406986295, 3.2346034407973745, 79.79516376457839, 1.504789114372506, 3.563587099165516, 3.7706528276818227, 53.203527678434796], 'perf_time': 0.00949219999995421, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [1.6219052966378182, 10.408258406986295, 3.2346034407973745, 83.86759500123809, 1.504789114372506, 3.563587099165516, 3.7706528276818227, 53.203527678434796], 'perf_time': 0.008407900000065638, 'population': 39, 'numerosity': 93}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [4.161435231925307e-40, 5.497064506449981e-40, 1.638525502805833e-39, 1.4431673970611261e-39, 8.065446477666684e-40, 1.0599542796023716e-39, 8.774994635375696e-40, 4.096629810724532e-40], 'perf_time': 0.008155600000009144, 'population': 26, 'numerosity': 40}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 1 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [31.01859386339691, 29.280844376819605, 45.312862905584964, 46.075761192696504, 31.563009603356424, 31.12552018934445, 35.6186426129946, 27.6559307673806], 'perf_time': 0.008754699999940385, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [29.412140558641052, 42.73778987270194, 41.71977958084137, 28.01291685294351, 52.23448325188899, 8.544501441932566, 19.316480672379328, 30.39823720729711], 'perf_time': 0.00957139999991341, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [0.0019199938807130494, 0.0037828555372954086, 0.0072771337110828825, 0.003998650643247491, 0.004987213574883908, 0.0028764453788490433, 0.004191032881978518, 0.01671823397868697], 'perf_time': 0.010111800000004223, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 24, 'reward': [20.24273567206124, 32.83621250737017, 42.14218822369938, 47.47942157848022, 128.48137524414358, 40.80567163517227, 46.58922552642814, 32.11837845548525], 'perf_time': 0.004822199999921395, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [78.73096444457778, 41.958507135241454, 63.70882035831947, 52.69785369725474, 47.56096844822941, 45.92928375429361, 43.41929851626476, 52.83648160411849], 'perf_time': 0.008939300000065487, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 7, 'reward': [45.43762084741651, 44.005108675787056, 12.578382507215643, 45.32567887161702, 173.05075853444038, 40.638351823003006, 48.953663172192066, 20.820988844104704], 'perf_time': 0.0012310000000752552, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [37.607229449697805, 24.450768768202067, 32.89142450864941, 34.01628869430279, 40.04344054017581, 44.45569018439293, 27.515884378020658, 29.85940847777885], 'perf_time': 0.009089000000017222, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [26.604816625428317, 31.541771936228997, 37.32439084082199, 32.65380339427949, 32.1133792718127, 25.311641734571293, 41.67678506115193, 31.77932351985052], 'perf_time': 0.00880240000003596, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [13.076225855708433, 22.2827195017787, 15.405623880249724, 17.559077252978483, 8.771074871779817, 17.406326173534154, 5.211307612113859, 11.246904889908519], 'perf_time': 0.010975499999972271, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 0, 0, 9.93789910043482, 0, 6.341174705699386, 6.76332651243542, 0], 'perf_time': 0.009156099999927392, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [68.0497448102827, 67.92296986039143, 13.284574547928269, 3.7420029948057216, 6.106483890080645, 9.083600200410615, 14.419046332587383, 47.75410340565155], 'perf_time': 0.009517899999991641, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [77.68053227427977, 69.67581584538718, 13.284574547928269, 3.7420029948057216, 6.106483890080645, 9.083600200410615, 14.419046332587383, 50.79792797298046], 'perf_time': 0.008583400000020447, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [80.22086953526141, 55.58627331649562, 13.284574547928269, 3.7420029948057216, 6.106483890080645, 9.083600200410615, 14.419046332587383, 47.85610349329186], 'perf_time': 0.01002019999998538, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [118.5500299225648, 48.4481728305378, 13.284574547928269, 3.7420029948057216, 6.106483890080645, 9.083600200410615, 14.419046332587383, 42.71689271603981], 'perf_time': 0.009466699999961747, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [108.34402098706973, 41.648025976726714, 13.284574547928269, 3.7420029948057216, 6.106483890080645, 9.083600200410615, 14.419046332587383, 43.64392469856966], 'perf_time': 0.008651699999973061, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [89.60451902795947, 48.57320791268491, 13.284574547928269, 3.7420029948057216, 6.106483890080645, 9.083600200410615, 14.419046332587383, 16.04263816357685], 'perf_time': 0.008730300000024727, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [96.36938722281518, 41.59815728898479, 13.284574547928269, 3.7420029948057216, 6.106483890080645, 9.083600200410615, 14.419046332587383, 12.816308936345907], 'perf_time': 0.008981100000028164, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [68.09615933547643, 68.90600053842847, 13.284574547928269, 3.7420029948057216, 6.106483890080645, 9.083600200410615, 14.419046332587383, 39.50988151769401], 'perf_time': 0.008861200000069402, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [118.17050181956286, 34.35053173399761, 13.284574547928269, 3.7420029948057216, 6.106483890080645, 9.083600200410615, 14.419046332587383, 56.580367438193406], 'perf_time': 0.00871919999997317, 'population': 36, 'numerosity': 84}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [6.423394459550544e-40, 4.774137998215837e-40, 5.9415672240600726e-40, 9.541814563786993e-40, 4.53671536106319e-40, 1.6591847441425705e-40, 4.991047141837912e-40, 4.842725630700961e-40], 'perf_time': 0.013963800000055926, 'population': 22, 'numerosity': 40}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 2 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 19, 'reward': [0.05518782614788088, 0.15612537244290817, 0.17487869035155273, 0.057928187529733575, 181.22546098498657, 0.024851986919481275, 0.04249907142089546, 0.032363766148109714], 'perf_time': 0.003667699999937213, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [28.974666206855137, 22.248738339628638, 25.957460308774653, 33.40665922320737, 49.83040289493914, 23.361818985296054, 15.86988002469655, 21.54824440946298], 'perf_time': 0.009631199999944329, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [41.180088412477545, 50.430387171466585, 23.357918468201653, 36.50866366146943, 27.399860173666557, 37.84922408152675, 27.603348891645364, 19.173881697881452], 'perf_time': 0.009184199999936027, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 37, 'reward': [6.05379108956216, 1.7699165465552855, 3.6748813245246827, 7.032924521474072, 108.37370353127314, 2.4023718044859, 5.242789605695479, 3.251088971668849], 'perf_time': 0.007730200000082732, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [20.031063922115454, 18.360530733031794, 14.017956797604121, 23.871931588534505, 40.07819158704696, 11.37672530804348, 18.728524275076616, 21.587152128246217], 'perf_time': 0.009213000000045213, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 31, 'reward': [24.039721282623606, 9.389116388261362, 21.080669649953002, 10.662565677732152, 109.39475105623289, 22.51527848169941, 12.490202595241783, 20.670464086450206], 'perf_time': 0.00577310000005582, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [0.4031403816505482, 0.432678697273348, 0.5950411994976291, 0.3484126349283221, 0.45228911437389036, 0.2954302253079928, 0.46507111571268367, 0.45321692335780867], 'perf_time': 0.010562700000036784, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [15.827791669411294, 31.86693677223088, 13.309101941123654, 32.346911697379824, 20.90844750132043, 14.383088718779796, 15.44592941573448, 17.076449137013228], 'perf_time': 0.009272600000031161, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [2.7337408923240405, 2.4527924769091936, 0.23660160753065468, 4.115582996224342, 2.9621634253807407, 5.2823555995189855, 0.8988834256307692, 1.066303719731843], 'perf_time': 0.01027759999999489, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0.06310783372539402, 0.14579070819931617, 0.09001169968200937, 0.2561620293748092, 0.05960827920474363, 0.1825191654238156, 0.1589508294868141, 0.1825191654238156], 'perf_time': 0.009565100000031634, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [53.938971095606604, 13.950011109987033, 16.50131453645058, 26.476768734225786, 7.209299685398698, 44.67271778180184, 43.749314661871, 5.471489063867958], 'perf_time': 0.01071260000003349, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [45.668559469302494, 13.950011109987033, 16.50131453645058, 26.476768734225786, 7.209299685398698, 52.542507995445234, 43.749314661871, 5.471489063867958], 'perf_time': 0.00955629999998564, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [23.082192602614903, 13.950011109987033, 16.50131453645058, 26.476768734225786, 7.209299685398698, 55.0828720823975, 43.749314661871, 5.471489063867958], 'perf_time': 0.008929200000011406, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [59.222554457360175, 13.950011109987033, 16.50131453645058, 26.476768734225786, 7.209299685398698, 48.12793130302385, 43.749314661871, 5.471489063867958], 'perf_time': 0.010751299999924413, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [49.06031211791605, 13.950011109987033, 16.50131453645058, 26.476768734225786, 7.209299685398698, 16.80703453812348, 43.749314661871, 5.471489063867958], 'perf_time': 0.009292899999991278, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [23.093837074482654, 13.950011109987033, 16.50131453645058, 26.476768734225786, 7.209299685398698, 18.688878850327225, 43.749314661871, 5.471489063867958], 'perf_time': 0.009303299999942283, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [50.77050045560497, 13.950011109987033, 16.50131453645058, 26.476768734225786, 7.209299685398698, 16.494863183973354, 43.749314661871, 5.471489063867958], 'perf_time': 0.009230000000002292, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [53.73967608365078, 13.950011109987033, 16.50131453645058, 26.476768734225786, 7.209299685398698, 16.169805800827145, 43.749314661871, 5.471489063867958], 'perf_time': 0.008886400000051253, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [56.28571820110303, 13.950011109987033, 16.50131453645058, 26.476768734225786, 7.209299685398698, 16.808638432255346, 43.749314661871, 5.471489063867958], 'perf_time': 0.009136000000012245, 'population': 41, 'numerosity': 91}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1.6680251876731485e-40, 9.3102403808897e-41, 7.305279163403543e-40, 7.488598131859543e-40, 5.272374582107821e-40, 8.496455737483442e-40, 4.350614281639501e-40, 6.259920135319686e-40], 'perf_time': 0.00901469999996607, 'population': 27, 'numerosity': 35}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 3 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [15.015035455569754, 4.4799430105407545, 4.281367009887069, 22.33332461556725, 36.98607115880863, 9.058256230230224, 7.98358034668144, 16.841783579300394], 'perf_time': 0.008112600000004022, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [33.91258915587706, 44.133826726962745, 45.20914855650527, 26.098231712831826, 27.902623039251676, 49.278461123279484, 59.70153344750345, 48.67398607581925], 'perf_time': 0.00832130000003417, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [16.70982044992665, 5.791036922891073, 5.8917568193377425, 7.3807138778845855, 71.85471289357164, 21.411873561959524, 6.310625602904876, 6.991734695358169], 'perf_time': 0.008373499999947853, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [16.99044239180691, 8.567958903355102, 10.016563326879142, 13.070209748924565, 12.580052167563771, 53.255462140131456, 5.856170601131401, 11.714049625458816], 'perf_time': 0.00810660000001917, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [44.09442019815105, 37.30660898159938, 45.294449832277344, 26.5814238793896, 36.68218753717062, 25.124063811712876, 42.687944943254955, 35.45382509424199], 'perf_time': 0.008229099999994105, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 39, 'reward': [25.26986082051023, 5.0091234119005055, 8.87054982386807, 2.811047079325665, 153.39485936836633, 36.252148742646135, 5.158885656446778, 7.329431813421863], 'perf_time': 0.006758500000046297, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [0.13926008486206806, 0.2560187684988534, 0.2302282555618891, 0.22330888465507745, 1.408108980555288, 0.8571052081689308, 0.2585044211337935, 0.1735095380099353], 'perf_time': 0.008277599999928498, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [24.673950651513646, 27.798318272588066, 46.450436199344125, 10.577591165287409, 12.99809890540062, 8.106146670130068, 14.466728498964681, 38.07697729865931], 'perf_time': 0.008363300000041818, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [27.530309841194466, 39.06941454336258, 33.44314539243589, 46.08242889631896, 39.67371096606625, 29.819629925885575, 25.976699814191072, 43.848374630390154], 'perf_time': 0.009417399999961162, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [2.07246222339914, 5.393921488417127, 3.927148667584685, 1.0656315425444531, 0, 0, 1.1085735520166122, 4.951770675908667], 'perf_time': 0.00785079999991467, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [69.98700176476487, 14.855222591514611, 2.73490155201514, 41.57999345446532, 2.357615546068941, 49.407218345026045, 63.94348288866238, 16.110615414999977], 'perf_time': 0.009519400000044698, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [25.933228687101494, 14.855222591514611, 2.73490155201514, 59.97201282365579, 2.357615546068941, 90.04111445468881, 48.59964435959844, 16.110615414999977], 'perf_time': 0.008703400000058537, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [42.68813387465105, 14.855222591514611, 2.73490155201514, 32.46789868128523, 2.357615546068941, 91.74027853986848, 48.59964435959844, 16.110615414999977], 'perf_time': 0.008736499999940861, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [42.68813387465105, 14.855222591514611, 2.73490155201514, 44.084550500339255, 2.357615546068941, 121.31406472210897, 48.59964435959844, 16.110615414999977], 'perf_time': 0.011682800000016869, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [42.68813387465105, 14.855222591514611, 2.73490155201514, 56.36149465645126, 2.357615546068941, 118.74229852968865, 48.59964435959844, 16.110615414999977], 'perf_time': 0.008930700000064462, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [42.68813387465105, 14.855222591514611, 2.73490155201514, 44.22449263219497, 2.357615546068941, 77.43386573339848, 48.59964435959844, 16.110615414999977], 'perf_time': 0.00887719999991532, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [42.68813387465105, 14.855222591514611, 2.73490155201514, 58.088580856616296, 2.357615546068941, 85.18722737027937, 48.59964435959844, 16.110615414999977], 'perf_time': 0.009737200000017765, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [42.68813387465105, 14.855222591514611, 2.73490155201514, 70.46330229650354, 2.357615546068941, 124.26517389448966, 48.59964435959844, 16.110615414999977], 'perf_time': 0.007882099999960701, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [42.68813387465105, 14.855222591514611, 2.73490155201514, 68.74806541871872, 2.357615546068941, 78.33466290325697, 48.59964435959844, 16.110615414999977], 'perf_time': 0.008130599999958577, 'population': 31, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [3.083083718868663e-40, 6.580097193127201e-40, 4.14079069246555e-40, 9.949593581961392e-40, 6.868431146837368e-40, 1.7239492450593113e-39, 3.4659151178490405e-40, 2.1079294043075004e-40], 'perf_time': 0.007823799999982839, 'population': 24, 'numerosity': 32}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 4 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [19.981928566227893, 5.056901272456565, 9.087391554107331, 7.620246508473885, 2.500511431207912, 6.274340516413562, 15.86385361766895, 14.444024566710654], 'perf_time': 0.009161199999994096, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 47, 'reward': [3.9332703997369842, 9.124205627395753, 1.4691936530838796, 6.487559337061597, 179.99574767610576, 1.7795889681303543, 23.249774257424715, 25.399749098170094], 'perf_time': 0.009304499999984728, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [49.20406741772903, 68.26231532144448, 60.034789417972235, 57.734566201614854, 53.79068551739111, 78.81427488976954, 46.69959442099553, 67.08705380547293], 'perf_time': 0.00855320000005122, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [0.5405204253050658, 0.9044747708350459, 0.007817499427214865, 0.208498292463218, 0.12844353577394949, 0.03383212936784979, 0.13861296867024003, 0.042702403064933316], 'perf_time': 0.008504600000037499, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [25.202405771958016, 44.730128884801225, 42.56976241343793, 41.1890474974387, 44.47080595138512, 42.222679314504376, 31.333990870720868, 41.24639736292323], 'perf_time': 0.008931599999982609, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 17, 'reward': [27.776276103014055, 27.803093039570374, 29.23522920543759, 23.00737305104351, 206.05947214176544, 35.98109940256937, 30.82596913584255, 42.33054034494813], 'perf_time': 0.002862599999957638, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [0.1940827749882614, 0.19666582984913977, 0.03645088382436098, 0.05638523207745494, 0.027780086844943045, 0.08184908624447257, 0.0869329238467635, 0.1738835657976135], 'perf_time': 0.008538400000020374, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [33.68537964899619, 10.932389241916889, 37.256947010643195, 42.51425837589619, 45.82904670473679, 24.781741598044142, 37.833592547691055, 31.39483871251346], 'perf_time': 0.008487800000011703, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [0.2590447967570739, 1.1210614036323276, 0.6961752313161891, 0.34343495021821585, 1.0619375220118548, 0.7242284231155995, 0.28259360974027053, 0.24941299633649947], 'perf_time': 0.008078100000034283, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1.1679467100848666, 0.04166325292132105, 0.057498177269804926, 0.38790932583563853, 0, 1.7016837145196098, 1.88368098866827, 0.6311318141305307], 'perf_time': 0.009198200000014367, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [0.10804068841919777, 81.06047918127821, 10.191432810634803, 0.5306120432619161, 33.57764508288707, 0.7632722591869125, 0.004198925747995527, 10.485939858909845], 'perf_time': 0.009498699999994642, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [0.10804068841919777, 78.56261368640342, 10.191432810634803, 0.5306120432619161, 33.57764508288707, 0.7632722591869125, 0.004198925747995527, 10.485939858909845], 'perf_time': 0.008577200000104312, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [0.10804068841919777, 80.76658842906286, 10.191432810634803, 0.5306120432619161, 33.57764508288707, 0.7632722591869125, 0.004198925747995527, 10.485939858909845], 'perf_time': 0.008532699999932447, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [0.10804068841919777, 80.47281037434709, 10.191432810634803, 0.5306120432619161, 33.57764508288707, 0.7632722591869125, 0.004198925747995527, 10.485939858909845], 'perf_time': 0.00957749999997759, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [0.10804068841919777, 73.86991056861162, 10.191432810634803, 0.5306120432619161, 33.57764508288707, 0.7632722591869125, 0.004198925747995527, 10.485939858909845], 'perf_time': 0.008600500000056854, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [0.10804068841919777, 80.84639937986509, 10.191432810634803, 0.5306120432619161, 33.57764508288707, 0.7632722591869125, 0.004198925747995527, 10.485939858909845], 'perf_time': 0.008353600000077677, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [0.10804068841919777, 77.63861378678337, 10.191432810634803, 0.5306120432619161, 33.57764508288707, 0.7632722591869125, 0.004198925747995527, 10.485939858909845], 'perf_time': 0.008245799999940573, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [0.10804068841919777, 77.74999046571897, 10.191432810634803, 0.5306120432619161, 33.57764508288707, 0.7632722591869125, 0.004198925747995527, 10.485939858909845], 'perf_time': 0.008143700000005083, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [0.10804068841919777, 75.82865001498054, 10.191432810634803, 0.5306120432619161, 33.57764508288707, 0.7632722591869125, 0.004198925747995527, 10.485939858909845], 'perf_time': 0.009540300000026036, 'population': 33, 'numerosity': 71}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1.3255918928211875e-40, 7.871527212608075e-40, 9.067705998121087e-40, 9.454894544762272e-40, 8.812794635223798e-40, 8.480910155133665e-40, 4.709905643680269e-40, 6.429960105893127e-40], 'perf_time': 0.008079799999904935, 'population': 24, 'numerosity': 40}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 5 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [25.302155945462953, 22.23339119485686, 30.19443433349723, 23.721794657937643, 11.686932151861505, 14.58758118700718, 26.769844973759387, 19.633148276230873], 'perf_time': 0.008057300000018586, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [44.085119837624816, 37.65569714036058, 54.635383576659066, 55.33364402091008, 33.419587275473695, 32.543045293153355, 38.933369429156116, 15.944654226661077], 'perf_time': 0.007950199999982033, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [6.888634407864771, 2.4280309075728796, 2.122055650021092, 5.70203771752469, 86.6750886142085, 3.894194290636896, 4.5701972326972, 12.84231437291551], 'perf_time': 0.00804029999994782, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [30.06831147077629, 14.831335056047907, 11.534115610774391, 18.074722448144687, 98.10217124952305, 19.94310055739655, 24.71347136661244, 23.02033045361635], 'perf_time': 0.008352900000090813, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [1.067285390972463, 0.12648264431919512, 0.280994996702117, 0.7327532410989879, 3.1048678506503515, 0.2716199895424331, 0.3808452049385226, 2.495752370835221], 'perf_time': 0.007999700000027588, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [12.283855108019418, 50.45310427330399, 3.400718514230032, 10.695668025852095, 35.30540243264073, 49.64354652425575, 35.81576605425079, 17.385955031376554], 'perf_time': 0.007864399999903071, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [1.8507908523190615, 15.497093748936495, 6.9887083751279935, 1.164637335622989, 5.933578886192223, 2.45314411739292, 15.65659493746977, 1.1799481849994768], 'perf_time': 0.008114699999964614, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 16, 'reward': [2.2987950880392787, 0.14663514347352025, 0.6727260743248754, 0.9104273794656756, 111.44510549207608, 2.1975225661043667, 0.6159499947843896, 5.912915795467072], 'perf_time': 0.003053899999940768, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [0.24390652574187474, 0.027851464773742056, 0.00485030482699583, 0.11066992349269164, 59.29035761425196, 0.01252663239847275, 0.07365810221095381, 0.7059631989568194], 'perf_time': 0.008117700000070727, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 0, 0, 65.10944386597009, 0, 0, 0, 0], 'perf_time': 0.008188499999960186, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [4.92868213436107, 61.83898561144966, 6.267948547450667, 19.445101479058266, 7.26279268521551, 0.9424855863550213, 10.815813675780824, 19.70195752648435], 'perf_time': 0.007805699999948956, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [4.92868213436107, 63.40492244035077, 6.267948547450667, 19.445101479058266, 7.26279268521551, 0.9424855863550213, 10.815813675780824, 19.70195752648435], 'perf_time': 0.007781300000033298, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [4.92868213436107, 55.245083420779274, 6.267948547450667, 19.445101479058266, 7.26279268521551, 0.9424855863550213, 10.815813675780824, 19.70195752648435], 'perf_time': 0.00945000000001528, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [4.92868213436107, 39.72990309682561, 6.267948547450667, 19.445101479058266, 7.26279268521551, 0.9424855863550213, 10.815813675780824, 19.70195752648435], 'perf_time': 0.00866910000002008, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [4.92868213436107, 47.81481965116246, 6.267948547450667, 19.445101479058266, 7.26279268521551, 0.9424855863550213, 10.815813675780824, 19.70195752648435], 'perf_time': 0.007947100000023966, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [4.92868213436107, 39.28703249071412, 6.267948547450667, 19.445101479058266, 7.26279268521551, 0.9424855863550213, 10.815813675780824, 19.70195752648435], 'perf_time': 0.007711500000027627, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [4.92868213436107, 39.23255197980241, 6.267948547450667, 19.445101479058266, 7.26279268521551, 0.9424855863550213, 10.815813675780824, 19.70195752648435], 'perf_time': 0.008230799999978444, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [4.92868213436107, 56.42670319063459, 6.267948547450667, 19.445101479058266, 7.26279268521551, 0.9424855863550213, 10.815813675780824, 19.70195752648435], 'perf_time': 0.007766500000002452, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [4.92868213436107, 52.10612581790067, 6.267948547450667, 19.445101479058266, 7.26279268521551, 0.9424855863550213, 10.815813675780824, 19.70195752648435], 'perf_time': 0.007940500000017892, 'population': 30, 'numerosity': 70}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [4.374568809732076e-40, 7.852117766980272e-40, 9.509655907174408e-40, 2.858076260018218e-40, 1.660829522376174e-39, 4.056827894322174e-40, 7.876951946866351e-40, 1.1172632287324071e-39], 'perf_time': 0.00801709999996092, 'population': 16, 'numerosity': 30}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 6 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [50.45306531964878, 43.902948763595404, 44.98743839774874, 37.53865542455932, 21.341607036590144, 32.185736774844365, 36.091570242739664, 40.50313433844498], 'perf_time': 0.008569899999997688, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [0.0007832857632026353, 0.0004807668546885763, 0.005628552300677354, 0.000630326361911509, 0.000827431918402983, 0.0028431053607578262, 0.00024854847394974763, 0.0007492376795459727], 'perf_time': 0.008871200000044155, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [27.214031636885156, 15.043653803613731, 24.525719602922386, 19.7500869835429, 23.488683553190913, 20.347310724361208, 23.733834429145112, 16.239953240100316], 'perf_time': 0.008008000000018, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [7.705720560110251, 3.5502961150505126, 5.825907983351767, 3.909481160362337, 10.888894578401397, 4.364547095428378, 11.327767549037828, 4.338836929468766], 'perf_time': 0.007820899999956055, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [41.122999574095715, 44.03591263116308, 40.69432091672833, 40.18337376611526, 62.578970520470435, 38.41318950594646, 45.925147822276166, 37.782194755110744], 'perf_time': 0.008274000000028536, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [0.03299987514192507, 0.07065739184507942, 0.08612813528748701, 0.0819164146363407, 0.04648898260966737, 0.18566518761292797, 0.11039189786827801, 0.07556715460127143], 'perf_time': 0.008355600000072627, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [31.87706866908842, 11.255679195713551, 10.76183004383765, 6.1202702462332645, 6.050168836223447, 20.115492851580797, 36.57570490019748, 23.474219366881254], 'perf_time': 0.007998899999961395, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [0.017019996845858358, 0.008613747036446986, 0.01887060647010117, 0.008973169203107586, 0.2820785655040338, 0.020352376273887914, 0.003065670737152968, 0.007400542972591078], 'perf_time': 0.00845270000002074, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [2.6710665535660745, 1.8367805960422303, 2.303847960469708, 1.851094556488956, 1.2412396476929293, 2.892165103139921, 4.700006424678185, 3.491663324043038], 'perf_time': 0.008285399999977017, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 0, 0, 49.223826539240996, 0, 0, 0, 0], 'perf_time': 0.00802699999997003, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [56.00887485093957, 4.9513890703410155, 0.45952965526719236, 8.667498567093148, 29.807635999209452, 1.6371126677187562, 0.004555598547073424, 0.6040380330627964], 'perf_time': 0.00804419999997208, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [24.53373629387008, 4.9513890703410155, 0.45952965526719236, 8.667498567093148, 41.122908046714706, 1.6371126677187562, 0.004555598547073424, 0.6040380330627964], 'perf_time': 0.008053100000097402, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [19.065816056643666, 4.9513890703410155, 0.45952965526719236, 8.667498567093148, 31.319517698633717, 1.6371126677187562, 0.004555598547073424, 0.6040380330627964], 'perf_time': 0.008002600000054372, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [16.33957705989662, 4.9513890703410155, 0.45952965526719236, 8.667498567093148, 18.5296605424203, 1.6371126677187562, 0.004555598547073424, 0.6040380330627964], 'perf_time': 0.007846299999982875, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [16.33957705989662, 4.9513890703410155, 0.45952965526719236, 8.667498567093148, 39.69136084503595, 1.6371126677187562, 0.004555598547073424, 0.6040380330627964], 'perf_time': 0.007890700000075412, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [16.33957705989662, 4.9513890703410155, 0.45952965526719236, 8.667498567093148, 38.654652670499964, 1.6371126677187562, 0.004555598547073424, 0.6040380330627964], 'perf_time': 0.0077178000000230895, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [16.33957705989662, 4.9513890703410155, 0.45952965526719236, 8.667498567093148, 42.08727888194848, 1.6371126677187562, 0.004555598547073424, 0.6040380330627964], 'perf_time': 0.0078029000000015, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 1, 'reward': [16.33957705989662, 4.9513890703410155, 0.45952965526719236, 8.667498567093148, 222.8227376730974, 1.6371126677187562, 0.004555598547073424, 0.6040380330627964], 'perf_time': 0.0001905000000306245, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [16.33957705989662, 4.9513890703410155, 0.45952965526719236, 8.667498567093148, 42.5451176420153, 1.6371126677187562, 0.004555598547073424, 0.6040380330627964], 'perf_time': 0.008029899999996815, 'population': 30, 'numerosity': 62}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 17, 'reward': [4.782271910604448e-41, 1.3001559992677338e-40, 4.782272344427986e-41, 1.2436082719336002e-77, 100.0, 2.1666539662626867e-40, 4.782271910604448e-41, 1.486886455634819e-40], 'perf_time': 0.002331400000002759, 'population': 12, 'numerosity': 12}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 7 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [0.004342841748782775, 0.003286654675196872, 0.017040407810390273, 0.0028997347716977736, 1.084238280667451, 0.0066648250597096574, 0.017262709575212337, 0.0026927590375167734], 'perf_time': 0.008206500000028427, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 1, 'reward': [20.172684278961892, 13.253394221896514, 17.60777599612196, 18.110716499876453, 228.4973287535998, 12.027432336541064, 2.293620720451284, 5.614895868897785], 'perf_time': 0.00018430000000080327, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [22.1561946332897, 27.706914468711332, 27.196530052083794, 22.223590620622087, 17.637624866713594, 41.21045393274724, 22.709874204323043, 22.014675952509236], 'perf_time': 0.008615200000008372, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [5.934559074221885, 3.8561366812905096, 9.075527927169647, 2.9918508929817818, 3.5064656775517804, 1.4018600424527896, 10.223466570849856, 10.390493474920666], 'perf_time': 0.008431500000028791, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [3.0214948115032305, 5.018188876092593, 4.332345865269349, 2.9891631090152373, 6.831170100686714, 1.7970212662560445, 4.567767739802336, 10.548915379451046], 'perf_time': 0.00845569999989948, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [21.750802026529158, 17.851713364385336, 16.84961201921913, 14.486631569360693, 44.391931518148, 18.15679605791703, 20.917162837915832, 22.61548860867286], 'perf_time': 0.00831299999993007, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [0.11702153833604324, 0.47247390113298693, 0.24130036403999583, 0.13785500535108403, 6.556280617465908, 0.09615364100463536, 0.20555685375450697, 0.03734771920640137], 'perf_time': 0.007936900000004243, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [57.0655164632386, 59.54413322845781, 46.956572515063726, 56.5904536357825, 52.146850370208085, 46.263318171650084, 59.465627433182185, 65.14654757084091], 'perf_time': 0.008705899999995381, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [1.6821095441775895, 3.1386152036320207, 1.681448611799049, 0.4901866615416979, 2.158865106560588, 2.9989109210809652, 3.0809775935193793, 0.6735649450477608], 'perf_time': 0.008774900000048547, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 0.6560658046436082, 0.6560658046436082, 0.48152106824740715, 1.1118934294228666, 0.6560658046436082, 0.8577200945716614, 0.48152106824740715], 'perf_time': 0.007746300000007977, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [1.1081837759937208, 20.105615631344946, 3.294985216259535, 3.758567806029989, 5.333958414509268, 37.35692877503187, 99.4791603903145, 4.712142404956072], 'perf_time': 0.00789580000002843, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [1.1081837759937208, 20.105615631344946, 3.294985216259535, 3.758567806029989, 5.333958414509268, 34.75323793328905, 9.656881921329791, 4.712142404956072], 'perf_time': 0.007924200000047676, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [1.1081837759937208, 20.105615631344946, 3.294985216259535, 3.758567806029989, 5.333958414509268, 34.75323793328905, 70.59716514796474, 4.712142404956072], 'perf_time': 0.008064099999955943, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [1.1081837759937208, 20.105615631344946, 3.294985216259535, 3.758567806029989, 5.333958414509268, 34.75323793328905, 101.55345044959137, 4.712142404956072], 'perf_time': 0.00804419999997208, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [1.1081837759937208, 20.105615631344946, 3.294985216259535, 3.758567806029989, 5.333958414509268, 34.75323793328905, 75.73920899174067, 4.712142404956072], 'perf_time': 0.008171300000071824, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [1.1081837759937208, 20.105615631344946, 3.294985216259535, 3.758567806029989, 5.333958414509268, 34.75323793328905, 54.79430787402331, 4.712142404956072], 'perf_time': 0.007551300000045558, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [1.1081837759937208, 20.105615631344946, 3.294985216259535, 3.758567806029989, 5.333958414509268, 34.75323793328905, 63.38158973386557, 4.712142404956072], 'perf_time': 0.007829099999980826, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [1.1081837759937208, 20.105615631344946, 3.294985216259535, 3.758567806029989, 5.333958414509268, 34.75323793328905, 75.75307472044788, 4.712142404956072], 'perf_time': 0.007433500000047388, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [1.1081837759937208, 20.105615631344946, 3.294985216259535, 3.758567806029989, 5.333958414509268, 34.75323793328905, 66.51641054176501, 4.712142404956072], 'perf_time': 0.007867300000043542, 'population': 29, 'numerosity': 65}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [6.138963331847108e-40, 8.559722489664256e-40, 9.837298302054209e-40, 5.9921428843004954e-40, 1.6753254337342893e-39, 8.82553383889705e-40, 8.629257578351406e-40, 1.066815648648653e-39], 'perf_time': 0.006810099999938757, 'population': 20, 'numerosity': 28}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 8 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [46.966078795014354, 33.27304142635738, 37.33686209994751, 23.875584990496325, 31.103348400488283, 31.971399384249914, 51.53489530367152, 38.1671294704678], 'perf_time': 0.0077559999999721185, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [38.47841307784044, 37.19817392044255, 45.58956886814429, 42.55393342824011, 47.73077531936049, 38.232879865801394, 34.88406892118121, 40.693120243324344], 'perf_time': 0.00793039999996381, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [37.70463758437532, 23.337943836123287, 32.48960316063133, 30.02762779637876, 31.77123076714864, 37.660874845222466, 28.782231817304357, 35.592930146917205], 'perf_time': 0.008103000000005522, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [43.966450175886386, 47.17778910520296, 50.372809829073496, 69.78597024131359, 109.99602652607818, 42.87280321935, 41.592550766945116, 43.997808174637655], 'perf_time': 0.008012699999994766, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [0.0008417116701931576, 0.001039637783393917, 0.0008267405343139481, 0.0005852936070174038, 0.1325331361743678, 0.0007998157555686729, 0.0005943036712004738, 0.00122015286604802], 'perf_time': 0.008022499999924548, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [2.107642024359514, 1.276856865975121, 1.3870300284559371, 0.7835976205225084, 4.150963955517417, 1.4817639724706106, 1.4325218032449367, 1.4126886542276078], 'perf_time': 0.007827499999962129, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [2.520379001547604, 2.165347996953161, 1.3726501129885418, 2.9635245102133734, 4.448010861914217, 1.9660268458503667, 2.6225513799426414, 2.533414471227693], 'perf_time': 0.007609700000102748, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [0.2676761223079775, 0.09817190396580958, 0.08404970267376433, 0.15589434553538306, 4.310855712897346, 0.2045184436382974, 0.16047656091582543, 0.24314914104053964], 'perf_time': 0.008032700000057957, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [14.990641499837201, 26.1169062232458, 16.633767803947, 44.70894783610352, 13.972981748146362, 23.654936207920287, 24.608143491624787, 27.64779199920745], 'perf_time': 0.008013500000060958, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0.9576925275854381, 0.5403927766323016, 0.7182987136029271, 1.0801248280386275, 1.2087650880561243, 0.7114296027250251, 0, 0.9912296944689548], 'perf_time': 0.007843999999977314, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [2.40902933613845, 16.298471119396066, 96.62645167309152, 9.79372262790826, 6.396404112571917, 1.7437073958560374, 44.892432863831914, 6.0423703335779635], 'perf_time': 0.007723599999962971, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [2.40902933613845, 16.298471119396066, 86.90350299130486, 9.79372262790826, 6.396404112571917, 1.7437073958560374, 22.311521001360806, 6.0423703335779635], 'perf_time': 0.00915579999991678, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [2.40902933613845, 16.298471119396066, 64.62561642979077, 9.79372262790826, 6.396404112571917, 1.7437073958560374, 48.705349309842816, 6.0423703335779635], 'perf_time': 0.008134300000051553, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [2.40902933613845, 16.298471119396066, 11.619967251654383, 9.392561074198191, 33.98050495262165, 2.45342888621589, 42.934585114146735, 6.0423703335779635], 'perf_time': 0.00822049999999308, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [2.40902933613845, 16.298471119396066, 55.15403953999092, 46.28200516933998, 5.522342305145971, 3.638868871666687, 41.07266662317085, 6.0423703335779635], 'perf_time': 0.007772899999963556, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [2.40902933613845, 16.298471119396066, 17.827138955550094, 11.65337183398702, 5.522342305145971, 61.83779498028485, 39.8075190764067, 6.0423703335779635], 'perf_time': 0.007845599999996011, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [2.40902933613845, 16.298471119396066, 12.374598938873278, 11.65337183398702, 5.522342305145971, 28.82216644367155, 46.2887651767141, 6.0423703335779635], 'perf_time': 0.00796659999991789, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [2.40902933613845, 16.298471119396066, 75.19319001917445, 11.65337183398702, 5.522342305145971, 28.840714270985444, 81.45275479605282, 6.0423703335779635], 'perf_time': 0.009074999999938882, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [2.40902933613845, 16.298471119396066, 75.19319001917445, 11.65337183398702, 5.522342305145971, 28.84198325148198, 80.8828176371479, 6.0423703335779635], 'perf_time': 0.00784350000003542, 'population': 28, 'numerosity': 56}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [4.732442225754666e-40, 1.6529098141727125e-40, 6.258600422612316e-40, 8.337395785248396e-40, 6.755740583819348e-40, 4.453032898216485e-40, 3.696383871360813e-40, 2.3355215689644783e-40], 'perf_time': 0.008172000000058688, 'population': 28, 'numerosity': 42}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 9 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [33.76730643490887, 5.482974941227472, 20.50545890894246, 19.09966294626779, 45.73987701961972, 12.978927981554042, 8.439961724545899, 13.135801069525801], 'perf_time': 0.008795999999961168, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [8.867662327164318, 26.78495183802817, 3.032116379050011, 26.94855190823242, 11.561446608923418, 7.480964909788215, 10.259674330859694, 6.762781640768283], 'perf_time': 0.008863900000051217, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 39, 'reward': [1.9393125920545922, 4.552610141300892, 1.558724474121109, 12.101887911712918, 103.05763444115706, 19.292923126298184, 2.047716569933482, 3.857909844740621], 'perf_time': 0.006694300000162912, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [0.7184054672109286, 0.4832835652916683, 0.4054635497515077, 1.7893168867211575, 12.346692032899261, 1.9484636727625657, 0.47904777989523245, 0.8039187589513579], 'perf_time': 0.00829980000003161, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [35.36805106347591, 46.39263583933067, 49.09261329424191, 31.312919103041292, 46.29344024013746, 18.23296234861788, 38.89577018572455, 45.48063006768512], 'perf_time': 0.008292600000004313, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [0.0016096512703200848, 0.002078427202528751, 0.004860992993192789, 0.020517714513776375, 0.3978331696351406, 0.009115042786366661, 0.0032218337190738355, 0.0007769170839096508], 'perf_time': 0.009858800000074552, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [2.950070730707414, 10.29811379371389, 3.458033895353216, 6.636122959898664, 6.42406514118335, 7.799313174638093, 4.921409231418349, 6.786911208556992], 'perf_time': 0.009868399999959365, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [28.11533998721829, 34.065223144599145, 32.36999485734503, 7.793057779462337, 3.772169987442624, 7.917231354568452, 34.81023595782486, 17.920157327830495], 'perf_time': 0.008742900000015652, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [0.009606703585693356, 0.005024063613842816, 0.011278193618663964, 0.03441448219071195, 0.8786901497429463, 0.025522573523335125, 0.0166103917696728, 0.019507613658380215], 'perf_time': 0.00837150000006659, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 47.56100318989063, 0], 'perf_time': 0.008270100000117964, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [0, 0, 85.51737764520193, 0, 126.87749180233531, 0, 19.623970168723034, 0], 'perf_time': 0.00891940000019531, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [0, 0, 25.548551325760904, 0, 24.55537167912074, 0, 20.236512212025726, 0], 'perf_time': 0.008159900000009657, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [0, 0, 20.659027660688672, 0, 85.85337465463374, 0, 20.244989993588568, 0], 'perf_time': 0.008781499999940934, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [0, 0, 85.8533746547481, 0, 85.51737764543898, 0, 15.906149615876659, 0], 'perf_time': 0.008703399999831163, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [0, 0, 85.85337464924118, 0, 21.175393875717862, 0, 18.260957271276208, 0], 'perf_time': 0.00844609999990098, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [0, 0, 45.964536102761, 0, 84.53312906584227, 0, 18.291023611316234, 0], 'perf_time': 0.008034499999894251, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [0, 0, 85.85316603048253, 0, 85.85164399833187, 0, 19.496175791589764, 0], 'perf_time': 0.008014400000092792, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 2, 'reward': [0, 0, 85.48992847621209, 0, 186.72482095458778, 0, 19.722554496113716, 0], 'perf_time': 0.00037899999983892485, 'population': 34, 'numerosity': 82}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [0, 0, 21.377664577535008, 0, 84.01198392583446, 0, 19.021890409069304, 0], 'perf_time': 0.00836099999992257, 'population': 34, 'numerosity': 82}\n" - ] - } - ], - "source": [ - "cfg = Configuration(number_of_actions=8,\n", - " max_population=2000,\n", - " gamma=0.9,\n", - " metrics_trial_frequency=100,\n", - " user_metrics_collector_fcn=xcs_metrics)\n", - "\n", - "df = avg_experiment(maze,\n", - " cfg,\n", - " number_of_tests=10,\n", - " explore_trials=4000,\n", - " exploit_metrics=1000)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialperf_timepopulationnumerosity
trial
046.70.00806822.133.3
10047.00.00814333.173.9
20050.00.00851333.174.5
30036.30.00621633.174.5
40045.80.00783133.174.5
50040.00.00692433.174.5
60047.20.00819633.174.5
70038.40.00702533.174.5
80043.10.00765833.174.5
90050.00.00959633.174.5
100050.00.00920033.174.5
110050.00.00914433.174.5
120048.90.00862933.174.5
130049.60.00868433.174.5
140045.10.00800333.174.5
150050.00.00894733.174.5
160046.10.00797033.174.5
170045.70.00807533.174.5
180050.00.00882633.174.5
190048.40.00831933.174.5
200050.00.00877733.174.5
210039.70.00676633.174.5
220046.60.00810933.174.5
230050.00.00880333.174.5
240038.20.00662833.174.5
250046.10.00858033.174.5
260047.30.00833233.174.5
270050.00.00868833.174.5
280050.00.00871533.174.5
290045.10.00802133.174.5
300050.00.00890133.174.5
310047.30.00835633.174.5
320046.60.00819533.174.5
330048.60.00840233.174.5
340045.20.00806333.174.5
350046.60.00842033.174.5
360050.00.00902133.174.5
370041.70.00762433.174.5
380043.50.00763833.174.5
390050.00.00910733.174.5
400050.00.00855833.174.5
410050.00.00895833.174.5
420050.00.00860833.174.5
430050.00.00892533.174.5
440050.00.00921133.174.5
450050.00.00847233.174.5
460050.00.00844333.174.5
470050.00.00858533.174.5
480040.30.00681133.174.5
490050.00.00839833.174.5
\n", - "
" - ], - "text/plain": [ - " steps_in_trial perf_time population numerosity\n", - "trial \n", - "0 46.7 0.008068 22.1 33.3\n", - "100 47.0 0.008143 33.1 73.9\n", - "200 50.0 0.008513 33.1 74.5\n", - "300 36.3 0.006216 33.1 74.5\n", - "400 45.8 0.007831 33.1 74.5\n", - "500 40.0 0.006924 33.1 74.5\n", - "600 47.2 0.008196 33.1 74.5\n", - "700 38.4 0.007025 33.1 74.5\n", - "800 43.1 0.007658 33.1 74.5\n", - "900 50.0 0.009596 33.1 74.5\n", - "1000 50.0 0.009200 33.1 74.5\n", - "1100 50.0 0.009144 33.1 74.5\n", - "1200 48.9 0.008629 33.1 74.5\n", - "1300 49.6 0.008684 33.1 74.5\n", - "1400 45.1 0.008003 33.1 74.5\n", - "1500 50.0 0.008947 33.1 74.5\n", - "1600 46.1 0.007970 33.1 74.5\n", - "1700 45.7 0.008075 33.1 74.5\n", - "1800 50.0 0.008826 33.1 74.5\n", - "1900 48.4 0.008319 33.1 74.5\n", - "2000 50.0 0.008777 33.1 74.5\n", - "2100 39.7 0.006766 33.1 74.5\n", - "2200 46.6 0.008109 33.1 74.5\n", - "2300 50.0 0.008803 33.1 74.5\n", - "2400 38.2 0.006628 33.1 74.5\n", - "2500 46.1 0.008580 33.1 74.5\n", - "2600 47.3 0.008332 33.1 74.5\n", - "2700 50.0 0.008688 33.1 74.5\n", - "2800 50.0 0.008715 33.1 74.5\n", - "2900 45.1 0.008021 33.1 74.5\n", - "3000 50.0 0.008901 33.1 74.5\n", - "3100 47.3 0.008356 33.1 74.5\n", - "3200 46.6 0.008195 33.1 74.5\n", - "3300 48.6 0.008402 33.1 74.5\n", - "3400 45.2 0.008063 33.1 74.5\n", - "3500 46.6 0.008420 33.1 74.5\n", - "3600 50.0 0.009021 33.1 74.5\n", - "3700 41.7 0.007624 33.1 74.5\n", - "3800 43.5 0.007638 33.1 74.5\n", - "3900 50.0 0.009107 33.1 74.5\n", - "4000 50.0 0.008558 33.1 74.5\n", - "4100 50.0 0.008958 33.1 74.5\n", - "4200 50.0 0.008608 33.1 74.5\n", - "4300 50.0 0.008925 33.1 74.5\n", - "4400 50.0 0.009211 33.1 74.5\n", - "4500 50.0 0.008472 33.1 74.5\n", - "4600 50.0 0.008443 33.1 74.5\n", - "4700 50.0 0.008585 33.1 74.5\n", - "4800 40.3 0.006811 33.1 74.5\n", - "4900 50.0 0.008398 33.1 74.5" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(df)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is hard to say but oking at amount of times algorithm reaches top steps (50) the steps might actually go down over trials. need to somehow smooth it to see it better" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df['steps_in_trial'].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Conclusion\n", - "XCS in Woods14 with wildcards has similar issues as with Maze5." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_XNCS_Maze5.ipynb b/XCS_Experiments/XCS_XNCS_Maze5.ipynb new file mode 100644 index 0000000..9205508 --- /dev/null +++ b/XCS_Experiments/XCS_XNCS_Maze5.ipynb @@ -0,0 +1,1430 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "('0', '1', '0', '0', '1', '0', '1', '0')\n", + "\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" + ] + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_maze\n", + "\n", + "maze = gym.make('Maze5-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS\n", + "from lcs.agents.xcs import Configuration as XCSConfig\n", + "from lcs.agents.xncs import XNCS\n", + "from lcs.agents.xncs import Configuration as XNCSConfig\n", + "\n", + "from utils.xcs_utils import xcs_metrics\n", + "from utils.nxcs_utils import xncs_maze_metrics\n", + "\n", + "XCScfg = XCSConfig(number_of_actions=8,\n", + " max_population=7000,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.01,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_metrics)\n", + "\n", + "XNCScfg = XNCSConfig(number_of_actions=8,\n", + " max_population=7000,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.01,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=200)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.056999599999997486, 'population': 114, 'numerosity': 158, 'average_specificity': 7.537974683544304}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 45, 'reward': 1000.0002159007435, 'perf_time': 1.8200448999999708, 'population': 2024, 'numerosity': 7000, 'average_specificity': 33.195}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 83, 'reward': 1000.0000000005091, 'perf_time': 5.506315299999869, 'population': 2214, 'numerosity': 7000, 'average_specificity': 42.60185714285714}\n", + "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 3, 'reward': 1468.2325875702113, 'perf_time': 0.03669999999988249, 'population': 2130, 'numerosity': 7000, 'average_specificity': 36.26385714285714}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 12, 'reward': 1016.4112642639607, 'perf_time': 0.4223326999999699, 'population': 2125, 'numerosity': 7000, 'average_specificity': 52.344857142857144}\n", + "INFO:lcs.agents.Agent:{'trial': 2500, 'steps_in_trial': 16, 'reward': 1004.1911926445374, 'perf_time': 0.4556173000000854, 'population': 1794, 'numerosity': 7000, 'average_specificity': 48.983285714285714}\n", + "INFO:lcs.agents.Agent:{'trial': 3000, 'steps_in_trial': 52, 'reward': 1000.000018426131, 'perf_time': 1.4805867000000035, 'population': 1613, 'numerosity': 7000, 'average_specificity': 54.19242857142857}\n", + "INFO:lcs.agents.Agent:{'trial': 3500, 'steps_in_trial': 2, 'reward': 1524.6796589718044, 'perf_time': 0.01912820000006832, 'population': 2196, 'numerosity': 7000, 'average_specificity': 40.05414285714286}\n", + "INFO:lcs.agents.Agent:{'trial': 4000, 'steps_in_trial': 42, 'reward': 1000.0005660495547, 'perf_time': 0.8272696999997606, 'population': 1816, 'numerosity': 7000, 'average_specificity': 51.970571428571425}\n", + "INFO:lcs.agents.Agent:{'trial': 4500, 'steps_in_trial': 7, 'reward': 1125.770445603202, 'perf_time': 0.15748299999995652, 'population': 1925, 'numerosity': 7000, 'average_specificity': 46.872}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 12, 'reward': 1016.4097455054276, 'perf_time': 0.29755859999932, 'population': 2162, 'numerosity': 7000, 'average_specificity': 43.52057142857143}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 12, 'reward': 1016.4097455054276, 'perf_time': 0.29755859999932, 'population': 2162, 'numerosity': 7000, 'average_specificity': 43.52057142857143}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 5, 'reward': 1248.6318760942604, 'perf_time': 0.12703250000049593, 'population': 2211, 'numerosity': 7000, 'average_specificity': 41.57385714285714}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 5, 'reward': 1248.6318760942604, 'perf_time': 0.12703250000049593, 'population': 2211, 'numerosity': 7000, 'average_specificity': 41.57385714285714}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 12, 'reward': 1019.6506915483495, 'perf_time': 0.22208760000012262, 'population': 2258, 'numerosity': 7000, 'average_specificity': 40.68042857142857}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 12, 'reward': 1019.6506915483495, 'perf_time': 0.22208760000012262, 'population': 2258, 'numerosity': 7000, 'average_specificity': 40.68042857142857}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 1, 'reward': 2113.0133311188656, 'perf_time': 0.012374900000395428, 'population': 2253, 'numerosity': 7000, 'average_specificity': 38.08128571428571}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 1, 'reward': 2113.0133311188656, 'perf_time': 0.012374900000395428, 'population': 2253, 'numerosity': 7000, 'average_specificity': 38.08128571428571}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 5, 'reward': 1186.2290612342767, 'perf_time': 0.07243669999934355, 'population': 2237, 'numerosity': 7000, 'average_specificity': 34.153285714285715}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 5, 'reward': 1186.2290612342767, 'perf_time': 0.07243669999934355, 'population': 2237, 'numerosity': 7000, 'average_specificity': 34.153285714285715}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.09581929999967542, 'numerosity': 201, 'population': 150, 'average_specificity': 8.656716417910447, 'fraction_accuracy': 0.99, 'knowledge': 0.0}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 100, 'reward': 2.385089144282033e-42, 'perf_time': 0.3215463999995336, 'numerosity': 7000, 'population': 299, 'average_specificity': 237.998, 'fraction_accuracy': 1.0, 'knowledge': 0.684931506849315}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 100, 'reward': 1.3360874108190892e-12, 'perf_time': 0.19002030000046943, 'numerosity': 7000, 'population': 180, 'average_specificity': 246.41742857142856, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 100, 'reward': 3.186687579353646e-57, 'perf_time': 0.18601009999929374, 'numerosity': 7000, 'population': 173, 'average_specificity': 246.51342857142856, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 51, 'reward': 1000.0, 'perf_time': 0.10225990000071761, 'numerosity': 7000, 'population': 168, 'average_specificity': 245.83, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 2500, 'steps_in_trial': 100, 'reward': 1.3360874108178924e-12, 'perf_time': 0.1794503999999506, 'numerosity': 7000, 'population': 172, 'average_specificity': 245.73857142857142, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 3000, 'steps_in_trial': 100, 'reward': 3.2360741395726796e-176, 'perf_time': 0.19106590000046708, 'numerosity': 7000, 'population': 167, 'average_specificity': 246.17742857142858, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 3500, 'steps_in_trial': 76, 'reward': 1000.0, 'perf_time': 0.1504720000002635, 'numerosity': 7000, 'population': 182, 'average_specificity': 243.79457142857143, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 4000, 'steps_in_trial': 70, 'reward': 1000.0, 'perf_time': 0.13572870000007242, 'numerosity': 7000, 'population': 178, 'average_specificity': 244.57171428571428, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 4500, 'steps_in_trial': 12, 'reward': 1000.0, 'perf_time': 0.019764100000429607, 'numerosity': 7000, 'population': 164, 'average_specificity': 245.06942857142857, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 5, 'reward': 1000.0, 'perf_time': 0.009091100000659935, 'numerosity': 7000, 'population': 172, 'average_specificity': 244.95514285714285, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 5, 'reward': 1000.0, 'perf_time': 0.009091100000659935, 'numerosity': 7000, 'population': 172, 'average_specificity': 244.95514285714285, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 100, 'reward': 2.385089144282033e-42, 'perf_time': 0.14370989999952144, 'numerosity': 7000, 'population': 182, 'average_specificity': 243.89, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 100, 'reward': 2.385089144282033e-42, 'perf_time': 0.14370989999952144, 'numerosity': 7000, 'population': 182, 'average_specificity': 243.89, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': 1000.0000000000005, 'perf_time': 0.004709300000286021, 'numerosity': 7000, 'population': 190, 'average_specificity': 242.86142857142858, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': 1000.0000000000005, 'perf_time': 0.004709300000286021, 'numerosity': 7000, 'population': 190, 'average_specificity': 242.86142857142858, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 100, 'reward': 2.284709472498595e-12, 'perf_time': 0.1659020999995846, 'numerosity': 7000, 'population': 187, 'average_specificity': 242.55057142857143, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 100, 'reward': 2.284709472498595e-12, 'perf_time': 0.1659020999995846, 'numerosity': 7000, 'population': 187, 'average_specificity': 242.55057142857143, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 85, 'reward': 1000.0000000002275, 'perf_time': 0.1269929999998567, 'numerosity': 7000, 'population': 179, 'average_specificity': 242.50028571428572, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 85, 'reward': 1000.0000000002275, 'perf_time': 0.1269929999998567, 'numerosity': 7000, 'population': 179, 'average_specificity': 242.50028571428572, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n" + ] + } + ], + "source": [ + "from utils.xcs_utils import avg_experiment as XCSExp\n", + "from utils.nxcs_utils import avg_experiment as XNCSExp\n", + "\n", + "number_of_experiments = 1\n", + "explore = 5000\n", + "exploit = 500\n", + "\n", + "df = XCSExp(maze=maze,\n", + " cfg=XCScfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit)\n", + "\n", + "df_other = XNCSExp(maze=maze,\n", + " cfg=XNCScfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificitysteps_in_trial_otherpopulation_othernumerosity_otheraverage_specificity_otherfraction_accuracy_other
trial
01000.000000e+000.0570001141587.5379751001502018.6567160.99
100261.000184e+030.5482201148700022.267143101855619243.6447031.00
20071.107361e+030.1227691464700019.2447141420597000104.7742861.00
300381.000002e+031.6142831713700027.4381431009377000193.8710001.00
400101.033091e+030.4157341909700024.7395711004397000228.3192861.00
500451.000000e+031.8200452024700033.1950001002997000237.9980001.00
600251.000209e+032.6651372100700038.710000942247000241.4465711.00
7001001.338896e-126.2207312208700044.138143931957000243.8900001.00
800101.036617e+030.2798072174700038.678714401817000245.9060001.00
900961.000000e+033.6769362233700042.4298571001697000246.2140001.00
1000831.000000e+035.5063152214700042.6018571001807000246.4174291.00
110031.362081e+030.6784342175700048.3690001001777000246.0562861.00
1200371.000003e+032.1202632106700049.3158571001777000245.3202861.00
1300181.002151e+032.2925552034700046.103857581747000245.9511431.00
1400261.000136e+031.1532102030700041.3170001001737000246.0882861.00
150031.468233e+030.0367002130700036.2638571001737000246.5134291.00
16001001.336801e-126.0720742193700041.41457121727000246.7305711.00
1700431.000001e+032.2500632285700038.5570001001737000246.9728571.00
1800291.000061e+031.8655152389700037.9580001001737000246.4060001.00
1900601.000000e+033.7509292219700045.4770001001777000245.8300001.00
2000121.016411e+030.4223332125700052.344857511687000245.8300001.00
2100111.029134e+030.3663141990700053.6222861001767000244.9568571.00
2200111.039525e+030.1580031675700056.0147141001777000244.6094291.00
230041.254496e+030.0463731689700050.842857671777000245.6928571.00
240011.712102e+030.0084911689700051.1637141001737000245.5511431.00
2500161.004191e+030.4556171794700048.9832861001727000245.7385711.00
2600321.000018e+030.5427781613700059.5665711001727000245.6745711.00
27001001.336447e-122.1787891608700055.2857141001717000245.7660001.00
2800651.000000e+031.8284261702700054.02028661827000245.1442861.00
2900271.000106e+030.5621491584700058.4878571001747000245.9260001.00
3000521.000000e+031.4805871613700054.1924291001677000246.1774291.00
3100311.000024e+031.1883601666700049.7682861001787000244.9020001.00
3200281.000068e+030.8565701890700044.7831431001927000244.3808571.00
330041.318694e+030.0381452007700041.6570001001757000244.7054291.00
340011.710012e+030.0097732099700040.5668571001797000243.4974291.00
350021.524680e+030.0191282196700040.054143761827000243.7945711.00
3600341.000009e+031.1070272283700037.26714321847000244.3934291.00
3700501.000000e+031.3653082355700038.107429231787000244.4620001.00
3800311.000024e+030.8014192385700041.131857341747000244.7820001.00
390061.160655e+030.1562202261700049.5632861001747000244.4162861.00
4000421.000001e+030.8272701816700051.970571701787000244.5717141.00
4100101.044210e+030.1497681746700048.6292861001677000245.3260001.00
4200561.000000e+031.1434071837700048.705714121777000244.6220001.00
430021.826022e+030.0284441797700051.3827141001757000244.9688571.00
4400491.000000e+031.5039781941700045.50471471647000245.2614291.00
450071.125770e+030.1574831925700046.872000121647000245.0694291.00
460041.254239e+030.1278431988700045.35457121717000244.6260001.00
4700191.001541e+030.5676451990700046.428714441737000244.6534291.00
4800371.000004e+031.4000611990700047.0535711001787000244.1140001.00
490021.571636e+030.0331062039700042.5145711001747000244.7722861.00
5000121.016410e+030.2975592162700043.52057151727000244.9551431.00
510051.248632e+030.1270332211700041.5738571001827000243.8900001.00
5200121.019651e+030.2220882258700040.68042931907000242.8614291.00
530012.113013e+030.0123752253700038.0812861001877000242.5505711.00
540051.186229e+030.0724372237700034.153286851797000242.5002861.00
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 100 0.000000e+00 0.057000 114 158 \n", + "100 26 1.000184e+03 0.548220 1148 7000 \n", + "200 7 1.107361e+03 0.122769 1464 7000 \n", + "300 38 1.000002e+03 1.614283 1713 7000 \n", + "400 10 1.033091e+03 0.415734 1909 7000 \n", + "500 45 1.000000e+03 1.820045 2024 7000 \n", + "600 25 1.000209e+03 2.665137 2100 7000 \n", + "700 100 1.338896e-12 6.220731 2208 7000 \n", + "800 10 1.036617e+03 0.279807 2174 7000 \n", + "900 96 1.000000e+03 3.676936 2233 7000 \n", + "1000 83 1.000000e+03 5.506315 2214 7000 \n", + "1100 3 1.362081e+03 0.678434 2175 7000 \n", + "1200 37 1.000003e+03 2.120263 2106 7000 \n", + "1300 18 1.002151e+03 2.292555 2034 7000 \n", + "1400 26 1.000136e+03 1.153210 2030 7000 \n", + "1500 3 1.468233e+03 0.036700 2130 7000 \n", + "1600 100 1.336801e-12 6.072074 2193 7000 \n", + "1700 43 1.000001e+03 2.250063 2285 7000 \n", + "1800 29 1.000061e+03 1.865515 2389 7000 \n", + "1900 60 1.000000e+03 3.750929 2219 7000 \n", + "2000 12 1.016411e+03 0.422333 2125 7000 \n", + "2100 11 1.029134e+03 0.366314 1990 7000 \n", + "2200 11 1.039525e+03 0.158003 1675 7000 \n", + "2300 4 1.254496e+03 0.046373 1689 7000 \n", + "2400 1 1.712102e+03 0.008491 1689 7000 \n", + "2500 16 1.004191e+03 0.455617 1794 7000 \n", + "2600 32 1.000018e+03 0.542778 1613 7000 \n", + "2700 100 1.336447e-12 2.178789 1608 7000 \n", + "2800 65 1.000000e+03 1.828426 1702 7000 \n", + "2900 27 1.000106e+03 0.562149 1584 7000 \n", + "3000 52 1.000000e+03 1.480587 1613 7000 \n", + "3100 31 1.000024e+03 1.188360 1666 7000 \n", + "3200 28 1.000068e+03 0.856570 1890 7000 \n", + "3300 4 1.318694e+03 0.038145 2007 7000 \n", + "3400 1 1.710012e+03 0.009773 2099 7000 \n", + "3500 2 1.524680e+03 0.019128 2196 7000 \n", + "3600 34 1.000009e+03 1.107027 2283 7000 \n", + "3700 50 1.000000e+03 1.365308 2355 7000 \n", + "3800 31 1.000024e+03 0.801419 2385 7000 \n", + "3900 6 1.160655e+03 0.156220 2261 7000 \n", + "4000 42 1.000001e+03 0.827270 1816 7000 \n", + "4100 10 1.044210e+03 0.149768 1746 7000 \n", + "4200 56 1.000000e+03 1.143407 1837 7000 \n", + "4300 2 1.826022e+03 0.028444 1797 7000 \n", + "4400 49 1.000000e+03 1.503978 1941 7000 \n", + "4500 7 1.125770e+03 0.157483 1925 7000 \n", + "4600 4 1.254239e+03 0.127843 1988 7000 \n", + "4700 19 1.001541e+03 0.567645 1990 7000 \n", + "4800 37 1.000004e+03 1.400061 1990 7000 \n", + "4900 2 1.571636e+03 0.033106 2039 7000 \n", + "5000 12 1.016410e+03 0.297559 2162 7000 \n", + "5100 5 1.248632e+03 0.127033 2211 7000 \n", + "5200 12 1.019651e+03 0.222088 2258 7000 \n", + "5300 1 2.113013e+03 0.012375 2253 7000 \n", + "5400 5 1.186229e+03 0.072437 2237 7000 \n", + "\n", + " average_specificity steps_in_trial_other population_other \\\n", + "trial \n", + "0 7.537975 100 150 \n", + "100 22.267143 10 1855 \n", + "200 19.244714 14 2059 \n", + "300 27.438143 100 937 \n", + "400 24.739571 100 439 \n", + "500 33.195000 100 299 \n", + "600 38.710000 94 224 \n", + "700 44.138143 93 195 \n", + "800 38.678714 40 181 \n", + "900 42.429857 100 169 \n", + "1000 42.601857 100 180 \n", + "1100 48.369000 100 177 \n", + "1200 49.315857 100 177 \n", + "1300 46.103857 58 174 \n", + "1400 41.317000 100 173 \n", + "1500 36.263857 100 173 \n", + "1600 41.414571 2 172 \n", + "1700 38.557000 100 173 \n", + "1800 37.958000 100 173 \n", + "1900 45.477000 100 177 \n", + "2000 52.344857 51 168 \n", + "2100 53.622286 100 176 \n", + "2200 56.014714 100 177 \n", + "2300 50.842857 67 177 \n", + "2400 51.163714 100 173 \n", + "2500 48.983286 100 172 \n", + "2600 59.566571 100 172 \n", + "2700 55.285714 100 171 \n", + "2800 54.020286 6 182 \n", + "2900 58.487857 100 174 \n", + "3000 54.192429 100 167 \n", + "3100 49.768286 100 178 \n", + "3200 44.783143 100 192 \n", + "3300 41.657000 100 175 \n", + "3400 40.566857 100 179 \n", + "3500 40.054143 76 182 \n", + "3600 37.267143 2 184 \n", + "3700 38.107429 23 178 \n", + "3800 41.131857 34 174 \n", + "3900 49.563286 100 174 \n", + "4000 51.970571 70 178 \n", + "4100 48.629286 100 167 \n", + "4200 48.705714 12 177 \n", + "4300 51.382714 100 175 \n", + "4400 45.504714 7 164 \n", + "4500 46.872000 12 164 \n", + "4600 45.354571 2 171 \n", + "4700 46.428714 44 173 \n", + "4800 47.053571 100 178 \n", + "4900 42.514571 100 174 \n", + "5000 43.520571 5 172 \n", + "5100 41.573857 100 182 \n", + "5200 40.680429 3 190 \n", + "5300 38.081286 100 187 \n", + "5400 34.153286 85 179 \n", + "\n", + " numerosity_other average_specificity_other fraction_accuracy_other \n", + "trial \n", + "0 201 8.656716 0.99 \n", + "100 6192 43.644703 1.00 \n", + "200 7000 104.774286 1.00 \n", + "300 7000 193.871000 1.00 \n", + "400 7000 228.319286 1.00 \n", + "500 7000 237.998000 1.00 \n", + "600 7000 241.446571 1.00 \n", + "700 7000 243.890000 1.00 \n", + "800 7000 245.906000 1.00 \n", + "900 7000 246.214000 1.00 \n", + "1000 7000 246.417429 1.00 \n", + "1100 7000 246.056286 1.00 \n", + "1200 7000 245.320286 1.00 \n", + "1300 7000 245.951143 1.00 \n", + "1400 7000 246.088286 1.00 \n", + "1500 7000 246.513429 1.00 \n", + "1600 7000 246.730571 1.00 \n", + "1700 7000 246.972857 1.00 \n", + "1800 7000 246.406000 1.00 \n", + "1900 7000 245.830000 1.00 \n", + "2000 7000 245.830000 1.00 \n", + "2100 7000 244.956857 1.00 \n", + "2200 7000 244.609429 1.00 \n", + "2300 7000 245.692857 1.00 \n", + "2400 7000 245.551143 1.00 \n", + "2500 7000 245.738571 1.00 \n", + "2600 7000 245.674571 1.00 \n", + "2700 7000 245.766000 1.00 \n", + "2800 7000 245.144286 1.00 \n", + "2900 7000 245.926000 1.00 \n", + "3000 7000 246.177429 1.00 \n", + "3100 7000 244.902000 1.00 \n", + "3200 7000 244.380857 1.00 \n", + "3300 7000 244.705429 1.00 \n", + "3400 7000 243.497429 1.00 \n", + "3500 7000 243.794571 1.00 \n", + "3600 7000 244.393429 1.00 \n", + "3700 7000 244.462000 1.00 \n", + "3800 7000 244.782000 1.00 \n", + "3900 7000 244.416286 1.00 \n", + "4000 7000 244.571714 1.00 \n", + "4100 7000 245.326000 1.00 \n", + "4200 7000 244.622000 1.00 \n", + "4300 7000 244.968857 1.00 \n", + "4400 7000 245.261429 1.00 \n", + "4500 7000 245.069429 1.00 \n", + "4600 7000 244.626000 1.00 \n", + "4700 7000 244.653429 1.00 \n", + "4800 7000 244.114000 1.00 \n", + "4900 7000 244.772286 1.00 \n", + "5000 7000 244.955143 1.00 \n", + "5100 7000 243.890000 1.00 \n", + "5200 7000 242.861429 1.00 \n", + "5300 7000 242.550571 1.00 \n", + "5400 7000 242.500286 1.00 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df['steps_in_trial_other']=df_other['steps_in_trial']\n", + "df['population_other']=df_other['population']\n", + "df['numerosity_other']=df_other['numerosity']\n", + "df['average_specificity_other']=df_other['average_specificity']\n", + "df['fraction_accuracy_other']=df_other['fraction_accuracy']\n", + "\n", + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df[['average_specificity', \"average_specificity_other\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"XCS\",\"XNCS\"])\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[\"fraction_accuracy_other\"].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"XCS\",\"XNCS\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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eersI8A5wJFm1gz8CLgVmGlmVwNvAmMA3H2Fmc0EVgIpYEI4EwrgWvaeOjuXIp4JBZBORHMWsRoVC5G23PyfK1i5YdtB/czBf9eDH332hDb3WbduHRdddBGf+MQnmD9/Pv369WP27NlcdNFF3H777TQ2NvLOO+/Q2NjIunXrmDZtGo8//jjpdJrly5fzne98h0QiwUMPPURdXR1PPfUUvXv35vXXX2fChAls3ryZQw45hPvvv5+PfexjXHXVVfTu3ZslS5Zw2mmn8eUvf5lrrrmGXbt2cdxxxzFlyhR69erF5MmTuffee6murmbw4MHMmDGDadOm0dTUxJe+9CXmzJnDH/7wB2655RYee+wxxowZw4svvgjA6tWrGTt2LIsXLz6oP8+DqWjFwt0v289b5+9n/0nApBzxJuDEg5ham9KJqGcRU89CpNNavXo1jzzyCPfffz+XXnopjz32WJv7L1++nCVLlrB7924+8pGPcNttt7FkyRJuuOEGHnzwQa6//nrGjx/Pvffey6BBg1i4cCFf//rX+d3vfgfAa6+9xrPPPkssFmPIkCH84he/4Oyzz+amm27i5ptv5s477+TWW29l7dq11NXVsXXr1vd9/xlnnMEll1zCxRdfzBe/+EUAevbsydKlSznllFOYOnUqV111VTF+VAdNMa+z6JIyiehUslidioVIW/L1AIpp4MCBnHLKKQAMHTqUdevWtbn/ueeeS/fu3enevTs9e/bks5/9LAAnnXQSL7/8Mjt27GD+/PmMGTNmzzHxeHzP9pgxY4jFYrz77rts3bqVs88+G4Bx48btOWbIkCFcfvnljB49mtGjR+dtw9e+9jWmTp3KHXfcwaOPPsqiRYva8RPoeJ3lbKhOI5OMehbV6lmIdFp1dXuX44nFYqRSKaqrq8lkMgD7XD+QvX9VVdWe11VVVaRSKTKZDIcffjhLly7d81i1atWeYw499NC8OT355JNMmDCBxYsXM3To0LzzG1/4wheYO3cuTzzxBEOHDuWII47I3/ASUrFopaVnUaOehUiXMmDAgD1j/r/5zW/adWyPHj0YOHAgv/71r4HoCueXXnppn/169uxJr169+NOf/gTAQw89xNlnn00mk+Gtt97i3HPP5ac//Slbt25lx44d7zu2e/fubN++fc/r+vp6RowYwbXXXstXvvKVduVbCioWrXgqKhbV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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['numerosity', 'numerosity_other']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"numerosity\")\n", + "ax.legend([\"numerosity\", \"number of rules\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['population', \"population_other\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"XCS\",\"XNCS\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['steps_in_trial', 'steps_in_trial_other']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"XCS\",\"XNCS\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XCS_XNCS_Maze5_pre_populated.ipynb b/XCS_Experiments/XCS_XNCS_Maze5_pre_populated.ipynb new file mode 100644 index 0000000..63687b3 --- /dev/null +++ b/XCS_Experiments/XCS_XNCS_Maze5_pre_populated.ipynb @@ -0,0 +1,1064 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "('0', '1', '1', '1', '1', '0', '0', '0')\n", + "\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[31mA\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" + ] + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_maze\n", + "\n", + "maze = gym.make('Maze5-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS\n", + "from lcs.agents.xcs import Configuration as XCSConfig\n", + "from lcs.agents.xncs import XNCS\n", + "from lcs.agents.xncs import Configuration as XNCSConfig\n", + "\n", + "from utils.xcs_utils import *\n", + "from utils.nxcs_utils import *\n", + "\n", + "XCScfg = XCSConfig(number_of_actions=8,\n", + " max_population=7000,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.01,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_maze_metrics)\n", + "\n", + "XNCScfg = XNCSConfig(number_of_actions=8,\n", + " max_population=7000,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.01,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=100)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 10.801801399999995, 'numerosity': 7000, 'population': 5837, 'average_specificity': 8.09457142857143, 'fraction_accuracy': 1.0, 'knowledge': 8.904109589041095}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 4, 'reward': 1268.4393400342683, 'perf_time': 0.23171939999997448, 'numerosity': 7000, 'population': 5424, 'average_specificity': 11.808, 'fraction_accuracy': 0.98, 'knowledge': 8.904109589041095}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 17, 'reward': 1002.9634080602486, 'perf_time': 1.1649275999999986, 'numerosity': 7000, 'population': 5232, 'average_specificity': 18.535, 'fraction_accuracy': 1.0, 'knowledge': 10.273972602739725}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 3, 'reward': 1640.090458495578, 'perf_time': 0.13137119999998959, 'numerosity': 7000, 'population': 5163, 'average_specificity': 21.890285714285714, 'fraction_accuracy': 1.0, 'knowledge': 10.273972602739725}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 4, 'reward': 1278.945511810267, 'perf_time': 0.19018400000004476, 'numerosity': 7000, 'population': 5103, 'average_specificity': 25.297857142857143, 'fraction_accuracy': 1.0, 'knowledge': 9.58904109589041}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 8, 'reward': 1076.4966296333594, 'perf_time': 0.35427870000000894, 'numerosity': 7000, 'population': 5076, 'average_specificity': 28.026714285714284, 'fraction_accuracy': 1.0, 'knowledge': 9.58904109589041}\n", + "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 4, 'reward': 1254.4961984638614, 'perf_time': 0.24357809999992242, 'numerosity': 7000, 'population': 5024, 'average_specificity': 30.314714285714285, 'fraction_accuracy': 1.0, 'knowledge': 9.58904109589041}\n", + "INFO:lcs.agents.Agent:{'trial': 1700, 'steps_in_trial': 6, 'reward': 1130.568313210379, 'perf_time': 0.4939331000000493, 'numerosity': 7000, 'population': 4974, 'average_specificity': 32.60628571428571, 'fraction_accuracy': 0.99, 'knowledge': 9.58904109589041}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 10, 'reward': 1034.6730339429612, 'perf_time': 0.4519010999999864, 'numerosity': 7000, 'population': 4949, 'average_specificity': 34.501, 'fraction_accuracy': 1.0, 'knowledge': 9.58904109589041}\n", + "INFO:lcs.agents.Agent:{'trial': 2200, 'steps_in_trial': 5, 'reward': 1180.6925347601855, 'perf_time': 0.22202969999989364, 'numerosity': 7000, 'population': 4953, 'average_specificity': 34.76428571428571, 'fraction_accuracy': 1.0, 'knowledge': 9.58904109589041}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 8.758626399999912, 'population': 5867, 'numerosity': 7000, 'average_specificity': 8.529142857142856, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 5, 'reward': 1203.5822709802917, 'perf_time': 0.35878309999998237, 'population': 5463, 'numerosity': 7000, 'average_specificity': 7.843571428571429, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 2, 'reward': 1527.2565917893598, 'perf_time': 0.09319830000004004, 'population': 5302, 'numerosity': 7000, 'average_specificity': 8.445285714285715, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 10, 'reward': 1058.0534669749482, 'perf_time': 0.7575213999998596, 'population': 5257, 'numerosity': 7000, 'average_specificity': 8.827142857142857, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 4, 'reward': 1293.9856774060174, 'perf_time': 0.509301300000061, 'population': 5218, 'numerosity': 7000, 'average_specificity': 8.955428571428572, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 4, 'reward': 1277.664799811856, 'perf_time': 0.3477192999998806, 'population': 5189, 'numerosity': 7000, 'average_specificity': 8.972428571428571, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 8, 'reward': 1066.8965579440774, 'perf_time': 0.5528624000003219, 'population': 5196, 'numerosity': 7000, 'average_specificity': 9.646428571428572, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1700, 'steps_in_trial': 4, 'reward': 1437.7043077017056, 'perf_time': 0.5388333000000785, 'population': 5181, 'numerosity': 7000, 'average_specificity': 9.277142857142858, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 3, 'reward': 1426.759214002228, 'perf_time': 0.19085350000023027, 'population': 5175, 'numerosity': 7000, 'average_specificity': 9.351, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 2200, 'steps_in_trial': 7, 'reward': 1092.5100166015388, 'perf_time': 0.5086952000001475, 'population': 5169, 'numerosity': 7000, 'average_specificity': 9.467428571428572, 'knowledge': 100.0}\n" + ] + } + ], + "source": [ + "from utils.xcs_utils import avg_experiment as XCSExp\n", + "from utils.nxcs_utils import avg_experiment as XNCSExp\n", + "\n", + "number_of_experiments = 1\n", + "explore = 0\n", + "exploit = 2500\n", + "\n", + "df_other = XNCSExp(\n", + " maze=maze,\n", + " cfg=XNCScfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=True\n", + " )\n", + "\n", + "df = XCSExp(maze=maze,\n", + " cfg=XCScfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=True\n", + " )\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificityknowledgesteps_in_trial_otherpopulation_othernumerosity_otheraverage_specificity_otherfraction_accuracy_otherknowledge_other
trial
01000.0000008.758626586770008.529143100.0100583770008.0945711.008.904110
10061132.3712030.440872557170008.101857100.05553270008.1965711.008.904110
20051203.5822710.358783546370007.843571100.045424700011.8080000.988.904110
30081102.9815081.255452540070007.811571100.0175319700015.2600001.008.904110
40071103.0105120.268604534870007.952857100.0135264700017.0811430.998.904110
50021527.2565920.093198530270008.445286100.0175232700018.5350001.0010.273973
60061128.7508120.413180529570008.691000100.0155191700020.4991431.009.589041
700101058.0534670.757521525770008.827143100.035163700021.8902861.0010.273973
80021895.6484710.087332524270008.991714100.0175139700022.7494291.009.589041
90091048.0838390.741097523270008.872571100.0185118700023.8755711.009.589041
100041293.9856770.509301521870008.955429100.045103700025.2978571.009.589041
110021570.3708680.072796518970009.063857100.075084700026.6762861.009.589041
120041277.6648000.347719518970008.972429100.085076700028.0267141.009.589041
1300121018.1248160.691511521170009.331143100.0225044700028.8897141.009.589041
140051204.6126750.338109521270009.488143100.0185032700029.5867140.999.589041
150081066.8965580.552862519670009.646429100.045024700030.3147141.009.589041
160031653.9477180.179172520570009.661571100.054982700031.8000001.009.589041
170041437.7043080.538833518170009.277143100.064974700032.6062860.999.589041
180061137.2691150.655746517770009.140429100.074952700033.0407141.0010.273973
1900121030.9208911.295460516970009.053143100.034949700033.9795711.0010.958904
200031426.7592140.190854517570009.351000100.0104949700034.5010001.009.589041
210021553.4872660.109808516470009.483429100.0204945700034.5718571.0010.273973
220071092.5100170.508695516970009.467429100.054953700034.7642861.009.589041
230041260.9062170.275596517070009.662571100.024941700034.9675711.009.589041
240081067.7051150.796736514270009.390286100.0114940700034.8742861.009.589041
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 100 0.000000 8.758626 5867 7000 \n", + "100 6 1132.371203 0.440872 5571 7000 \n", + "200 5 1203.582271 0.358783 5463 7000 \n", + "300 8 1102.981508 1.255452 5400 7000 \n", + "400 7 1103.010512 0.268604 5348 7000 \n", + "500 2 1527.256592 0.093198 5302 7000 \n", + "600 6 1128.750812 0.413180 5295 7000 \n", + "700 10 1058.053467 0.757521 5257 7000 \n", + "800 2 1895.648471 0.087332 5242 7000 \n", + "900 9 1048.083839 0.741097 5232 7000 \n", + "1000 4 1293.985677 0.509301 5218 7000 \n", + "1100 2 1570.370868 0.072796 5189 7000 \n", + "1200 4 1277.664800 0.347719 5189 7000 \n", + "1300 12 1018.124816 0.691511 5211 7000 \n", + "1400 5 1204.612675 0.338109 5212 7000 \n", + "1500 8 1066.896558 0.552862 5196 7000 \n", + "1600 3 1653.947718 0.179172 5205 7000 \n", + "1700 4 1437.704308 0.538833 5181 7000 \n", + "1800 6 1137.269115 0.655746 5177 7000 \n", + "1900 12 1030.920891 1.295460 5169 7000 \n", + "2000 3 1426.759214 0.190854 5175 7000 \n", + "2100 2 1553.487266 0.109808 5164 7000 \n", + "2200 7 1092.510017 0.508695 5169 7000 \n", + "2300 4 1260.906217 0.275596 5170 7000 \n", + "2400 8 1067.705115 0.796736 5142 7000 \n", + "\n", + " average_specificity knowledge steps_in_trial_other population_other \\\n", + "trial \n", + "0 8.529143 100.0 100 5837 \n", + "100 8.101857 100.0 5 5532 \n", + "200 7.843571 100.0 4 5424 \n", + "300 7.811571 100.0 17 5319 \n", + "400 7.952857 100.0 13 5264 \n", + "500 8.445286 100.0 17 5232 \n", + "600 8.691000 100.0 15 5191 \n", + "700 8.827143 100.0 3 5163 \n", + "800 8.991714 100.0 17 5139 \n", + "900 8.872571 100.0 18 5118 \n", + "1000 8.955429 100.0 4 5103 \n", + "1100 9.063857 100.0 7 5084 \n", + "1200 8.972429 100.0 8 5076 \n", + "1300 9.331143 100.0 22 5044 \n", + "1400 9.488143 100.0 18 5032 \n", + "1500 9.646429 100.0 4 5024 \n", + "1600 9.661571 100.0 5 4982 \n", + "1700 9.277143 100.0 6 4974 \n", + "1800 9.140429 100.0 7 4952 \n", + "1900 9.053143 100.0 3 4949 \n", + "2000 9.351000 100.0 10 4949 \n", + "2100 9.483429 100.0 20 4945 \n", + "2200 9.467429 100.0 5 4953 \n", + "2300 9.662571 100.0 2 4941 \n", + "2400 9.390286 100.0 11 4940 \n", + "\n", + " numerosity_other average_specificity_other fraction_accuracy_other \\\n", + "trial \n", + "0 7000 8.094571 1.00 \n", + "100 7000 8.196571 1.00 \n", + "200 7000 11.808000 0.98 \n", + "300 7000 15.260000 1.00 \n", + "400 7000 17.081143 0.99 \n", + "500 7000 18.535000 1.00 \n", + "600 7000 20.499143 1.00 \n", + "700 7000 21.890286 1.00 \n", + "800 7000 22.749429 1.00 \n", + "900 7000 23.875571 1.00 \n", + "1000 7000 25.297857 1.00 \n", + "1100 7000 26.676286 1.00 \n", + "1200 7000 28.026714 1.00 \n", + "1300 7000 28.889714 1.00 \n", + "1400 7000 29.586714 0.99 \n", + "1500 7000 30.314714 1.00 \n", + "1600 7000 31.800000 1.00 \n", + "1700 7000 32.606286 0.99 \n", + "1800 7000 33.040714 1.00 \n", + "1900 7000 33.979571 1.00 \n", + "2000 7000 34.501000 1.00 \n", + "2100 7000 34.571857 1.00 \n", + "2200 7000 34.764286 1.00 \n", + "2300 7000 34.967571 1.00 \n", + "2400 7000 34.874286 1.00 \n", + "\n", + " knowledge_other \n", + "trial \n", + "0 8.904110 \n", + "100 8.904110 \n", + "200 8.904110 \n", + "300 8.904110 \n", + "400 8.904110 \n", + "500 10.273973 \n", + "600 9.589041 \n", + "700 10.273973 \n", + "800 9.589041 \n", + "900 9.589041 \n", + "1000 9.589041 \n", + "1100 9.589041 \n", + "1200 9.589041 \n", + "1300 9.589041 \n", + "1400 9.589041 \n", + "1500 9.589041 \n", + "1600 9.589041 \n", + "1700 9.589041 \n", + "1800 10.273973 \n", + "1900 10.958904 \n", + "2000 9.589041 \n", + "2100 10.273973 \n", + "2200 9.589041 \n", + "2300 9.589041 \n", + "2400 9.589041 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df['steps_in_trial_other']=df_other['steps_in_trial']\n", + "df['population_other']=df_other['population']\n", + "df['numerosity_other']=df_other['numerosity']\n", + "df['average_specificity_other']=df_other['average_specificity']\n", + "df['fraction_accuracy_other']=df_other['fraction_accuracy']\n", + "df['knowledge_other']=df_other['knowledge']\n", + "\n", + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df[['average_specificity', \"average_specificity_other\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"XCS\",\"XNCS\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[\"fraction_accuracy_other\"].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"XCS\",\"XNCS\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['numerosity', 'numerosity_other']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"numerosity\")\n", + "ax.legend([\"numerosity\", \"number of rules\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['population', \"population_other\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"XCS\",\"XNCS\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['knowledge'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"Knowledge\")\n", + "ax.legend([\"XCS\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['knowledge_other'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"Knowledge\")\n", + "ax.legend([\"XNCS\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY8AAAEGCAYAAACdJRn3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA8tElEQVR4nO3dd3hUZfbA8e+Z9B4gobfQew2IoIhiQ+y9LlZAseuuuLqrq6s/1lVXVESxgb0rxYKIotINSm+hG2mhpfd5f3+8EwwhZSaZyQTmfJ4nTyZ3Zu49N5PMmbedK8YYlFJKKU84/B2AUkqpY48mD6WUUh7T5KGUUspjmjyUUkp5TJOHUkopjwX7O4DaSEhIMG3btvV3GEopdUxZtmzZPmNMYm32cUwnj7Zt25KSkuLvMJRS6pgiIttruw/ttlJKKeUxTR5KKaU8pslDKaWUx47pMQ+llHJHUVERaWlp5Ofn+zuUOhUeHk7Lli0JCQnx+r41eSiljntpaWnExMTQtm1bRMTf4dQJYwz79+8nLS2NpKQkr+/fZ91WIvKGiOwVkdVltjUUkTkikur63qDMfQ+KyCYR2SAiZ/kqLqVU4MnPz6dRo0YBkzgARIRGjRr5rLXlyzGPqcDZ5baNB+YaYzoCc10/IyLdgCuB7q7nvCQiQT6MTSkVYAIpcZTy5Tn7LHkYY34CDpTbfAEwzXV7GnBhme0fGGMKjDFbgU3AQF/Ftvv3TSx+7V5+37TKV4dQSqnjWl3PtmpijNkF4Pre2LW9BfB7mcelubYdRURGi0iKiKSkp6fXKIjsA7sZlPY6+7asqNHzlVLKE7///jtJSUkcOGA/Tx88eJCkpCS2b9/OmDFjaN++Pd27d2fo0KEsWbIEgCeeeILu3bvTq1cv+vTpc3h7fVFfBswraltVeJUqY8wUYApAcnJyja5kFRmbAEBRTvmGkVJKeV+rVq249dZbGT9+PFOmTGH8+PGMHj2aBx54gKSkJFJTU3E4HGzZsoV169axaNEiZs2axa+//kpYWBj79u2jsLDQ36dxhLpueewRkWYAru97XdvTgFZlHtcS2OmrIKIb2OThzD3oq0MopdQR7rnnHhYvXsxzzz3H/Pnzufjii1myZAn//ve/cTjsW3G7du0YOXIku3btIiEhgbCwMAASEhJo3ry5P8M/Sl23PGYAo4AJru/Ty2x/T0SeBZoDHYGlvgoiOqYBTiOYvEO+OoRSqp7618w1rN2Z6dV9dmseyyPnda/yMSEhIfz3v//l7LPP5ttvv2XDhg306dOHoKCj5wadeeaZPPbYY3Tq1InTTz+dK664glNOOcWrMdeWL6fqvg8sAjqLSJqI3IRNGmeISCpwhutnjDFrgI+AtcA3wDhjTImvYnMEBZElkTjyD/nqEEopdZSvv/6aZs2asXr16iofFx0dzbJly5gyZQqJiYlcccUVTJ06tW6CdJPPWh7GmKsquWt4JY9/AnjCV/GUly3RBBV499OHUqr+q66F4CvLly9nzpw5LF68mJNOOon333+fFStW4HQ6D3dblRUUFMSwYcMYNmwYPXv2ZNq0aVx//fV1H3glAra2VW5QDMFFmjyUUr5njOHWW2/lueeeo3Xr1vz1r3/lpZdeIjk5mUceeQRj7Nyf1NRUpk+fzoYNG0hNTT38/OXLl9OmTRt/hV+hgE0eBUExhBdn+TsMpVQAePXVV2ndujVnnHEGALfddhvr169n3Lhx7N69mw4dOtCzZ09uueUWmjdvTnZ2NqNGjaJbt2706tWLtWvX8uijj/r3JMqpL1N161xhSCwxhTVbJ6KUUp4YPXo0o0ePPvxzUFAQy5YtA6h0IHzhwoV1EltNBWzLozg0jiiT7e8wlFLqmBSwycMZHk+sycY4nf4ORSmljjkBmzwIjydUisnN1daHUkp5KmCTR1BkPABZh/b5NxCllDoGBWzyCI6ylxLJ0eShlFIeC9jkERrdEIC8zP1+jkQppY49AZs8wmJs8ijI1sq6Sinfqqwk+48//oiI8MILLxx+7O23335EKZKnn36aLl260KNHD3r37s1bb70FwKxZs+jbty+9e/emW7duvPLKK3V6TgGbPErLshfnaGVdpZRvlS3JDhwuyd6mTRsaN27MxIkTKyy5/vLLLzNnzhyWLl3K6tWr+emnnzDGUFRUxOjRo5k5cyYrVqzgt99+Y9iwYXV6TgGbPLQsu1KqLpUvyX7fffcBkJiYyPDhw5k2bdpRz3nyySd56aWXiI2NBSAuLo5Ro0aRlZVFcXExjRo1AiAsLIzOnTvX3ckQwCvMY2Jtt5WWZVcqwHw9HnZ7+RLUTXvCiAlVPqR8SfbQ0NDD940fP54RI0Zw4403Ht6WlZVFVlYW7du3P2pfDRs25Pzzz6dNmzYMHz6cc889l6uuuqrCAou+ErAtDwkKJotIRMuyK6XqSGUl2ZOSkhg4cCDvvffe4W3GGEQqusiq9dprrzF37lwGDhzI008/fUTiqQsB2/IAW5Y9uDDD32EopepSNS0EXylfkv3KK6884v6///3vXHrppQwdOhSA2NhYoqKi2LJlC+3atatwnz179qRnz55cd911JCUl1ek1PwK25QGQ64ghpFDLsiulfKuikuz333//EY/p0qUL3bp1Y9asWYe3Pfjgg4wbN47MTPs+lZmZyZQpU8jOzmbevHmHH+ePku0B3fLID44hrFiTh1LKtyoqyT516lS2b99+xOMeeugh+vbte/jnW2+9lezsbAYMGEBISAghISHcd999GGN46qmnGDNmDBEREURFRdX5lQal9CIkx6Lk5GSTkpJS4+f/9vR5NMjZQttH1ngxKqVUfbNu3Tq6du3q7zD8oqJzF5Flxpjk2uw3oLutbFn2HH+HoZRSx5yATh7OsDhiTDbHcutLKaX8IaCTh0TEEy5F5ORq60Op410gfkj05TkHdPJwRNrKulqWXanjW3h4OPv37w+oBGKMYf/+/YSHh/tk/wE92+qIsuwt2vo3GKWUz7Rs2ZK0tDTS09P9HUqdCg8Pp2XLlj7Zd0Anj5DDZdm15aHU8SwkJISkpCR/h3FcCehuqwhXWfbCLC3LrpRSngjo5BEZaytSFmlZdqWU8khAJ4/oeFuWvUTLsiullEcCOnlExdmWB1qWXSmlPBLQyUOCQsgmQsuyK6WUhwI6eYAtyx6klXWVUsojAZ88ch0xhBTpNT2UUsoTfkkeInKPiKwRkdUi8r6IhItIQxGZIyKpru8N6iKW/OAYwoqy6uJQSil13Kjz5CEiLYA7gWRjTA8gCLgSGA/MNcZ0BOa6fva5opBYIks0eSillCf81W0VDESISDAQCewELgCmue6fBlxYF4EUh8YSZTR5KKWUJ+o8eRhj/gCeBnYAu4AMY8y3QBNjzC7XY3YBjesiHluWPSegCqYppVRt+aPbqgG2lZEENAeiRORaD54/WkRSRCTFK0XOIuKJkEKyc7Qsu1JKucsf3VanA1uNMenGmCLgM2AwsEdEmgG4vu+t6MnGmCnGmGRjTHJiYmKtg3FElJZl31/rfSmlVKDwR/LYAQwSkUgREWA4sA6YAYxyPWYUML0uggmOssURc7SyrlJKua3OS7IbY5aIyCfAr0Ax8BswBYgGPhKRm7AJ5rK6iCf0cFl2bXkopZS7/HI9D2PMI8Aj5TYXYFshdSrcVVlXy7IrpZT7An6FeaSrOGJRtiYPpZRyV8Anj2hX8tCy7Eop5b6ATx6lF4QyWpZdKaXcFvDJQ4JDySUcydfiiEop5a6ATx4A2RJFcKEmD6WUcpcmD7Qsu1JKeUqTB1qWXSmlPKXJAygMiSVCy7IrpZTbNHkAxaFxRJlsf4ehlFLHDE0elJZlz8bp1LLsSinlDk0eAOHxREkB2Xl5/o5EKaWOCZo8AEekqyz7Qa2sq5RS7tDkAQRF2eSRk6GVdZVSyh2aPIAwV1n2/CxNHkop5Q5NHkB4jK1vVaBl2ZVSyi2aPChTlj1Hk4dSSrlDkwcQFZ8AaFl2pZRylyYPIDLGjnloWXallHKPJg9AQsLJJxTJP+TvUJRS6pigycMlW6IJKtDKukop5Q5NHi45jhhCijL9HYZSSh0TNHm45AfHEFasyUMppdyhycNFy7IrpZT7NHm4FIfGEuXUsuxKKeWO4MruEJF+VT3RGPOr98PxH2dYPDEmB6fT4HCIv8NRSql6rdLkATxTxX0GOM3LsfhXeDwxkkdGXj5xURH+jkYppeq1SpOHMebUugzE3xyR8QBkH9pHXFQr/wajlFL1XFUtj8NEpAfQDQgv3WaMectXQfnDEWXZW2jyUEqpqlSbPETkEWAYNnl8BYwA5gPHVfIIdZVlz8vUsuxKKVUdd2ZbXQoMB3YbY24AegNhPo3KDw6XZc/WyrpKKVUdd5JHnjHGCRSLSCywF2jn27DqXlRpWfZsrayrlFLVcWfMI0VE4oFXgWVANrDUl0H5g5ZlV0op91WbPIwxt7luviwi3wCxxpiVtTmoKxm9BvTATvu9EdgAfAi0BbYBlxtj6uydPMLVbWXyNHkopVR1Ku22EpEuru/9Sr+AhkBwdQsI3TAR+MYY0wU7hrIOGA/MNcZ0BOa6fq4zEhJBPqGQr5V1lVKqOlW1PO4FRlPxYsEaLxJ0jZsMBa4HMMYUAoUicgF2VhfANGAe8EBNjlFT2RJFsJZlV0qpalW1SHC0iDiAh40xC7x4zHZAOvCmiPTGjqPcBTQxxuxyHXuXiDSu6MkiMhqb1GjdurUXw4I8RzQhRZo8lFKqOlXOtnLNsnray8cMBvoBk40xfYEcPOiiMsZMMcYkG2OSExMTvRpYfnAMYUVaWVcpparjzlTdb0XkEhHxVrXANCDNGLPE9fMn2GSyR0SaAbi+7/XS8dxWGKxl2ZVSyh3uJI97gY+BAhHJFJEsEanxVZOMMbuB30Wks2vTcGAtMAMY5do2Cphe02PUVHFoHFFGk4dSSlXHnam6MT447h3AuyISCmwBbsAmso9E5CZgB3CZD45bJWdYnJZlV0opN7hT22quMWZ4dds8YYxZDiRXcFeN9+kNJiKeWMklI6+AuKjw6p+glFIBqqqLQYUDkUCCiDQASj+KxwLN6yC2OueIsJV1sw7tJy6qhZ+jUUqp+quqlscY4G5soljGn8kjE5jk27D8I/hwWfZ90EKTh1JKVaaqdR4TgYkicocx5oU6jMlvQrQsu1JKuaXa2VaBkjgAwmNt8ijI0rLsSilVFXem6gaMyFhXWfYcTR5KKVUVTR5lRMfbFevFuYf8G4hSStVz7l7DvAXQpuzjjTE/+SoofwmPsd1WJu+QfwNRSql6zp11Hv8BrsCuAi9xbTbAcZc8JCSSQoKR/EP+DkUppeo1d1oeFwKdjTEFPo7F/0TIlmiCtCy7UkpVyZ0xjy1AiK8DqS9yHTFall0pparhTssjF1guInOBw60PY8ydPovKj/KDYwgr1uKISilVFXeSxwzXV0AoDI4hIm+fv8NQSql6zZ2qutPqIpD6ojg0lgY52/wdhlJK1WtVFUb8yBhzuYisws6uOoIxppdPI/MTZ1g8MSZby7IrpVQVqmp53OX6fm5dBFJfmIh4YsklK6+QuKgwf4ejlFL1UlWFEXe5vm+vu3D8zxERj0MMmRkHiItq5u9wlFKqXtLyJOUER9lV5tkZ6X6ORCml6i9NHuVoWXallKqeR8lDRBqIyHE5UF6qtL6VlmVXSqnKVZs8RGSeiMSKSENgBfCmiDzr+9D843BZ9mxNHkopVRl3Wh5xxphM4GLgTWNMf+B034blP9HxCQCU5B70cyRKKVV/uZM8gkWkGXA5MMvH8fhdmJZlV0qparmTPB4DZgObjTG/iEg7INW3YfmPhEZTTBAOLcuulFKVcqc8ycfAx2V+3gJc4sug/EqELInGUZjp70iUUqrecmfAvJ2IzBSRdBHZKyLTRSSpLoLzl1xHNCGaPJRSqlLudFu9B3wENAOaY1shH/gyKH/LD4ohtEiTh1JKVcad5CHGmLeNMcWur3eooFDi8aQwJJaIEr2mh1JKVcad5PGDiIwXkbYi0kZE/gZ8KSINXWs/jjvFoXFEmWx/h6GUUvWWOxeDusL1fUy57TdiWyDtvBpRPVASFkuMyabEaQjSsuxKKXUUd2ZbHdeD4xUK/7Mse7yWZVdKqaO4M9sqUkQeFpEprp87ishxfY0PR2QDgsVJZqauMldKqYq4M+bxJlAIDHb9nAb8u7YHFpEgEflNRGa5fm4oInNEJNX1vUFtj1FTwZH20DmH9FrmSilVEXeSR3tjzFNAEYAxJg/wxkDAXcC6Mj+PB+YaYzoCc10/+0VojJZlV0qpqriTPApFJALX9FwRaQ8U1OagItISGAm8VmbzBcA01+1pwIW1OUZtlNa3ytey7EopVSF3ksejwDdAKxF5F9sqeKCWx30O+BvgLLOtSZlL3+4CGlf0RBEZLSIpIpKSnu6bq/1FxtrKulqWXSmlKlZt8jDGfIstx3498D6QbIz5oaYHdA227zXGLKvJ840xU4wxycaY5MTExJqGUaUoLcuulFJVqnaqrojMNcYMB76sYFtNDAHOF5FzgHAgVkTeAfaISDNjzC5XCfi9Ndx/rYVHa1l2pZSqSqUtDxEJd60gT3Bdfrah66sttsZVjRhjHjTGtDTGtAWuBL43xlwLzABGuR42Cphe02PUWlgMxTgQLcuulFIVqqrlMQa4G5solvHnDKtMYJIPYpkAfCQiNwE7gMt8cAz3iJAjUQQVZPgtBKWUqs8qTR7GmInARBG5wxjzgi8OboyZB8xz3d4P1LQrzOtyHTGEaGVdpZSqkDuzrXaLSAyAa6X5ZyLSz8dx+V1eUAyhxVpZVymlKuJO8viHMSZLRE4CzsKuwZjs27D8rzAklghNHkopVSF3kkeJ6/tIYLIxZjoQ6ruQ6ofi0FginZo8lFKqIu4kjz9E5BXgcuArEQlz83nHtJKweGLIocR5XF/3SimlasSdJHA5MBs42xhzCGgI/NWXQdUL4XHEkUNmbqG/I1FKqXrHnet55AKflfl5F7DLl0HVB46IeEKkhMzMDBpEV1gpRSmlAtZx3/1UU0GlZdkztCy7UkqVp8mjEmFall0ppSqlyaMSYTGNACjI1uShlFLlafKoRGSsTR6F2VpZVymlytPkUQkty66UUpXT5FGJsNKy7Jo8lFLqKJo8KhMWixNB8rWyrlJKlafJozIOB9lEEVRwyN+RKKVUvaPJowq5QdEEa1l2pZQ6iiaPKuQHxRKmyUMppY6iyaMKBSExRJRoZV2llCpPk0cVikPjiHTm+DsMpZSqdzR5VMEZFkcM2RSXOP0dilJK1SuaPKpgwuOJJYfMvCJ/h6KUUvWKJo8qOCLiCZNiMrN00FwppcrS5FGFoKjSsuxaHFEppcrS5FGFUFfyyNWy7EopdQRNHlUId1XWLcjS5KGUUmVp8qhChCt5FOUc8HMkSilVv2jyqEJUnKssu17TQymljqDJowqlZdmdeZo8lFKqLE0eVQmPA9Cy7EopVY4mj6o4gmxZ9kJNHkopVZYmj2rkBkUToslD1YUcndWnjh2aPKqRFxRDaLFW1lU+tuJD+G87+OI2yNXZfar+q/PkISKtROQHEVknImtE5C7X9oYiMkdEUl3fG9R1bBUpCI4lQpOH8iVjYP7/IDIBVn4ILw6AVZ/Y7UrVU/5oeRQD9xljugKDgHEi0g0YD8w1xnQE5rp+9rvi0DiinJo8lA9tmgvp6+CsJ2D0jxDfGj69Cd69DA7t8Hd0SlWozpOHMWaXMeZX1+0sYB3QArgAmOZ62DTgwrqOrSK2LHsORVqWXfnKohcgphl0vxia9oCbv4OzJ8D2hTBpECx6CZwl/o4yMBXmQIlW1a6IX8c8RKQt0BdYAjQxxuwCm2CAxn4M7TATHqdl2ZXv7F4FW+bBCWMgONRucwTBoFth3GJoOwRmPwivDbePVXUn7xC8OBC+vM/fkdRLfkseIhINfArcbYxxu+a5iIwWkRQRSUlPT/ddgC6OyAaESxGZWdp1pXxg0SQIiYL+1x99X3xruPojuPQNyEiDV06BOY9AUV6dhxmQ5j4GmWmw4gPI2efvaOodvyQPEQnBJo53jTGfuTbvEZFmrvubAXsreq4xZooxJtkYk5yYmOjzWEvLsmdrWXblbZm77MB4v+sgopL5ISLQ4xIYtxT6XAULnoOXTrStFeU7vy+FlDeg0wgoKYBf3/J3RPWOP2ZbCfA6sM4Y82yZu2YAo1y3RwHT6zq2ioRG2RIleZn6yaPeMQbyM47dWUlLXwFTYruoqhPZEC6YBKNm2oTy1gU6rddXSopg5l0Q2wIueQ3angwpb+q4UznBfjjmEOA6YJWILHdt+zswAfhIRG4CdgCX+SG2o4TF2ORRkKX/pH7jLIFD2yF9I+zbAPs2/nk7PwNGPgMDbvZ3lJ4pyLafbLueBw3auv+8pKFw60L48SlY+DzsXA5j54NDl2x5zcLnYe9auOoDCIuGgbfAR3+BjbOhyzn+jq7eqPPkYYyZD0gldw+vy1jcERFrk0dRdh0lj5JiCPLxy+J0gnH6/jieKim2U1bTXQmiNEns32S7DkpFNYbEzrY7Z8dimD8R+l1f/86nKsvftYnvxDs8f25IBJz+CCR0gi/GQuq30Pls78cYiA5ssYm56/nQeYTd1nkkxDSHpVM0eZRxDP23+Ud0vKsse24dVNbdsxZePc3+gZ49AaJ9MOFs/Zfw1V/tJ9/OZ0OXc6HDcAiN8v6xPPXB1ZA6294WB8S3sW+QHU6DhM42YSR0PHJ8YN0s+PAaWDcDelzsn7g95SyBxS9BqxOg1YCa76fnpfD947DoRU0e3mAMzLoHgkJhxFN/bg8KhuQb4IcnYN8mSOjgvxjrEU0e1QiNsheEcuYd8v3Bfn4aMLBupl04dtYT0Oca28ddW1m7bdJYNwMad4ekU2Dj13ZFc3CETSBdz4NOZ1U+eOtLfyyzieOEW6HvtdCoA4SEV/+8ziOgYTv7Btr9Iu/8rnxt/Sw4uA3OeLx2+wkKsVN85/zTdl817+OF4ALYyo/sRIRznobYZkfe12+UbZH88hqMmOCX8Oob7SitTmlZdl8nj32psPozOGGs7cNu3BWmj4O3zof9m2u+X6fTDva9OND22Q7/J4z5ES6aDPdvgr/MsLN9/vgVPh8D/+1gB2N/ec0mnLqy8EUIi4VT/24XyrmTOMC1JuI2m3x2LPZtjN6y8EVokARdRtZ+X/1GQWi0TZ6q5nIP2PU0LQdA8k1H3x/TBLpdAMvfs612pcmjWkHB5BCBo8DHlXXn/w+Cw+HE2233zPVfwbn/s58oJw+Gn5/1fKVr+kaYOhJm3Q3NesFti+Dk++wnVrDN8XanwDn/hXvWwM3f2+Mf+t0ujHqmM7x2BiyYWLsEVp1DO2DtdOg/CsJjPX9+n2tsa+lYeAP9fSmkLbUJzxFU+/1FxEO/v9gPHhlptd9foPr2H3YM6ryJlU8+GHgLFGTAqo/qNrZ6SpOHG3IdMYQUub2O0XMHt9uFSP1HQbRr7YrDAck32vn9Hc+Auf+CKcMgbVn1+ysuhHn/gZeH2FkjpVM8G7Wv/DkOB7TsD2f8C+5YBrcthlMfhuJ82y3yQj+7JsEXFr9su5tOGFuz54dG2k+L67/0bZLzhoUv2NZsn6u9t88TxgIGlrzsvX0Gkq0/w/J3YPAd0KR75Y9rdQI07QlLXzt2p4d7kSYPN+QFxxDmy+SxYKIdIB5859H3xTaDK96BK96F3P3w+unw9fjKm847lsArJ8O8J+0Yxu2/2DEET8YCRGy32Sl/hbE/w10roVlv+O5fUFxQ/fM9kZ9hF2B1vwjiWtZ8PwNH2xbV4pe8F5u3HdhqxzuSb7RTQL2lQRvbpbJsGuT78O/0eFSUb1vmDdrC0L9V/VgRGHAL7F0DOxbVRXT1miYPNxQGxxJe4qPyJJm74Le3oe81ENei8sd1PRfGLYH+N8CSyfDSINj47Z/352fYrqY3zrLF3K7+2Ja18MaMrQZt4PRHIWOHfYPypmXToDDLdpfVRkwT6Hk5/PZu/V04t3gySBAMHOP9fZ94BxRkwm/veH/fx7P5z9qp4COftS3Y6vS8zLYcl07xfWz1nCYPNxSFxvquLPvCF+zUzSF3V//Y8Dg491m4cTaERMJ7l8EnN9pZIpNOgF9et10Yty2GTmd6N852p9qVtj/91yYnbygpsl0tbU/2zkyhE8dBcR6kvF77fXlb3kH7xt7z0qNn8nhDy/7Q+kSboEqKvb//41H6BjuW2PMyO9vQHaGR0OdaOyOyLieU1EOaPNzgs7LsOfvsKuNel0PDJPef13qQ7U4a9qD9I/7sFohoCDfPtdMIvdklUkrEztTK2eu9vvU1X0DmH7VvdZRq0g3aD4elr3q/e622Ut6Eohyb4HzlxNtt63DdDN8d43jhdMLMu+36prP+z7PnDrgJnMWwbKovIjtmaPJwR3g8cb4oy75okh2QPulez58bHAbDxsPYBXDBS3b6bcv+3o2vvFYDbaG4BRPtJ+naMMZex6JRR+joxVbS4Nshe4/vBvdrorjQdnO0G2YHXCthajsIW3bNiw7oVu23t2HHQjjz8T8nqbirUXvocLr9QBDA1/rQ5OEGiYgnQgo5lO3F+d15B+0n5G4XQGKnmu8nsZMdLymdfutrpz1sx1cWvlC7/WxfALtW2E/i3qzL1O5Uuwhy0aT68wa6+lPI2lVlKZLpy/9g8ITvSdlWi/GaY3HNSw1NX/4Hg56cy+ItNah2nb0X5vwD2gyBvtfVLIABt0D2btvyD1CaPNwQ5Kqsm+PNsuxLX7UDxUPv994+60LTHtDjUtu3nl1h1Xz3LHwRIhtB7yu9FxvY7rUTx9kZMZu/9+6+a8IY2xJI7Fppv/ranZk88OlKdmXkc9O0FFL31GJ87Vha81JD7y/dwd0fLmdPVj73fricDE97BL550F4T5dznal6RoOMZtnzOL6/V7Pm1lbPPdr35kSYPN4RE23IdeZleSh4FWXZKaacRVXZj1Fun/t2OKfz8TM2evy/VlkYZcLMt8udtPS+F6Cb14w10yzzYs9omtAreqDJyixj7zjLiI0L5/LbBhAY7GPXGUnZl1PCCT8fSmpcaeH3+Vh78bBXDOiXy/i2D2JNVwCPTV7u/g9TvYPUntqu4Ni1+R5Ad+9i+APasqfl+aqK4EN6+0I51+pEmDzeEx9j6Vl4ry57yhu22OtZaHaUatbdrR1LesKvDPbVoEgSF2aa/LwSH2XUfm7+v+3/s8ha9aKsA97r8qLucTsNdH/7Grow8Xrq2H31bN2DqDQPIzC/m+jd+ISO3hv3px8Kalxp48ftUHp+1lhE9mvLKdckMateIO07rwBfLdzJzxc7qd1CYC1/ea8fZTq7BOGN5fa+zVSGWvlr7fXli3pP2ksQ9Lqnb45ajycMNEbE2eXilLHtRnh0vaHcqtEyu/f785ZS/AWJXspeTmV/EQ5+v4rSn5/H7gdwj78zZByveh95XeD5Q6YnkG+105kWTfHeM6uxdB5u+s2/mwWFH3f3c3FTmbUjnn+d1p19r27rt3jyOKdf1Z8u+bG55K4X8ohpcgOhYWPPiAWMMT32znqe/3cjFfVvwwlV9CQ22b123n9qBPq3iefiL1ezOyK9qJzD77/a6MOc9V+Hr4bHIhrYLd+VHdhywLmxfBPOfsyVp/FweXpOHG6LibFn24hwvlGX/9S3ISYehf639vvwprqXtdlrxnq2h5fLN6l2c/syPvL90B7sy8hn7zrIj3wB/ed3OMPPW9NzKRDa0/f8rP/LffPxFL9qKxQOOLrQ3d90enp+byiX9WnLtCa2PuG9whwSevbwPS7cd4O4PllPirMHAf31e8+IBp9Pwr5lreWneZq45oTVPX9ab4KA/37aCgxz874o+FBY7uf/jFTgr+139/AwsexOG3AVtT/JegANvtlOwl7/vvX1WJj8TPh9tF+16Or3YBzR5uCHUdR1zU9vpqcWFdppr6xOh7RAvROZnJ99rP93/8AS7M/IZ/VYKY9/5lcSYMKaPO4kXr+7Lmp2ZPPzFajsNtSgffnnVTs1N7Fzrw29Jz+aMZ3/k2TkbK37TGHSrnY/vj9XAWXts4upztU1kZWzbl8PdHy6ne/NYnrioB1LBWMh5vZvzz3O78c2a3Tw6Y43n03jr85oXN5U4DeM/W8nUhdu4+aQk/n1hDxyOo39XSQlR/OPcbszftI+pC7cdvaPf3rHXPel1BQx/1LtBNu8LLZLt37WvB7C/GW+LX178qm/WcnlIk4c7IuIBkLxaNk1XvG8XxR2rYx3lRSVgBt0Ga7/gjmff5KfUdB4c0YXp44bQs2Ucw7s24c7hHflkWRrvLtlhrx2Sk+6VVsferHz+8sZSth/I5fm5qdz8VsrRs24atbdlz3953Xur4t31y6t2DUC5RYG5hcWMfWcZQQ7h5Wv7Ex5SeWXdG09KYswp7Xh78XYm/bDJ8xgOr3n52PPn+llRiZO7P1zORylp3Dm8Iw+N7Fphki111cBWDO/SmAnfrGdj2dlqG2fDjDuh/Wlw/ou+uVzvwNG2xMnWed7fd6m1M+zVJ0++D1oNpLjESW6hfysJaPJwR1AIeYTjKDxU832UFNs6Os372k+E5RzMKeR/czYyZML3jHz+Z+764DdemJvK16t2sXFPFoXF/p2WV5HUPVn8Zd1ADppoHor4lNl3D2XMKe2P6Fa4e3hHhnVO5LGZq8j76Xk7uyxpaK2Om5VfxPVv/MKBnEI+HnMij1/Yg59T07ngxflHvnGArZSaf8heh8EXnE5bwn7Td7DoJbtq+c1z7LhW53OOqGRsjOHBz1axYU8Wz1/Zl1YNq6+l9MBZXbi4bwue/nYjH/3yu2extTsVmvSARZPILyzm7UXbOP3ZH3l81lrvV0vwovyiEm5951dmrtjJgyO6cO8ZnapMHAAiwoRLehETFszdHyy3/y9pKfDRKPs3d/lbEBzqm4C7XwiRCbbari9k7YaZd9n3jlMeYFVaBhdMWsDjs9b55nhu0isJuinHEU1wYS0qlq7+1F497qwnj5iyuSczn9d+3sK7S3aQW1jCKZ3sIHLKtoNMX/7nDJIgh9CmYSTtEqPp0Nh+tU+MokPjaGLC62iBoEtBcQmTftjM5HmbiA4LJq3bGPqsewayV0CjwUc81uEQnruiD09MnEhExiYyB08ithZX+ysoLmHsO8vYuCeL10Yl07tVPL1bxdO1aQy3vvsrF05awNOX9eacnq76Ua1OsN0KiybZQfSaXkOjuNBe33rfhj+vrb5vg70saVGZVk14vO2S63XFUeNaUxduY/ryndx/ZieGdnJvsoDDIfzn0l6kZxfw4OeraBQdyvCuTdyLWYT85LGEf3k790/4H7Nyu9EuMYrX529l1R8ZTLq6H4kxXhg49qLcwmLGvL2Mn1P38fgF3bnuxLZuPzcxJowJl/TilrdSmDpjDqNTx0JMU7jmYwiL8V3QwWF2AHvBc3b2YXzrap/iNmPsReGK8sg7bzLPfJ3KGwu20ig6jKEdE7x3nBqQWpdE8KPk5GSTkpJSJ8dKe7IPO5yNGfzwt9U/uDynE146ARwh9iqBDgc79ufy8k+b+SQljRJjOL93c24d1p5OTf78I88tLGZLeg6b07PZtNd+bU7PZuu+HIpK/nzdOjaO5n9X9KFHizhvnGqVlm49wPjPVrIlPYcL+zTnH+d2o1FoCTzf19bnuuHrCtczZE8ZQfYf67m32Vu8dcuQI1on7rJTW5czc8VOnr28Nxf3O7KE+57MfG59Zxm/7jjE2FPa89ezOhPkEFjzOXx8vS1t3/U89w9oDGz5wV6oa9sCMGUG/uNa2eupJ3S26wUSOtnbUQkVnv/SrQe4+tXFDOvcmCnX9a+w774q2QXFXDVlMal7s3jvlkGHZ2dV5mBOIW8u3MY7C1L52tzG3vB2ZF/+CYPaNWTGip088OlK4iNCefm6/vRpFe9RLLVijJ1xt2+DLUy4L9XePrCFwlZDGLP7fH78vYSnLu3Npf1rVqL/iQ++Z9S6W2gSYQgZ/Z0t2eJrh36Hib3Y0vlmbv5jJMO7NObmk9vRJNbNK2JWZumr8NX9pCY/yg1repN2MI+rT2jNA2d3IS6i5h8aRWSZMaZW0z01ebhp81NDycwrou8jNajjv+YL+HgUXPoGGxLOZPK8TcxcuYsgES5NbsnYoe1p3ciNctAuxSVOdhzItQklPZu3F23nQE4hEy7pyUV9a3FNjCpk5BUx4ev1vL90By0bRPDERT0Pt5IAu9L2y/vgmk/s6tuydq2EV05mVdd7Oe+3ZG4+KYmHz+3m0fGNMTw+ax1vLNjK+BFdGHtKxRe2Kix28q+Za3h3yQ5O7pjA81f2pUG4A17oCzHN4abZ1R/M6YQNX9kZOjt/hZhmtiXRuJtNFI06ejRguSczn5HPzycmPJjptw8htoYtxfSsAi59eSEZeUV8MnYwHRofHcPuDNuSfW+pbcme1b0JjzaYTbOUp2wdtKY9AFizM4Mxby9jb2YBj1/YnSsGePHTMthK0Yd2uFpprtZa6e38Q38+LiQSEjpSFNUM2TSHDBPF9oH/oN85t9Rs9Xd+BiVvnEPB3k3cEfo4z917Q520zJ1Ow5YXL6DB/l+5NPw1tmeWEOxw1Oj/+7D0jZhXTmZ9WC9G7L+L9onR/N/FvRiY1LD651ZDk0cdJo8Nz52HObCVCUlv0MHVddS+cTQdEqNpEFVFX6ox8MrJ5OflcFfDl5m9bh+RoUFcc0Jr73wyAfZlFzDu3V9ZsvUANwxpy9/P6UpIDT7ZV8QYwzerd/PIjDXsyy7gppOSuOeMTkSGluvxLC6EF5Nt2fjRPx45MPnZaLvi+Z41PPJtGtMWbeeFq/pyXu/mbscx5afNPPnVem4Y0pZ/ntut2j7wD3/ZwT++WEPj2DBeua4/3Xe8Z2er3Dy38vU1JcW2e3H+s5C+3l4gaMjddsZUDdcFFBY7uerVxazblcnntw2hc9PadZ9s35/DJZMXEhYcxGe3DT7897N9fw4v/7iFT5dV0JLNPQD/6w7dLrTXrnc5mFPInR/8xs+p+7jmhNY8cl73w+sn3FaUbweL97laEaWJYv8mOyW7VGSC7c5LcLXSEjthEjqxKiuab9bsZfrynTTM3sg7jd8l7sBKW3hw5LN2Wqq7igvgnUtgxyJST3+ds2aGcFHfljxzeW/PzslDGXlF3PPhcgo2zuXd0P+j8PzJ7GpzAa/8tKXKnoWqmOICDr1wKmTsYGTRf7h02ADGndqesGAvXLoYTR51mjwOvX8zZvM8ro55ky3p2RSUGcBuFBVK+0SbTErHITo0jqZ5XAQbfv6Erj/czP1FY/g2ZDjXD0nihsFtq044NVBU4uTJr9bx5oJtnJDUkEnX9CMhunb92bsy8vjn9DXMWbuH7s1jmXBxL3q2rKJrbMWHdh76ZVPtlQEBMv6Aib3savIREw6/ma7dmckX49x7M/38tzTu+XAFI3s144Ur+7rd5bP890OMfXsZh/IKeeb89oz87nRofypcXu6CVkX5dibLgol2EVnjbrZ8RfeL7HXea+GR6auZtmg7L17dl3N7uZ8sq7IqLYMrpiyidcNInrioJ28v2saMFTsJdji4LLklYyr6pPvVX20V2LtXHXE9kRKn4b+zN/Dyj5vp36YBL13Tr+IPNHmHyrQiNrjGfDba35cp/V8Q299/RJJw3XZNVy4ucfLLtoPMXrObb9fsZmdGPkEOYVC7htx5WkdOaBtvu2rmPgYYW4hz4JjqXwenEz690XZRXvQK9L6SZ7/dwPPfb2LyNf0Y0bNZ1c+voY17shj9VgppB/N45NyuXLvsMiQ8Fm6xddVKW4LvLtlBXpFtCd42rAO9q+gq3L4/h9+m3s+FWe/xn9iHuOiaW91OOu7S5FGHyYPZD9ligB3PxCR04kBkEttozuqipqw7IIe7kA6VKSkRGiR8GPQPmjgy+PKUWVw1uAPRYb6do/D5b2mM/3QVDaNCefna/lX+kVbG6TS8s2Q7T32zgWKnk3tO78RNJyVVP07hLIHJQ+zaitsW23/4Of+0M4/u/M1+ksd245z7wnyiw6rvxvlpYzo3Tv2FAW0bMvXGAR5/8krPKmDce7+ydOsB3mv7FSfueQ8pjaUg2y4cW/iirZDaoj+cfD90OtsrUzpLk15NuumqU/p7KXYaIkODuHZQG24+KYnGlbVkD2yB5/vBSffA6Y8cdfeslTv52ycrSArN5H+nhdMpaPefrYj0DfY6LqWCwqBRBzvmU5ocEjtDw/YVXo0vv6iEBZv2MXvNbuas3cPB3CLCgh0M7ZTIWd2bMrxL46M/TB363XaDps6GZn3g/BegWa+Kz80Y26pc8jKc8ZhdCIj9QHXJ5IXsOJDL7LuHeqWVX9ZXq3Zx/8criAwNZvK1/RjQtiEseQW+/pv98HHi7RBlq1OUjkFNXbCVzPxiTu6YwG3DOjCoXcPDrejiEievzd/Kj9/N5B3Ho2xtcR7tbn7L4/Exd2jyqMvksXuVvYpe+kY4sBlKCv+8L7rp4UHTnJj27Ahqyfri5uT8sZprN95F0dnPEDLo5rqJE1j9h+3PTs8u4N8X9uDy5FZuP3fjnizGf7qSX3cc4qQOCTx5UU/P+mvXzYIPr7Fz6rtfBM92q/DTvjsDyCvTDnHllMW0aRTFh2MG1XisoLRV9vWCZcwPv5vinlcS3qi1fbPJOwhJp9j580lDa15ltZw1OzO4ZPJCereM592bT6jRBIHqzF23h/W7s7h6YGv3WrIfXgtbf4a7VtiKyOVmjjnTN+IoM3PMhMchCZ0PdzOR0NkmjAZtq521ll1QzA/r9/LNmt3MW7+XnMISYsKCOa1rY87u3pRTOice3fVZnjGw5jP4+gHb9Tb4djhl/NEJav5z8N0jthx9udmMm9OzGfn8zwxMasS0GwZU293pjrKttb6t45l8TX+axrkSU2EOfGHXPhESaS8bPfh2iLWtzqz8It5bsoNXf97KvuwC+rWOZ9ypHUiMCePBz1axbecefoh+mIaRwQTfthDCY2sdb0U0edRl8iirpNg218sPBO7baK8jfZjYqYJ3LocQ737qqc6BnELueP9XFmzaz3WD2vCPc7tV2Z+dX1TCSz9sYvKPm4kOC+bhkd24uF8Lz//ZjIFXT7NvTieMti2PSsYZ3pi/lcdmreX+Mztx+2kdj7hv2z7btx8eEsTntw2u/BO1Bz7/LQ3H52O4wDEfgEOtzyD29AdwtB5Q632DHR9a/Ucm36zZxUcpaQSJMPOOk+rPdNgdS+CNMwEByvzfx7Y43M2UF9eeiSsdfLo9klP7d+exC3tWuZCxuMTJ7wfz2OxqeZd+X/NHJoUlThKiQzmjW1PO6t6Ewe0TPB9TAZs45vzTXsCpQVtbSr39qfa+5e/DF2Oh+8VwyesVthjfXrSNf0xfw7/O786owW09P34ZZceJrj6hNY+c163i1vDe9XaW3qqPQRx23GzIXYfX/eQXlfDxsjRenreZPw7ZCsqJMWF81uJ9Wm77FLnhK2gz+Oj9eokmD38lj8oYY1f0Hk4qqbYUR8fT/RJOcYmT/87ewCs/bSHZ1Z9d0ZtwhdNvazNesvkHWzJagqDlgEpnOBljuPvD5cxYsZOpNww8PHurdFZRZl4Rn9w6mPaJ3ivFsGH9GjZ/+T8mHUhmTUkrGseEcUa3JpzdoymD2jXyeKJBidPwy7YDfLPadsn8cSiPIIcwsG1DHhrZtU6mT7vNGDuDrDCnzLhEx6PWQDidhue+28jz32+id8s4Jl/bnwaRoWxOt1PF/0wUOWzdl0NhmQWHjWPC6NA4mu7NYzmze1P6tW5gp0t7w9af7WK5A5uh99X2+iifj7Fvstd8UumkBmMMN0z9hUWb9/PlnSdXOEvNHWVnqD12QXeuHOjGDLWD22DB87ZEirPIJrmT74Um3QHbKp65Yid/HMzjxoS1RH3+F1fX4qM1itFdmjzqW/Kop2au2MnfPllJTHgwk6/tT/82do1AtdNva8oYmHYebPu52rUVuYXFXPzSQnZn5jPz9pNoEBV6eD3D+7cMom816xlqKjO/iB/W72X2mt38sD6dvKISYsODGd61CWd1b8opnRKJCK34E3dBsasPf/Ue5qzbw4GcQkKDHQztmMBZ3ZtyetcmXp8Q4Q+z1+zmvo9WUFjipKjEefjCjA6B1g0jj5hxaCeLRNdq7YFbivJs9/GCiXZsrUlPuOGrart39mbmc9ZzPxEa7GBA24aHJ7V0aBxN20ZRVbauwF65sHRtzGRX+XyPZO22C1VT3oDCbFt94KR7oZWr1Zu1ByafaFuBN8/13Wp4F00emjzctn53JqPfWsaujDwePb87DSND+eeMNeyvavptbaRvhJUfwKkPVds/vm1fDue9OJ9WDSJpFB3Kws37mXJdf/dXUtdSflEJP6faAd3v1u3hUG4R4SEOhnZM5OweTRnepQlBQXI42czbkE52QTHRYcGc1qUxZ3VvyrDOiUT5eDKEP2zam83UhVtJjA4//GbbplFktW+2Prdnjf00P+Qu2zXshiVb9jP5x81sTs8m7WDeEcmwVcPII6bgt3fdjgoNYsLX63lt/lYGtrWzGGvVDZl7wM4mWzLZNd421CaRxZNh6492mnvjLjXfv5s0eWjy8Mih3ELu+mA5P25MB3Bv+m0dmbtuDzdNs6/lU5f04vIB7g/ye1NxiZOlWw/wzZrdfLtmD7sz8wl2CA4RCkucNIoK5czuTTize1MGt2/ktXn3qm7lFZawZV9p1YYc2xW3N/uobrjosGCyC4q5fnBbHhrpvfVTdqbfVDsTMdt1yYCz/wODxnpn/9XQ5KHJw2MlTsOrP28hNMjBX05s45NZQDX1ybI0nMZ4NDvMl5xOw4q0Q3y7dg9FxU7O6NaE5LYNvdeHr+qdEqfhd1f1htJSQEM6JHi0oNUjRfn2mjiZu2DYg76p+luB4zJ5iMjZwEQgCHjNGDOhssdq8lBKKc95I3nUn4+dgIgEAZOAEUA34CoR8e7qKqWUUrVWr5IHMBDYZIzZYowpBD4ALvBzTEoppcqpb8mjBVD2ijdprm2HichoEUkRkZT09PQ6DU4ppZRV35JHRSORRwzKGGOmGGOSjTHJiYleWJOglFLKY/UteaQBZafatAR2VvJYpZRSflLfkscvQEcRSRKRUOBKYIafY1JKKVVOvVoSa4wpFpHbgdnYqbpvGGPW+DkspZRS5dSr5AFgjPkK+MrfcSillKpcvVsk6AkRSQe212IXCcA+L4VzrNFzD1yBfP6BfO7w5/m3McbUasbRMZ08aktEUmq7yvJYpecemOcOgX3+gXzu4N3zr28D5koppY4BmjyUUkp5LNCTxxR/B+BHeu6BK5DPP5DPHbx4/gE95qGUUqpmAr3loZRSqgY0eSillPJYQCYPETlbRDaIyCYRGe/veHxBRLaJyCoRWS4iKa5tDUVkjoikur43KPP4B12/jw0icpb/Iq8ZEXlDRPaKyOoy2zw+XxHp7/q9bRKR50Wk3l82sJJzf1RE/nC9/stF5Jwy9x1P595KRH4QkXUiskZE7nJtD5TXvrLz9/3rb4wJqC9s2ZPNQDsgFFgBdPN3XD44z21AQrltTwHjXbfHA/9x3e7m+j2EAUmu30+Qv8/Bw/MdCvQDVtfmfIGlwInYCs9fAyP8fW41PPdHgfsreOzxdu7NgH6u2zHARtc5BsprX9n5+/z1D8SWRyBfcOoCYJrr9jTgwjLbPzDGFBhjtgKbsL+nY4Yx5ifgQLnNHp2viDQDYo0xi4z9b3qrzHPqrUrOvTLH27nvMsb86rqdBazDXgMoUF77ys6/Ml47/0BMHtVecOo4YYBvRWSZiIx2bWtijNkF9o8OaOzafrz+Tjw93xau2+W3H6tuF5GVrm6t0m6b4/bcRaQt0BdYQgC+9uXOH3z8+gdi8qj2glPHiSHGmH7Y68GPE5GhVTw2UH4npSo73+Pp9zAZaA/0AXYBz7i2H5fnLiLRwKfA3caYzKoeWsG24/H8ff76B2LyCIgLThljdrq+7wU+x3ZD7XE1T3F93+t6+PH6O/H0fNNct8tvP+YYY/YYY0qMMU7gVf7shjzuzl1EQrBvnO8aYz5zbQ6Y176i86+L1z8Qk8dxf8EpEYkSkZjS28CZwGrseY5yPWwUMN11ewZwpYiEiUgS0BE7eHas8+h8Xd0bWSIyyDXT5C9lnnNMKX3jdLkI+/rDcXburlhfB9YZY54tc1dAvPaVnX+dvP7+ni3gjy/gHOyshM3AQ/6Oxwfn1w47o2IFsKb0HIFGwFwg1fW9YZnnPOT6fWzgGJhlUsE5v49tnhdhP0XdVJPzBZJd/2ibgRdxVWGoz1+VnPvbwCpgpesNo9lxeu4nYbtXVgLLXV/nBNBrX9n5+/z11/IkSimlPBaI3VZKKaVqSZOHUkopj2nyUEop5TFNHkoppTymyUMppZTHNHko5SERiReR26q4f6Eb+8j2blRK1S1NHkp5Lh44KnmISBCAMWZwXQekVF0L9ncASh2DJgDtRWQ5dmFeNnaRXh+gm4hkG2OiXfWGpgMNgBDgYWNMvV+1rJQ7dJGgUh5yVS+dZYzpISLDgC+BHsaWuKZM8ggGIo0xmSKSACwGOhpjTOlj/HQKStWatjyUqr2lpYmjHAGedFU0dmJLXDcBdtdlcEr5giYPpWovp5Lt1wCJQH9jTJGIbAPC6ywqpXxIB8yV8lwW9pKf1YkD9roSx6lAG9+GpVTd0ZaHUh4yxuwXkQUishrIA/ZU8tB3gZkikoKtdrq+jkJUyud0wFwppZTHtNtKKaWUxzR5KKWU8pgmD6WUUh7T5KGUUspjmjyUUkp5TJOHUkopj2nyUEop5bH/B2KVlP5vuyTQAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['steps_in_trial', 'steps_in_trial_other']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"XCS\",\"XNCS\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "239.0\n", + "341.0\n" + ] + } + ], + "source": [ + "print(sum(df[\"steps_in_trial\"])/number_of_experiments)\n", + "print(sum(df[\"steps_in_trial_other\"])/number_of_experiments)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XCS_XNCS_Woods1.ipynb b/XCS_Experiments/XCS_XNCS_Woods1.ipynb new file mode 100644 index 0000000..e390200 --- /dev/null +++ b/XCS_Experiments/XCS_XNCS_Woods1.ipynb @@ -0,0 +1,1195 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like:\n", + "\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[36mX\u001b[0m\n" + ] + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_woods\n", + "\n", + "maze = gym.make('Woods1-v0')\n", + "print(\"This is how maze looks like:\")\n", + "situation = maze.reset()\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS\n", + "from lcs.agents.xcs import Configuration as XCSConfig\n", + "from lcs.agents.xncs import XNCS\n", + "from lcs.agents.xncs import Configuration as XNCSConfig\n", + "\n", + "from utils.xcs_utils import xcs_metrics\n", + "from utils.nxcs_utils import xncs_metrics\n", + "\n", + "XCScfg = XCSConfig(number_of_actions=8,\n", + " max_population=1800,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " deletion_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover chi\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_metrics)\n", + "\n", + "XNCScfg200 = XNCSConfig(number_of_actions=8,\n", + " max_population=1800,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08, # mu\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " deletion_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=200)\n", + "\n", + "XNCScfg20 = XNCSConfig(number_of_actions=8,\n", + " max_population=1800,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08, # mu\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " deletion_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=20)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 2, 'reward': 1000.0, 'perf_time': 0.0008067999999994413, 'population': 16, 'numerosity': 16, 'average_specificity': 7.8125}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 6, 'reward': 1157.5857441317623, 'perf_time': 0.10796330000000154, 'population': 821, 'numerosity': 1800, 'average_specificity': 16.94}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 8, 'reward': 1086.0956101731317, 'perf_time': 0.11955930000000592, 'population': 1005, 'numerosity': 1800, 'average_specificity': 27.981666666666666}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 3, 'reward': 1404.2745831404786, 'perf_time': 0.07714440000000877, 'population': 1074, 'numerosity': 1800, 'average_specificity': 34.62611111111111}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 3, 'reward': 1357.9110277160848, 'perf_time': 0.025111600000002454, 'population': 1005, 'numerosity': 1800, 'average_specificity': 39.952222222222225}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 3, 'reward': 1374.3892545965841, 'perf_time': 0.03336330000001908, 'population': 1001, 'numerosity': 1800, 'average_specificity': 40.721666666666664}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 17, 'reward': 1003.4831186340296, 'perf_time': 0.15037889999999265, 'population': 1007, 'numerosity': 1800, 'average_specificity': 41.77388888888889}\n", + "INFO:lcs.agents.Agent:{'trial': 1400, 'steps_in_trial': 6, 'reward': 1222.105489636979, 'perf_time': 0.06402439999999388, 'population': 965, 'numerosity': 1800, 'average_specificity': 46.108333333333334}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 3, 'reward': 1427.7168966277436, 'perf_time': 0.025213800000017272, 'population': 963, 'numerosity': 1800, 'average_specificity': 48.04611111111111}\n", + "INFO:lcs.agents.Agent:{'trial': 1800, 'steps_in_trial': 4, 'reward': 1266.0433394760344, 'perf_time': 0.038608899999985624, 'population': 965, 'numerosity': 1800, 'average_specificity': 42.01611111111111}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 1, 'reward': 2280.366921267221, 'perf_time': 0.006330100000013772, 'population': 1002, 'numerosity': 1800, 'average_specificity': 42.435}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 1, 'reward': 2280.366921267221, 'perf_time': 0.006330100000013772, 'population': 1002, 'numerosity': 1800, 'average_specificity': 42.435}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 8, 'reward': 1071.2087515372593, 'perf_time': 0.07123300000000654, 'population': 985, 'numerosity': 1800, 'average_specificity': 43.791666666666664}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 8, 'reward': 1071.2087515372593, 'perf_time': 0.07123300000000654, 'population': 985, 'numerosity': 1800, 'average_specificity': 43.791666666666664}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 1, 'reward': 2279.192958903505, 'perf_time': 0.010671400000035192, 'population': 964, 'numerosity': 1800, 'average_specificity': 44.40555555555556}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 1, 'reward': 2279.192958903505, 'perf_time': 0.010671400000035192, 'population': 964, 'numerosity': 1800, 'average_specificity': 44.40555555555556}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 2, 'reward': 1901.4201884981003, 'perf_time': 0.017653699999982564, 'population': 948, 'numerosity': 1800, 'average_specificity': 42.92777777777778}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 2, 'reward': 1901.4201884981003, 'perf_time': 0.017653699999982564, 'population': 948, 'numerosity': 1800, 'average_specificity': 42.92777777777778}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 2, 'reward': 1775.7480429688203, 'perf_time': 0.02171720000001187, 'population': 945, 'numerosity': 1800, 'average_specificity': 40.91444444444444}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 2, 'reward': 1775.7480429688203, 'perf_time': 0.02171720000001187, 'population': 945, 'numerosity': 1800, 'average_specificity': 40.91444444444444}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 30, 'reward': 1000.0, 'perf_time': 0.02990180000000464, 'numerosity': 75, 'population': 75, 'average_specificity': 7.84, 'fraction_accuracy': 1.0}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 20, 'reward': 1001.0684273020161, 'perf_time': 0.4675950999999827, 'numerosity': 1800, 'population': 1180, 'average_specificity': 15.915, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 3, 'reward': 1379.686067618065, 'perf_time': 0.08544510000001537, 'numerosity': 1800, 'population': 1317, 'average_specificity': 21.81277777777778, 'fraction_accuracy': 0.98}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 7, 'reward': 1099.264139272129, 'perf_time': 0.15209650000008423, 'numerosity': 1800, 'population': 1384, 'average_specificity': 22.59111111111111, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 2, 'reward': 1504.148735635783, 'perf_time': 0.02758819999996831, 'numerosity': 1800, 'population': 1399, 'average_specificity': 28.865555555555556, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 50, 'reward': 3.6559838738994e-05, 'perf_time': 2.2815519999999196, 'numerosity': 1800, 'population': 1423, 'average_specificity': 30.850555555555555, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 1, 'reward': 1711.1598515613723, 'perf_time': 0.026682600000071943, 'numerosity': 1800, 'population': 1463, 'average_specificity': 27.95, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1400, 'steps_in_trial': 2, 'reward': 1550.1428252024803, 'perf_time': 0.06273680000003878, 'numerosity': 1800, 'population': 1432, 'average_specificity': 31.779444444444444, 'fraction_accuracy': 0.98}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 7, 'reward': 1093.0535719562304, 'perf_time': 0.2364590000000817, 'numerosity': 1800, 'population': 1483, 'average_specificity': 28.786666666666665, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1800, 'steps_in_trial': 42, 'reward': 1000.0005660445934, 'perf_time': 1.5690153000000464, 'numerosity': 1800, 'population': 1470, 'average_specificity': 28.20722222222222, 'fraction_accuracy': 0.98}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 4, 'reward': 1254.5308172798873, 'perf_time': 0.09333629999991899, 'numerosity': 1800, 'population': 1507, 'average_specificity': 27.08, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 4, 'reward': 1254.5308172798873, 'perf_time': 0.09333629999991899, 'numerosity': 1800, 'population': 1507, 'average_specificity': 27.08, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 2, 'reward': 1673.0842140959414, 'perf_time': 0.04026180000005297, 'numerosity': 1800, 'population': 1473, 'average_specificity': 30.498333333333335, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 2, 'reward': 1673.0842140959414, 'perf_time': 0.04026180000005297, 'numerosity': 1800, 'population': 1473, 'average_specificity': 30.498333333333335, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 30, 'reward': 1000.0432639857017, 'perf_time': 0.4874178000000029, 'numerosity': 1800, 'population': 1429, 'average_specificity': 34.99722222222222, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 30, 'reward': 1000.0432639857017, 'perf_time': 0.4874178000000029, 'numerosity': 1800, 'population': 1429, 'average_specificity': 34.99722222222222, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 1, 'reward': 1710.0001438414754, 'perf_time': 0.043604899999991176, 'numerosity': 1800, 'population': 1456, 'average_specificity': 34.772777777777776, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 1, 'reward': 1710.0001438414754, 'perf_time': 0.043604899999991176, 'numerosity': 1800, 'population': 1456, 'average_specificity': 34.772777777777776, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 4.91656381664482e-05, 'perf_time': 0.7954824999999346, 'numerosity': 1800, 'population': 1437, 'average_specificity': 38.42388888888889, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 4.91656381664482e-05, 'perf_time': 0.7954824999999346, 'numerosity': 1800, 'population': 1437, 'average_specificity': 38.42388888888889, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': 0.0, 'perf_time': 0.06621370000016213, 'numerosity': 111, 'population': 105, 'average_specificity': 7.846846846846847, 'fraction_accuracy': 0.96}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 6, 'reward': 1159.5135637315277, 'perf_time': 0.14407840000012584, 'numerosity': 1800, 'population': 1143, 'average_specificity': 17.824444444444445, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 12, 'reward': 1016.8376339359654, 'perf_time': 0.3346696000000975, 'numerosity': 1800, 'population': 1320, 'average_specificity': 20.779444444444444, 'fraction_accuracy': 0.98}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 12, 'reward': 1018.5353804965479, 'perf_time': 0.5161216999999851, 'numerosity': 1800, 'population': 1380, 'average_specificity': 25.29111111111111, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 11, 'reward': 1028.9865580629587, 'perf_time': 0.2975836000000527, 'numerosity': 1800, 'population': 1363, 'average_specificity': 29.932222222222222, 'fraction_accuracy': 0.98}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 8, 'reward': 1114.6309899952016, 'perf_time': 0.25611449999996694, 'numerosity': 1800, 'population': 1437, 'average_specificity': 25.500555555555554, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 9, 'reward': 1059.042130012046, 'perf_time': 0.29323199999998906, 'numerosity': 1800, 'population': 1432, 'average_specificity': 26.684444444444445, 'fraction_accuracy': 0.95}\n", + "INFO:lcs.agents.Agent:{'trial': 1400, 'steps_in_trial': 17, 'reward': 1003.7130534422074, 'perf_time': 0.6470022000000881, 'numerosity': 1800, 'population': 1477, 'average_specificity': 26.985, 'fraction_accuracy': 0.97}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 1, 'reward': 2214.7710409052706, 'perf_time': 0.053560699999934513, 'numerosity': 1800, 'population': 1472, 'average_specificity': 27.92222222222222, 'fraction_accuracy': 0.98}\n", + "INFO:lcs.agents.Agent:{'trial': 1800, 'steps_in_trial': 3, 'reward': 1357.9233459795164, 'perf_time': 0.059826799999882496, 'numerosity': 1800, 'population': 1478, 'average_specificity': 28.54611111111111, 'fraction_accuracy': 0.95}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 2, 'reward': 1660.379484786392, 'perf_time': 0.020633099999940896, 'numerosity': 1800, 'population': 1454, 'average_specificity': 29.829444444444444, 'fraction_accuracy': 0.97}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 2, 'reward': 1660.379484786392, 'perf_time': 0.020633099999940896, 'numerosity': 1800, 'population': 1454, 'average_specificity': 29.829444444444444, 'fraction_accuracy': 0.97}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': 3.6552644154800746e-05, 'perf_time': 0.6723105999999461, 'numerosity': 1800, 'population': 1440, 'average_specificity': 36.025, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': 3.6552644154800746e-05, 'perf_time': 0.6723105999999461, 'numerosity': 1800, 'population': 1440, 'average_specificity': 36.025, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 22, 'reward': 1000.0000000195255, 'perf_time': 0.2429108000001179, 'numerosity': 1800, 'population': 1430, 'average_specificity': 38.919444444444444, 'fraction_accuracy': 0.98}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 22, 'reward': 1000.0000000195255, 'perf_time': 0.2429108000001179, 'numerosity': 1800, 'population': 1430, 'average_specificity': 38.919444444444444, 'fraction_accuracy': 0.98}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 47, 'reward': 1000.0001021274282, 'perf_time': 0.531361299999844, 'numerosity': 1800, 'population': 1385, 'average_specificity': 44.06055555555555, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 47, 'reward': 1000.0001021274282, 'perf_time': 0.531361299999844, 'numerosity': 1800, 'population': 1385, 'average_specificity': 44.06055555555555, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 2.385089144282033e-42, 'perf_time': 0.7609427000002142, 'numerosity': 1800, 'population': 1385, 'average_specificity': 42.263888888888886, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 2.385089144282033e-42, 'perf_time': 0.7609427000002142, 'numerosity': 1800, 'population': 1385, 'average_specificity': 42.263888888888886, 'fraction_accuracy': 0.99}\n" + ] + } + ], + "source": [ + "from utils.xcs_utils import avg_experiment as XCSExp\n", + "from utils.nxcs_utils import avg_experiment as XNCSExp\n", + "\n", + "number_of_experiments = 1\n", + "explore = 2000\n", + "exploit = 500\n", + "\n", + "df = XCSExp(maze=maze,\n", + " cfg=XCScfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False)\n", + "\n", + "df20 = XNCSExp(maze=maze,\n", + " cfg=XNCScfg20,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False)\n", + "\n", + "df200 = XNCSExp(maze=maze,\n", + " cfg=XNCScfg200,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=False)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificitysteps_in_trial_20population_20numerosity_20average_specificity_20fraction_accuracy_20steps_in_trial_200population_200numerosity_200average_specificity_200fraction_accuracy_200
trial
021000.0000000.00080716167.8125003075757.8400001.00501051117.8468470.96
10011782.8526730.003133679180018.99444414679114415.1459790.991751126213.6172741.00
20061157.5857440.107963821180016.940000201180180015.9150000.9961143180017.8244441.00
30021000.0000230.032814990180023.00444441260180018.2566670.9911252180016.8661111.00
40081086.0956100.1195591005180027.98166731317180021.8127780.98121320180020.7794440.98
500191002.4653350.4563291047180030.340000101343180023.5644440.9911362180023.4000001.00
60031404.2745830.0771441074180034.62611171384180022.5911110.99121380180025.2911111.00
70081095.7549500.1563631073180035.10500021392180025.9033331.00231377180024.6472221.00
80031357.9110280.0251121005180039.95222221399180028.8655561.00111363180029.9322220.98
900111023.1218030.2296231029180037.428889241415180028.5788891.0031402180026.4061110.94
100031374.3892550.0333631001180040.721667501423180030.8505560.9981437180025.5005561.00
110041633.0887010.075050991180041.140000341431180029.7677780.98391435180026.3094440.98
1200171003.4831190.1503791007180041.77388911463180027.9500001.0091432180026.6844440.95
130051210.3456780.048048969180041.26833321443180031.5350000.99151466180029.2000000.96
140061222.1054900.064024965180046.10833321432180031.7794440.98171477180026.9850000.97
150051212.9753710.023662980180049.86055631431180030.8838891.0041465180027.0933330.97
160031427.7168970.025214963180048.04611171483180028.7866671.0011472180027.9222220.98
170011853.9222780.0057501012180041.71055621476180027.3894441.00501482180027.7955560.96
180041266.0433390.038609965180042.016111421470180028.2072220.9831478180028.5461110.95
190021515.8825440.0105271016180041.471111111469180029.9138890.98171472180028.2983330.94
200012280.3669210.0063301002180042.43500041507180027.0800000.9921454180029.8294440.97
210081071.2087520.071233985180043.79166721473180030.4983331.00501440180036.0250000.99
220012279.1929590.010671964180044.405556301429180034.9972221.00221430180038.9194440.98
230021901.4201880.017654948180042.92777811456180034.7727780.99471385180044.0605560.99
240021775.7480430.021717945180040.914444501437180038.4238891.00501385180042.2638890.99
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 2 1000.000000 0.000807 16 16 \n", + "100 1 1782.852673 0.003133 679 1800 \n", + "200 6 1157.585744 0.107963 821 1800 \n", + "300 2 1000.000023 0.032814 990 1800 \n", + "400 8 1086.095610 0.119559 1005 1800 \n", + "500 19 1002.465335 0.456329 1047 1800 \n", + "600 3 1404.274583 0.077144 1074 1800 \n", + "700 8 1095.754950 0.156363 1073 1800 \n", + "800 3 1357.911028 0.025112 1005 1800 \n", + "900 11 1023.121803 0.229623 1029 1800 \n", + "1000 3 1374.389255 0.033363 1001 1800 \n", + "1100 4 1633.088701 0.075050 991 1800 \n", + "1200 17 1003.483119 0.150379 1007 1800 \n", + "1300 5 1210.345678 0.048048 969 1800 \n", + "1400 6 1222.105490 0.064024 965 1800 \n", + "1500 5 1212.975371 0.023662 980 1800 \n", + "1600 3 1427.716897 0.025214 963 1800 \n", + "1700 1 1853.922278 0.005750 1012 1800 \n", + "1800 4 1266.043339 0.038609 965 1800 \n", + "1900 2 1515.882544 0.010527 1016 1800 \n", + "2000 1 2280.366921 0.006330 1002 1800 \n", + "2100 8 1071.208752 0.071233 985 1800 \n", + "2200 1 2279.192959 0.010671 964 1800 \n", + "2300 2 1901.420188 0.017654 948 1800 \n", + "2400 2 1775.748043 0.021717 945 1800 \n", + "\n", + " average_specificity steps_in_trial_20 population_20 numerosity_20 \\\n", + "trial \n", + "0 7.812500 30 75 75 \n", + "100 18.994444 14 679 1144 \n", + "200 16.940000 20 1180 1800 \n", + "300 23.004444 4 1260 1800 \n", + "400 27.981667 3 1317 1800 \n", + "500 30.340000 10 1343 1800 \n", + "600 34.626111 7 1384 1800 \n", + "700 35.105000 2 1392 1800 \n", + "800 39.952222 2 1399 1800 \n", + "900 37.428889 24 1415 1800 \n", + "1000 40.721667 50 1423 1800 \n", + "1100 41.140000 34 1431 1800 \n", + "1200 41.773889 1 1463 1800 \n", + "1300 41.268333 2 1443 1800 \n", + "1400 46.108333 2 1432 1800 \n", + "1500 49.860556 3 1431 1800 \n", + "1600 48.046111 7 1483 1800 \n", + "1700 41.710556 2 1476 1800 \n", + "1800 42.016111 42 1470 1800 \n", + "1900 41.471111 11 1469 1800 \n", + "2000 42.435000 4 1507 1800 \n", + "2100 43.791667 2 1473 1800 \n", + "2200 44.405556 30 1429 1800 \n", + "2300 42.927778 1 1456 1800 \n", + "2400 40.914444 50 1437 1800 \n", + "\n", + " average_specificity_20 fraction_accuracy_20 steps_in_trial_200 \\\n", + "trial \n", + "0 7.840000 1.00 50 \n", + "100 15.145979 0.99 1 \n", + "200 15.915000 0.99 6 \n", + "300 18.256667 0.99 1 \n", + "400 21.812778 0.98 12 \n", + "500 23.564444 0.99 1 \n", + "600 22.591111 0.99 12 \n", + "700 25.903333 1.00 23 \n", + "800 28.865556 1.00 11 \n", + "900 28.578889 1.00 3 \n", + "1000 30.850556 0.99 8 \n", + "1100 29.767778 0.98 39 \n", + "1200 27.950000 1.00 9 \n", + "1300 31.535000 0.99 15 \n", + "1400 31.779444 0.98 17 \n", + "1500 30.883889 1.00 4 \n", + "1600 28.786667 1.00 1 \n", + "1700 27.389444 1.00 50 \n", + "1800 28.207222 0.98 3 \n", + "1900 29.913889 0.98 17 \n", + "2000 27.080000 0.99 2 \n", + "2100 30.498333 1.00 50 \n", + "2200 34.997222 1.00 22 \n", + "2300 34.772778 0.99 47 \n", + "2400 38.423889 1.00 50 \n", + "\n", + " population_200 numerosity_200 average_specificity_200 \\\n", + "trial \n", + "0 105 111 7.846847 \n", + "100 751 1262 13.617274 \n", + "200 1143 1800 17.824444 \n", + "300 1252 1800 16.866111 \n", + "400 1320 1800 20.779444 \n", + "500 1362 1800 23.400000 \n", + "600 1380 1800 25.291111 \n", + "700 1377 1800 24.647222 \n", + "800 1363 1800 29.932222 \n", + "900 1402 1800 26.406111 \n", + "1000 1437 1800 25.500556 \n", + "1100 1435 1800 26.309444 \n", + "1200 1432 1800 26.684444 \n", + "1300 1466 1800 29.200000 \n", + "1400 1477 1800 26.985000 \n", + "1500 1465 1800 27.093333 \n", + "1600 1472 1800 27.922222 \n", + "1700 1482 1800 27.795556 \n", + "1800 1478 1800 28.546111 \n", + "1900 1472 1800 28.298333 \n", + "2000 1454 1800 29.829444 \n", + "2100 1440 1800 36.025000 \n", + "2200 1430 1800 38.919444 \n", + "2300 1385 1800 44.060556 \n", + "2400 1385 1800 42.263889 \n", + "\n", + " fraction_accuracy_200 \n", + "trial \n", + "0 0.96 \n", + "100 1.00 \n", + "200 1.00 \n", + "300 1.00 \n", + "400 0.98 \n", + "500 1.00 \n", + "600 1.00 \n", + "700 1.00 \n", + "800 0.98 \n", + "900 0.94 \n", + "1000 1.00 \n", + "1100 0.98 \n", + "1200 0.95 \n", + "1300 0.96 \n", + "1400 0.97 \n", + "1500 0.97 \n", + "1600 0.98 \n", + "1700 0.96 \n", + "1800 0.95 \n", + "1900 0.94 \n", + "2000 0.97 \n", + "2100 0.99 \n", + "2200 0.98 \n", + "2300 0.99 \n", + "2400 0.99 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df['steps_in_trial_20']=df20['steps_in_trial']\n", + "df['population_20']=df20['population']\n", + "df['numerosity_20']=df20['numerosity']\n", + "df['average_specificity_20']=df20['average_specificity']\n", + "df['fraction_accuracy_20']=df20['fraction_accuracy']\n", + "\n", + "df['steps_in_trial_200']=df200['steps_in_trial']\n", + "df['population_200']=df200['population']\n", + "df['numerosity_200']=df200['numerosity']\n", + "df['average_specificity_200']=df200['average_specificity']\n", + "df['fraction_accuracy_200']=df200['fraction_accuracy']\n", + "\n", + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df[['average_specificity', \"average_specificity_20\",\"average_specificity_200\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"XCS\",\"XNCS_20\",\"XNCS_200\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['population', \"population_20\", \"population_200\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"XCS\",\"XNCS_20\",\"XNCS_200\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['fraction_accuracy_20', 'fraction_accuracy_200']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"Fraction Accuracy\")\n", + "ax.legend([\"XNCS_20\",\"XNCS_200\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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yKlSUunFg6RSWKqkIiJyqpRUeul4u4ljns+YMq37JSJ962s/lRdeeAEz41//9V+PH3vTTTexYsWK48/vvvtuzj33XM477zwuvPBCHn74YQCeeuop5s6dy4UXXsisWbP4/ve/3+fnf/Ob3zw+kXL+/Pns3r37+GsrV66kpqaGmpoaVq5cmeKa90/Dm3o5crCRw5RQWTIi06GISDKeWQLNr6b2PSecD1d+td9D4vdTWb58+fH9VKZOnUpFRQXf/va3WbRoEcOHD3/Ped/73vdYs2YNa9eupbi4mHfeeYef/exnHDt2jLq6OtauXUtVVRUdHR3s2rWrz8+fO3cu9fX1jBw5kvvvv5/Pf/7z/OhHP+LAgQPcdddd1NfXY2bMmzePq666itLS0lR8MwNSS6WXrvYW2rxEs+lFZEA333wzL7300vH9VG699VYAysvLmT9/fsJWwle+8hXuu+8+iouLASgpKeH6668nEonQ2dnJuHHjACgsLOScc87p87Mvu+wyRo4cCcDFF19MQ0MDAL/4xS+4/PLLKSsro7S0lMsvv5yf//znKa13f9RS6SUv2Jv+HCUVkewwQIsiTD37qSxYsIBnn332Pa2SJUuWcOWVV/KpT33qeFkkEiESiSRcIr+srIyrrrqKqVOnMn/+fD760Y9y7bXXHt/sqz8PPvggV155JQB79+59z46SVVVV7N2790yqeUrUUully7gF/GfXxVRoiRYRSUL8firxqqurueiii3j00UePl7l7v/PffvCDH/D8889z0UUXcffdd78nIfXlhz/8IfX19dx2223HP6O3dM65U1Lp5Zniv+RXRX9K4bCTd24TEYnXez+Vpqam97z+xS9+ka997WvH91cpLi5m1KhR7Ny5s8/3PP/887n55ptZs2bNgPutPPfccyxbtozVq1cf36a4qqqKPXv2HD+moaGBs84663SreMqUVHppae/QkvciMqBE+6l87nOfe88x5557LrNmzeKpp546Xnb77bezePFi2tvbAWhvb2f58uVEo1F+9atfHT9uoP1WNmzYwKJFi1i9ejUVFRXHy6+44gqeffZZDh48yMGDB3n22We54oorUlTrgalPpZeW9iNKKiIyoET7qaxYseI9Q3sBli5dyty5c48/v+GGG4hGo3zgAx+goKCAgoICbr31Vtydr3/96yxatIgRI0YwatSo9wxD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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['numerosity_20', 'numerosity_200']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"numerosity\")\n", + "ax.legend([\"XCS\",\"XNCS_20\",\"XNCS_200\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['steps_in_trial', 'steps_in_trial_20', 'steps_in_trial_200']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"XCS\",\"XNCS_20\",\"XNCS_200\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "127\n", + "357\n", + "454\n" + ] + } + ], + "source": [ + "print(sum(df['steps_in_trial']))\n", + "print(sum(df['steps_in_trial_20']))\n", + "print(sum(df['steps_in_trial_200']))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XCS_XNCS_Woods1_pre_populated.ipynb b/XCS_Experiments/XCS_XNCS_Woods1_pre_populated.ipynb new file mode 100644 index 0000000..7e294c4 --- /dev/null +++ b/XCS_Experiments/XCS_XNCS_Woods1_pre_populated.ipynb @@ -0,0 +1,1040 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like:\n", + "\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[36mX\u001b[0m\n" + ] + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_woods\n", + "\n", + "maze = gym.make('Woods1-v0')\n", + "print(\"This is how maze looks like:\")\n", + "situation = maze.reset()\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS\n", + "from lcs.agents.xcs import Configuration as XCSConfig\n", + "from lcs.agents.xncs import XNCS\n", + "from lcs.agents.xncs import Configuration as XNCSConfig\n", + "\n", + "from utils.xcs_utils import xcs_metrics\n", + "from utils.nxcs_utils import xncs_metrics\n", + "\n", + "XCScfg = XCSConfig(number_of_actions=8,\n", + " max_population=1800,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " deletion_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover chi\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_metrics)\n", + "\n", + "XNCScfg200 = XNCSConfig(number_of_actions=8,\n", + " max_population=1800,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08, # mu\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " deletion_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=200)\n", + "\n", + "XNCScfg20 = XNCSConfig(number_of_actions=8,\n", + " max_population=1800,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08, # mu\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " deletion_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=20)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 1, 'reward': 1000.0, 'perf_time': 0.007115500000004715, 'population': 1608, 'numerosity': 1800, 'average_specificity': 8.09388888888889}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 4, 'reward': 1453.624725184914, 'perf_time': 0.05274989999999491, 'population': 1521, 'numerosity': 1800, 'average_specificity': 8.33611111111111}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 2, 'reward': 1628.8421748810078, 'perf_time': 0.013923000000005459, 'population': 1497, 'numerosity': 1800, 'average_specificity': 8.47888888888889}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 7, 'reward': 1116.7679302783154, 'perf_time': 0.06485539999999901, 'population': 1511, 'numerosity': 1800, 'average_specificity': 9.2}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 2, 'reward': 1711.1722449879185, 'perf_time': 0.0130927000000014, 'population': 1510, 'numerosity': 1800, 'average_specificity': 9.747222222222222}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 6, 'reward': 1149.9895471736977, 'perf_time': 0.10961669999998946, 'population': 1489, 'numerosity': 1800, 'average_specificity': 9.466666666666667}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 6, 'reward': 1203.6806328691923, 'perf_time': 0.11548569999999359, 'population': 1503, 'numerosity': 1800, 'average_specificity': 9.88}\n", + "INFO:lcs.agents.Agent:{'trial': 1400, 'steps_in_trial': 4, 'reward': 1340.6472952635195, 'perf_time': 0.05446240000000557, 'population': 1503, 'numerosity': 1800, 'average_specificity': 10.29888888888889}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 6, 'reward': 1155.0517641686956, 'perf_time': 0.11012420000000134, 'population': 1501, 'numerosity': 1800, 'average_specificity': 10.531666666666666}\n", + "INFO:lcs.agents.Agent:{'trial': 1800, 'steps_in_trial': 6, 'reward': 1184.0276804345788, 'perf_time': 0.2541136000000108, 'population': 1502, 'numerosity': 1800, 'average_specificity': 9.36}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 7, 'reward': 1000.0, 'perf_time': 0.11926900000000273, 'numerosity': 1800, 'population': 1592, 'average_specificity': 8.056111111111111, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': 1904.7962349962777, 'perf_time': 0.034061299999990524, 'numerosity': 1800, 'population': 1539, 'average_specificity': 9.983333333333333, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 1, 'reward': 2292.6599478038684, 'perf_time': 0.010175099999997883, 'numerosity': 1800, 'population': 1539, 'average_specificity': 10.966111111111111, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 5, 'reward': 1204.4801286445847, 'perf_time': 0.06642250000001582, 'numerosity': 1800, 'population': 1537, 'average_specificity': 13.433333333333334, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 16, 'reward': 1005.9032804506923, 'perf_time': 0.2911842999999976, 'numerosity': 1800, 'population': 1529, 'average_specificity': 16.426666666666666, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 12, 'reward': 1016.603530213879, 'perf_time': 0.14656170000000657, 'numerosity': 1800, 'population': 1527, 'average_specificity': 17.814444444444444, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 5, 'reward': 1400.7806264800956, 'perf_time': 0.07593760000003158, 'numerosity': 1800, 'population': 1519, 'average_specificity': 19.356666666666666, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1400, 'steps_in_trial': 5, 'reward': 1234.6125981907896, 'perf_time': 0.05583169999999882, 'numerosity': 1800, 'population': 1516, 'average_specificity': 19.933333333333334, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 3, 'reward': 1360.710313382751, 'perf_time': 0.032544400000006135, 'numerosity': 1800, 'population': 1524, 'average_specificity': 19.217777777777776, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1800, 'steps_in_trial': 1, 'reward': 1961.5714634541446, 'perf_time': 0.010396100000036768, 'numerosity': 1800, 'population': 1517, 'average_specificity': 19.82888888888889, 'fraction_accuracy': 1.0}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': 0.0, 'perf_time': 1.0561733999999774, 'numerosity': 1800, 'population': 1619, 'average_specificity': 8.398333333333333, 'fraction_accuracy': 0.94}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 4, 'reward': 1318.7575129773509, 'perf_time': 0.0921422999999777, 'numerosity': 1800, 'population': 1544, 'average_specificity': 9.857777777777779, 'fraction_accuracy': 0.51}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 3, 'reward': 1357.9794279878845, 'perf_time': 0.0611925000000042, 'numerosity': 1800, 'population': 1527, 'average_specificity': 15.620555555555555, 'fraction_accuracy': 0.91}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': 7.832313699956546e-05, 'perf_time': 0.7751072999999451, 'numerosity': 1800, 'population': 1526, 'average_specificity': 17.574444444444445, 'fraction_accuracy': 0.64}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 1, 'reward': 1759.3994933381646, 'perf_time': 0.014418499999919732, 'numerosity': 1800, 'population': 1527, 'average_specificity': 21.519444444444446, 'fraction_accuracy': 0.95}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 3, 'reward': 1365.8898974032709, 'perf_time': 0.05921089999992546, 'numerosity': 1800, 'population': 1522, 'average_specificity': 23.775, 'fraction_accuracy': 0.86}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 2, 'reward': 1550.0668203876912, 'perf_time': 0.03162940000004255, 'numerosity': 1800, 'population': 1499, 'average_specificity': 27.47388888888889, 'fraction_accuracy': 0.82}\n", + "INFO:lcs.agents.Agent:{'trial': 1400, 'steps_in_trial': 4, 'reward': 1323.1428820684428, 'perf_time': 0.05503719999990153, 'numerosity': 1800, 'population': 1500, 'average_specificity': 28.29277777777778, 'fraction_accuracy': 0.77}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 41, 'reward': 1000.0007972508675, 'perf_time': 0.7624890000000732, 'numerosity': 1800, 'population': 1506, 'average_specificity': 26.201666666666668, 'fraction_accuracy': 0.93}\n", + "INFO:lcs.agents.Agent:{'trial': 1800, 'steps_in_trial': 4, 'reward': 1300.7584619403642, 'perf_time': 0.05984579999994821, 'numerosity': 1800, 'population': 1538, 'average_specificity': 25.40111111111111, 'fraction_accuracy': 0.89}\n" + ] + } + ], + "source": [ + "from utils.xcs_utils import avg_experiment as XCSExp\n", + "from utils.nxcs_utils import avg_experiment as XNCSExp\n", + "\n", + "number_of_experiments = 1\n", + "explore = 0\n", + "exploit = 2000\n", + "\n", + "df = XCSExp(maze=maze,\n", + " cfg=XCScfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=True\n", + " )\n", + "\n", + "df20 = XNCSExp(maze=maze,\n", + " cfg=XNCScfg20,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=True)\n", + "\n", + "df200 = XNCSExp(maze=maze,\n", + " cfg=XNCScfg200,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=True)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificitysteps_in_trial_20population_20numerosity_20average_specificity_20fraction_accuracy_20steps_in_trial_200population_200numerosity_200average_specificity_200fraction_accuracy_200
trial
011000.0000000.007116160818008.0938897159218008.0561111.0050161918008.3983330.94
10071091.0421470.080965153818008.1433334153818008.3961110.993154718009.4744441.00
20041453.6247250.052750152118008.3361113153918009.9833331.004154418009.8577780.51
30031429.2727380.019097150818008.66777831533180010.5416671.00461550180012.8388890.59
40021628.8421750.013923149718008.47888911539180010.9661111.0031527180015.6205560.91
50061202.0141220.070977151518008.50055621547180011.5605561.00381535180016.7744440.34
60071116.7679300.064855151118009.20000051537180013.4333331.00501526180017.5744440.64
70061144.5124390.062709150918009.95333341522180015.4644441.00201541180018.9716670.92
80021711.1722450.013093151018009.747222161529180016.4266671.0011527180021.5194440.95
90031576.6556620.019542149518009.29000061531180016.4011111.00181512180024.1416670.99
100061149.9895470.109617148918009.466667121527180017.8144441.0031522180023.7750000.86
110071101.6328050.101002151218009.171111161516180019.0233331.0051507180026.0316670.76
120061203.6806330.115486150318009.88000051519180019.3566671.0021499180027.4738890.82
130021902.2887220.029495150218009.84777811510180019.3722221.0011508180027.1527780.93
140041340.6472950.0544621503180010.29888951516180019.9333331.0041500180028.2927780.77
150071121.5904360.0880641494180010.14444411526180019.4711111.0061494180027.9461110.94
160061155.0517640.1101241501180010.53166731524180019.2177781.00411506180026.2016670.93
170041282.6509790.1021581491180010.04722291506180020.0288891.00201509180026.7650000.89
180061184.0276800.254114150218009.36000011517180019.8288891.0041538180025.4011110.89
190012107.2612120.007106149618009.49888961520180019.4533331.0021549180023.9055560.94
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 1 1000.000000 0.007116 1608 1800 \n", + "100 7 1091.042147 0.080965 1538 1800 \n", + "200 4 1453.624725 0.052750 1521 1800 \n", + "300 3 1429.272738 0.019097 1508 1800 \n", + "400 2 1628.842175 0.013923 1497 1800 \n", + "500 6 1202.014122 0.070977 1515 1800 \n", + "600 7 1116.767930 0.064855 1511 1800 \n", + "700 6 1144.512439 0.062709 1509 1800 \n", + "800 2 1711.172245 0.013093 1510 1800 \n", + "900 3 1576.655662 0.019542 1495 1800 \n", + "1000 6 1149.989547 0.109617 1489 1800 \n", + "1100 7 1101.632805 0.101002 1512 1800 \n", + "1200 6 1203.680633 0.115486 1503 1800 \n", + "1300 2 1902.288722 0.029495 1502 1800 \n", + "1400 4 1340.647295 0.054462 1503 1800 \n", + "1500 7 1121.590436 0.088064 1494 1800 \n", + "1600 6 1155.051764 0.110124 1501 1800 \n", + "1700 4 1282.650979 0.102158 1491 1800 \n", + "1800 6 1184.027680 0.254114 1502 1800 \n", + "1900 1 2107.261212 0.007106 1496 1800 \n", + "\n", + " average_specificity steps_in_trial_20 population_20 numerosity_20 \\\n", + "trial \n", + "0 8.093889 7 1592 1800 \n", + "100 8.143333 4 1538 1800 \n", + "200 8.336111 3 1539 1800 \n", + "300 8.667778 3 1533 1800 \n", + "400 8.478889 1 1539 1800 \n", + "500 8.500556 2 1547 1800 \n", + "600 9.200000 5 1537 1800 \n", + "700 9.953333 4 1522 1800 \n", + "800 9.747222 16 1529 1800 \n", + "900 9.290000 6 1531 1800 \n", + "1000 9.466667 12 1527 1800 \n", + "1100 9.171111 16 1516 1800 \n", + "1200 9.880000 5 1519 1800 \n", + "1300 9.847778 1 1510 1800 \n", + "1400 10.298889 5 1516 1800 \n", + "1500 10.144444 1 1526 1800 \n", + "1600 10.531667 3 1524 1800 \n", + "1700 10.047222 9 1506 1800 \n", + "1800 9.360000 1 1517 1800 \n", + "1900 9.498889 6 1520 1800 \n", + "\n", + " average_specificity_20 fraction_accuracy_20 steps_in_trial_200 \\\n", + "trial \n", + "0 8.056111 1.00 50 \n", + "100 8.396111 0.99 3 \n", + "200 9.983333 1.00 4 \n", + "300 10.541667 1.00 46 \n", + "400 10.966111 1.00 3 \n", + "500 11.560556 1.00 38 \n", + "600 13.433333 1.00 50 \n", + "700 15.464444 1.00 20 \n", + "800 16.426667 1.00 1 \n", + "900 16.401111 1.00 18 \n", + "1000 17.814444 1.00 3 \n", + "1100 19.023333 1.00 5 \n", + "1200 19.356667 1.00 2 \n", + "1300 19.372222 1.00 1 \n", + "1400 19.933333 1.00 4 \n", + "1500 19.471111 1.00 6 \n", + "1600 19.217778 1.00 41 \n", + "1700 20.028889 1.00 20 \n", + "1800 19.828889 1.00 4 \n", + "1900 19.453333 1.00 2 \n", + "\n", + " population_200 numerosity_200 average_specificity_200 \\\n", + "trial \n", + "0 1619 1800 8.398333 \n", + "100 1547 1800 9.474444 \n", + "200 1544 1800 9.857778 \n", + "300 1550 1800 12.838889 \n", + "400 1527 1800 15.620556 \n", + "500 1535 1800 16.774444 \n", + "600 1526 1800 17.574444 \n", + "700 1541 1800 18.971667 \n", + "800 1527 1800 21.519444 \n", + "900 1512 1800 24.141667 \n", + "1000 1522 1800 23.775000 \n", + "1100 1507 1800 26.031667 \n", + "1200 1499 1800 27.473889 \n", + "1300 1508 1800 27.152778 \n", + "1400 1500 1800 28.292778 \n", + "1500 1494 1800 27.946111 \n", + "1600 1506 1800 26.201667 \n", + "1700 1509 1800 26.765000 \n", + "1800 1538 1800 25.401111 \n", + "1900 1549 1800 23.905556 \n", + "\n", + " fraction_accuracy_200 \n", + "trial \n", + "0 0.94 \n", + "100 1.00 \n", + "200 0.51 \n", + "300 0.59 \n", + "400 0.91 \n", + "500 0.34 \n", + "600 0.64 \n", + "700 0.92 \n", + "800 0.95 \n", + "900 0.99 \n", + "1000 0.86 \n", + "1100 0.76 \n", + "1200 0.82 \n", + "1300 0.93 \n", + "1400 0.77 \n", + "1500 0.94 \n", + "1600 0.93 \n", + "1700 0.89 \n", + "1800 0.89 \n", + "1900 0.94 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df['steps_in_trial_20']=df20['steps_in_trial']\n", + "df['population_20']=df20['population']\n", + "df['numerosity_20']=df20['numerosity']\n", + "df['average_specificity_20']=df20['average_specificity']\n", + "df['fraction_accuracy_20']=df20['fraction_accuracy']\n", + "\n", + "df['steps_in_trial_200']=df200['steps_in_trial']\n", + "df['population_200']=df200['population']\n", + "df['numerosity_200']=df200['numerosity']\n", + "df['average_specificity_200']=df200['average_specificity']\n", + "df['fraction_accuracy_200']=df200['fraction_accuracy']\n", + "\n", + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df[['average_specificity', \"average_specificity_20\",\"average_specificity_200\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"XCS\",\"XNCS_20\",\"XNCS_200\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['population', \"population_20\", \"population_200\"]].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"XCS\",\"XNCS_20\",\"XNCS_200\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['fraction_accuracy_20', 'fraction_accuracy_200']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"Fraction Accuracy\")\n", + "ax.legend([\"XNCS_20\",\"XNCS_200\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEGCAYAAACUzrmNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAdYUlEQVR4nO3de5zVdb3v8debS1AqGDLugw44AyIFohAjm13eMjHsvm2jEDvpHB9gpI+9o44nirTsET62F8qtpYmJYAp53NaBLFMsL6c22B50FBSIq4cBEphJBRNvfM4f6zfjYlwzvzUwv1kLeD8fj99j/dbnd1mf9VvKZ77f7++iiMDMzKwtXUqdgJmZlT8XCzMzS+ViYWZmqVwszMwslYuFmZml6lbqBLLSt2/fqKqqKnUaZmYHleXLl++MiIqW8UO2WFRVVVFbW1vqNMzMDiqSXigUdzeUmZmlcrEwM7NULhZmZpbqkB2zMLND15tvvkl9fT179uwpdSoHrZ49e1JZWUn37t2LWt/FwswOOvX19Rx11FFUVVUhqdTpHHQigoaGBurr66muri5qG3dDmdlBZ8+ePRxzzDEuFPtJEsccc0y7WmYuFmZ2UHKhODDtPX4uFmZmlsrFwsxsP2zevJnq6moaGxsB+Otf/0p1dTUvvPACl156KYMGDWLYsGGceeaZPPnkkwDMmjWLYcOGccoppzBixIjm+MHAA9xmZvuhf//+TJs2jRkzZjBnzhxmzJjB1KlT+cY3vkF1dTVr166lS5cubNiwgVWrVrF06VIeeOABnnrqKXr06MHOnTt54403Sv01iuaWhZnZfpo+fTrLli3jxhtv5A9/+AMXXHABTz75JN///vfp0iX3z+vAgQP55Cc/ybZt2+jbty89evQAoG/fvhx33HGlTL9d3LIws4Pa1b96jue3vtKh+xx6XC++8+lhqet1796d66+/nnHjxvHwww+zZs0aRowYQdeuXd+17nnnncf3vvc9TjrpJM4991wuuugizjrrrA7NO0tuWZiZHYAHH3yQfv36sXLlyjbXO/LII1m+fDlz5syhoqKCiy66iHnz5nVOkh3ALQszO6gV0wLISl1dHUuWLGHZsmWcfvrpLFy4kGeeeYa9e/c2d0Pl69q1K2effTZnn302w4cPZ/78+XzpS1/q/MT3g1sWZmb7ISKYNm0aN954IwMGDOCKK67glltuoaamhu985ztEBABr165l0aJFrFmzhrVr1zZvX1dXxwknnFCq9NvNxcLMbD/cfvvtDBgwgLFjxwLwla98hdWrV3PZZZfxl7/8hRNPPJHhw4czZcoUjjvuOHbv3s3kyZMZOnQop5xyCs8//zzf/e53S/sl2kFN1e9QU1NTE374kdmhadWqVXzwgx8sdRoHvULHUdLyiKhpua5bFmZmlsrFwszMUrlYmJlZKhcLMzNL5WJhZmapMisWkuZK2i5pZV5shKRlkuok1UoancQnJbGmaa+kEcmyxyStyVt2bFY5m5lZYVm2LOYB41rErgOujogRwFXJeyLinogYkcS/CGyKiLq87SY1LY+I7RnmbGZmBWRWLCLiCaCxZRjolcz3BrYW2HQisDCrvMzMOkJrz7N4/PHHkcTNN9/cvO7ll1++z32gbrjhBj7wgQ9w8sknc+qpp3LXXXcB8MADDzBy5EhOPfVUhg4dym233dbq5//gBz9ovsDvYx/7GC+88ELzsvnz5zN48GAGDx7M/PnzO+YLR0RmE1AFrMx7/0Hg/wGbgS3ACQW2WQ+cnPf+MWAFUAdcSXIhYSufNxWoBWoHDBgQZnZoev7550udQkREXHvttTFlypSIiJg6dWpcc801sXHjxjj22GNj0KBB8frrr0dExGWXXRZ33nlnRETceuutcd5558XLL78cEREvvfRSzJs3L954443o169fbN68OSIi9uzZE6tXr271s3//+9/Hq6++GhERt9xyS1x44YUREdHQ0BDV1dXR0NAQjY2NUV1dHY2NjQX3Ueg4ArVR4N/Xzr6R4DRgekTcL+lC4A7g3KaFkv4e+FtE5N++cVJEbJF0FHA/uW6quwrtPCLmAHMgdwV3Rt/BzMrJgzPgLys6dp//bTic/2+pq02fPp1Ro0Y1P8/i5ptvZuvWrVRUVPCRj3yE+fPnM2XKlH22ueaaa3j00Ufp1SvXydK7d28mT55MY2Mjb731FscccwwAPXr0YMiQIa1+9kc/+tHm+TFjxnD33XcD8NBDDzF27Fj69OkDwNixY/ntb3/LxIkT23cMWujss6EmA79I5u8DRrdYPoEWXVARsSV53QUsKLCNmVlJND3PYvr06dx444285z3vaV42Y8YMZs+ezdtvv90c27VrF7t27WLQoEHv2lefPn34zGc+wwknnMDEiRO55557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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['numerosity_20', 'numerosity_200']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"numerosity\")\n", + "ax.legend([\"XCS\",\"XNCS_20\",\"XNCS_200\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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ThxwIjHhMce87wrpPFzdOyJ7OqrHv3TpUoQQvPDCC+51/9//+3+t6vL84x//IDMzk/HjxzNp0iT+85//APDFF18wefJkJk2axNixY3n11Vc7PP4zzzzjTgY744wzOHDggPu9t99+m5EjRzJy5EjefvvtDvehUHRGnxf+3ly2oaCmAFuzjYqGimCb0imbizdTWFfYrpsHjoZ09hZ3T8t6/IC7Hv/gwYNJTk7m+eefb7fe/iuvvMLChQtZvXo1W7du5YcffkBKSVNTE7Nnz+bzzz9n06ZNbNiwgVNPPbXD40+ePJm1a9eyefNmLr/8cu655x4AysrK+Otf/8qqVatYvXo1f/3rXykv7313sorg06czd6F3j/iLbVrnsVJbqftzhCILDyzU3DwDT233/R4lcX19H1i39MC6dkidAOd1XhT2jjvu4LjjjnPX43/hhRc4cuQISUlJnHjiibz99tvcfPPNrbZ57LHHWLJkCXFxcQDEx8cza9YsysrKaG5uxmw2AxAREcHo0aM7PPZpp53m/js3N5d33nkHgG+//ZazzjoLk0n7Lpx11ll88803XH311d6fA0W/ps+P+KMMUUSGRVJm633CX2IrafUcikgpWXhgIScMOIHY8Nh214kNjyU+Ir5XJXG56vHfcccdPPfcc4SHH+3gdt999/H0009jt9vdy6qrq6murmb48OHH7MtkMnHRRRcxePBgrr76at59910cDs/cd2+88QbnnXceAIcPH2bgwKNlLzIyMjh8uPecU0Xo0OdH/ACJEYm9Mqqn1FYKhLbwbynZQkFtAbdn3d7pet0O6exiZO5PWtbjdxVsAxg6dChTp07lv//9r3uZlBIhRIf7ev3119myZQuLFi3iH//4BwsXLuyyZv8777zD2rVrWbp0qfsYbensmApFR/T5ET9o7p7S+tJgm+EVTY4m98UqlN1UC/YvIEwXxmmDTut0vYzYjF7j44fW9fifffZZCgoKWr3/pz/9iTlz5rhH7nFxcURHR7Nv374O9zlhwgTuuOMOFi5cyCeffNLp8RctWsSjjz7K/Pnz3S0dMzIyOHjwaBvLQ4cOqRaPim7RP4Q/0tTrXD0t7Q3VEb/LzXN82vHEhcd1um56TDqHaw5jd9g7XS8UaK8e/913391qnczMTMaOHcsXX3zhXnb//fdz++23U1Wlha1WVVUxd+5campq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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['steps_in_trial', 'steps_in_trial_20', 'steps_in_trial_200']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"XCS\",\"XNCS_20\",\"XNCS_200\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "90\n", + "110\n", + "321\n" + ] + } + ], + "source": [ + "print(sum(df['steps_in_trial']))\n", + "print(sum(df['steps_in_trial_20']))\n", + "print(sum(df['steps_in_trial_200']))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XCS_compared.ipynb b/XCS_Experiments/XCS_compared.ipynb deleted file mode 100644 index 5d0bab3..0000000 --- a/XCS_Experiments/XCS_compared.ipynb +++ /dev/null @@ -1,2334 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "logging.root.setLevel(logging.INFO)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "import random\n", - "\n", - "from xcs import XCSAlgorithm\n", - "from xcs.scenarios import Scenario" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "import random\n", - "\n", - "from xcs.scenarios import Scenario\n", - "from xcs.bitstrings import BitString\n", - "\n", - "class HaystackProblem(Scenario):\n", - " \n", - " def __init__(self, training_cycles=1000, input_size=50):\n", - " self.input_size = input_size\n", - " self.possible_actions = (True, False)\n", - " self.initial_training_cycles = training_cycles\n", - " self.remaining_cycles = training_cycles\n", - " self.needle_index = random.randrange(input_size)\n", - " self.needle_value = None\n", - "\n", - " def reset(self):\n", - " self.remaining_cycles = self.initial_training_cycles\n", - " haystack = BitString.random(self.input_size)\n", - " self.needle_value = haystack[self.needle_index]\n", - " \n", - " sense_string = str(self.sense())\n", - " raw_state = [str(s) for s in sense_string]\n", - " return raw_state\n", - " \n", - " # XCS Hosford42 functions\n", - " @property\n", - " def is_dynamic(self):\n", - " return False\n", - " \n", - " def get_possible_actions(self):\n", - " return self.possible_actions\n", - " \n", - " def more(self):\n", - " return self.remaining_cycles > 0\n", - " \n", - " def sense(self):\n", - " haystack = BitString.random(self.input_size)\n", - " self.needle_value = haystack[self.needle_index]\n", - " return haystack\n", - " \n", - " def execute(self, action):\n", - " self.remaining_cycles -= 1\n", - " return action == self.needle_value\n", - "\n", - " # XCS Pyalcs functions\n", - " def step(self, action):\n", - " done = not self.execute(action)\n", - " \n", - " haystack = self.sense()\n", - " sense_string = str(haystack)\n", - " raw_state = [str(s) for s in sense_string]\n", - " \n", - " self.needle_value = haystack[self.needle_index]\n", - " reward = action == self.needle_value\n", - " return raw_state, reward, done, _" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [], - "source": [ - "training_cycles = 5000\n", - "input_size = 50\n", - "logging.root.setLevel(logging.INFO)\n", - "scenario = HaystackProblem(training_cycles, input_size)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "algorithm = XCSAlgorithm()\n", - "algorithm.exploration_probability = .1\n", - "algorithm.discount_factor = 0\n", - "algorithm.do_ga_subsumption = True\n", - "algorithm.do_action_set_subsumption = True" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "model = algorithm.new_model(scenario)\n", - "model.run(scenario, learn=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "01#1#1###0##011010001###00##0#0011##0011#0#1##0110 => False\n", - " Time Stamp: 4608\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 8.5e-07\n", - " Experience: 0\n", - " Action Set Size: 1\n", - " Numerosity: 1\n", - "1##1#1011#10010#0#011#0#1##0###01#0#100###1##1#001 => False\n", - " Time Stamp: 3721\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 8.5e-07\n", - " Experience: 0\n", - " Action Set Size: 1\n", - " Numerosity: 1\n", - "11##0#0#1101011111110000#0#0#1000110100##1#0###11# => True\n", - " Time Stamp: 4344\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 8.5e-07\n", - " Experience: 0\n", - " Action Set Size: 1\n", - " Numerosity: 1\n", - "1110#0#00010##011#1##001011#011#10#01#00##000####1 => False\n", - " Time Stamp: 4215\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00011#1#1#01###100#0#1101#001#1101100#1#0111101#01 => True\n", - " Time Stamp: 4272\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##00#10#0111##0011#1###0010#1#0##11010#11110100000 => True\n", - " Time Stamp: 4273\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0010100##0011#111#101##00000000#0#0101#0###1010#01 => True\n", - " Time Stamp: 4341\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "01110###10110111100000##00001001000101010011#0001# => True\n", - " Time Stamp: 4359\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0010#0##1#1##0000#1111#1#10#1#1110#01##101#10#011# => False\n", - " Time Stamp: 4478\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0#01#1####1000###100##10#000010###101#1010#0#00##0 => False\n", - " Time Stamp: 4493\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "011##11010#00#1####0000#11011##0010#0#0###1110110# => False\n", - " Time Stamp: 4495\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0000#010##10#011#010##0####11#011#00010#1###01#111 => False\n", - " Time Stamp: 4502\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##10#100##00##1001100####11000###10##01#1#0#10#000 => True\n", - " Time Stamp: 4555\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "001##0###10110100111011#000101001##00101011#1###01 => True\n", - " Time Stamp: 4571\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#10#01#0#10#11######0####10##0##0#0#1000#100##0011 => True\n", - " Time Stamp: 4580\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00#0##1#010#1#0#011#01##1#0##10011##0#11##1100###0 => True\n", - " Time Stamp: 4592\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#0#1#0110##01#0011#101110#1#011111##01#00#111##### => False\n", - " Time Stamp: 4601\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#01#0##0##0#111####1001001#00#00001111#00##1#0#111 => False\n", - " Time Stamp: 4606\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1##1111101#000#001000110#001#00#10001#010#1#101011 => True\n", - " Time Stamp: 4617\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#0#00011#1#01100#0#0#100#011##0#0111##10000011101 => False\n", - " Time Stamp: 4624\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1##111110###10##0#0010##01#010#100###10##101#1#001 => True\n", - " Time Stamp: 4631\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#11#0##00#00####10#1##000###0##0##000#1000001101#1 => False\n", - " Time Stamp: 4638\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##00##11#001#001011100#####10#0###0110100##0100#01 => False\n", - " Time Stamp: 4641\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#11#101101110#0#101#010##1##0010#01001010011##1### => True\n", - " Time Stamp: 4648\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#01##0#01#01#01#1#00010#10#00#100111111##0#100100 => False\n", - " Time Stamp: 4651\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#1001#101000#0#0100#0#1111##0#10#100101#1####11#10 => True\n", - " Time Stamp: 4654\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0##000#00#1#00#1#00100000#01101#0#1#011#11##1100#0 => True\n", - " Time Stamp: 4677\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "10##00#0###1###1100#1###0#0011#1##1#00#000##100000 => True\n", - " Time Stamp: 4686\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#0#0#010100#10#111001#1##10##0#1010100#1#1####01# => True\n", - " Time Stamp: 4690\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00#10#010#110#1000####111#0101010###11###01#00##1# => True\n", - " Time Stamp: 4693\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "###11#10###1###1100#00###01011000##00##00#0#10##10 => True\n", - " Time Stamp: 4695\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11010#0#00011#00101##1110##001001##001110#1#001100 => False\n", - " Time Stamp: 4698\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0###0#01##10##1#11110###01100#00##1###01001#0#100# => True\n", - " Time Stamp: 4699\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0#01#01100001#11##010#100##100001#10###10#001##110 => False\n", - " Time Stamp: 4706\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#01##0####01#1001#1100#1#101###1##0#11010#11#001#1 => False\n", - " Time Stamp: 4721\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1##1##11001##1#1#111#101###10#10#01#1###0#01001001 => True\n", - " Time Stamp: 4726\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#110##0#100#0#11##10001000###0#01###10100###111### => True\n", - " Time Stamp: 4729\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#0#1001#1#0###0#11##0###110##001#0##########1#01#1 => False\n", - " Time Stamp: 4730\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#01##10#1##1110##10111#00#1#10#01#1#000##1#100##0# => True\n", - " Time Stamp: 4740\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#100#10##001110101001#0#1101#10001##1#01#11#0110#0 => True\n", - " Time Stamp: 4750\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1##11#00#1#010001#0#####1##01011#10##00#100##01111 => False\n", - " Time Stamp: 4757\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##1#111#0##01001##11#1#111#1##01#100#011##11####0# => True\n", - " Time Stamp: 4758\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "01#110##0101001##001#00#0#110101#00##010#00#0#0#0# => True\n", - " Time Stamp: 4765\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1011##1##11111#1#0010#00#0111##11##0#0###0011#100# => True\n", - " Time Stamp: 4767\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0#0##01110011###1####1#10000##0###0#1#1#1#00#1#110 => False\n", - " Time Stamp: 4769\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#1##11#10#111#11000010#0100000#01#1#1001100011011# => False\n", - " Time Stamp: 4775\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#1#1010011#00##011#101#01#00##0##1##1##1#11010011# => False\n", - " Time Stamp: 4779\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0101#11#100101#0##11##01#01##00001#010111#0#1#011# => False\n", - " Time Stamp: 4784\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "10#1#1###0##10#000000###0#00#1##1#11#1#10#1##11#00 => True\n", - " Time Stamp: 4790\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#10001#01##1001###0101##1001#01#1#00#11110111#0010 => True\n", - " Time Stamp: 4812\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#0##010110#10#1#0#00011010##001##0#11#0#0#11##110 => False\n", - " Time Stamp: 4815\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "010##0011##1#1110##1#1#10#11#11#1#1#####0##0#01010 => True\n", - " Time Stamp: 4820\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "10011111011##0001##1#00#0##0##0#011101111#11#10110 => False\n", - " Time Stamp: 4823\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0###11##1#0#1##000111##10#100#001010#0101#11#1110# => False\n", - " Time Stamp: 4826\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11110000#011#1#0#1#001#10#10#1#00#1###00##01#11011 => True\n", - " Time Stamp: 4827\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##0#11####110#110##1#1110#0#0#1#101#000111#101#0## => True\n", - " Time Stamp: 4828\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "010101#00##1011011010101011###1101#1##0#1#1001101# => True\n", - " Time Stamp: 4837\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "011000001##11#####01001100####00#0#0000##0111#1#0# => True\n", - " Time Stamp: 4847\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "011##111#1#01#10101##0#010#11#1110#0####0#1#0#1#01 => True\n", - " Time Stamp: 4849\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#0#011###0100####11001101###00110#000#00#0#1#10##0 => True\n", - " Time Stamp: 4850\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1011###00###01110###0001110##0#110##110#11#0110010 => True\n", - " Time Stamp: 4858\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "010#101011#0#000#1111##00##100###1#001#001011#0##1 => False\n", - " Time Stamp: 4863\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "001###011#01###0#01##1#11#1#111001####11###01010#1 => True\n", - " Time Stamp: 4866\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#01###01#0##110#00010#0##1111#11110#01#10#001#0#1 => True\n", - " Time Stamp: 4870\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11#111100#101101110#1#0#100#011011##111111110#100# => True\n", - " Time Stamp: 4874\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00100101#0011##01###1###0011#0#0#1##1##01111#0#000 => True\n", - " Time Stamp: 4875\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1101#0100#1101#1##10100##010#####010100###0##10101 => False\n", - " Time Stamp: 4879\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1011100#1#00#10011#1101#01##01111#00#110#0####1#10 => True\n", - " Time Stamp: 4880\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0#00110100#110010011#0##0#10#1#100#1##0#01#0001011 => True\n", - " Time Stamp: 4887\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#11#111###0#1#0100#00011101#0011101##111110110101 => False\n", - " Time Stamp: 4889\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#1##0011##1#01011110#1010#10#01##10#0#001#010#010 => True\n", - " Time Stamp: 4891\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#0#1#010#11#001#0#1#0#000##0#01####101010#1#0#1000 => True\n", - " Time Stamp: 4893\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "110##00100##1##1#00#1000110000000001010#1###1#010# => False\n", - " Time Stamp: 4894\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "01#0000#01#101#0101##110#1001010010#01##01#010##10 => True\n", - " Time Stamp: 4896\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1##11##1111#0##010001001#00##1#####00100#11##10101 => False\n", - " Time Stamp: 4909\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "###11#1111110101#1##1#00#11###1#00#10100100#001101 => False\n", - " Time Stamp: 4911\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00######1##01##01####1##00011#01#01#00001###1#101# => True\n", - " Time Stamp: 4914\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#1111##1##010001#10000#100##0#11#0####1#00#01##00 => True\n", - " Time Stamp: 4922\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "110110#1000#111#1#010#11010#0#000#1#0110#100#01#0# => True\n", - " Time Stamp: 4925\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "001##11001###0#00#101###10111#0#0#0#0#1#0010100110 => False\n", - " Time Stamp: 4929\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1000#11##1#01#10100010101000#1#00#0#100##0#111#01# => True\n", - " Time Stamp: 4933\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#011#1#00010#0##1#1010#0#1####0100011#1#1011##0110 => False\n", - " Time Stamp: 4935\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0#1#11##11#110010011#11101#0011011101##11111#0100# => True\n", - " Time Stamp: 4936\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0#1#0#001#111##00#1110#1#10#001#10#1#0#11011001#01 => True\n", - " Time Stamp: 4938\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#11100##01##1#0#0100#001011001111001#10#10#1#011## => False\n", - " Time Stamp: 4939\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#0111000100011##0#00#1#00#10#10##011100#01##11###0 => False\n", - " Time Stamp: 4942\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00#0##0#0##01#0#10#1#0#110##1####0#001011##10#0110 => False\n", - " Time Stamp: 4943\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#1011#0#10000#0#1##1###11#10##11100#0010#010##100 => False\n", - " Time Stamp: 4944\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##011#10#0#1000011001000###01#1#01#00#1010##01000# => True\n", - " Time Stamp: 4945\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##00##001111##0010###0#0#1#011##100100#00#1#11001# => True\n", - " Time Stamp: 4949\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00101#101#0##1#0#00#101#0#110011##111011##01010#0# => True\n", - " Time Stamp: 4950\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "101#11#010######01#0#0100#00#01##11011110#11#1101# => True\n", - " Time Stamp: 4953\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#00##1#111000110##011#10##11#1#1011##1011##011111# => False\n", - " Time Stamp: 4959\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11101#0#11101#1####1#0#001##0#01#01####01#11100001 => True\n", - " Time Stamp: 4960\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "01##00#0##11#00#000##11000#00110011#1#1010110##000 => True\n", - " Time Stamp: 4961\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "100##1001#101#100#1100#0000010#101#011#0##10011001 => True\n", - " Time Stamp: 4962\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#10#1#01001###110111100#0100##0#0101##101#0#0#111 => False\n", - " Time Stamp: 4964\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "100#####01##11##1#101110110#00000######01000010#0# => True\n", - " Time Stamp: 4965\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#1101####1##0#0000#1#0#0011#0#11##0##1#01##1#1#01# => True\n", - " Time Stamp: 4969\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "001#00#101#0#11#100#0#01101110100000#1###010###111 => False\n", - " Time Stamp: 4970\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##0##1#00110101##10#0##11##1001#1#10000#0010001### => False\n", - " Time Stamp: 4973\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#1101001##0001#1#10101100##0#01#00011#10##0110#00 => True\n", - " Time Stamp: 4974\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1##111##11001#1011100###0#1#10010#0#011010010#111# => False\n", - " Time Stamp: 4975\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1##1#01#000#010#0##00010100##0#1#001#11#11#0##010# => False\n", - " Time Stamp: 4976\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00000##11011#0#11001#0100001011#1#0#11100#0#0010#0 => True\n", - " Time Stamp: 4978\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0#1##1#0111#00111001111011010100#11101#10#11010110 => False\n", - " Time Stamp: 4979\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00#00#1010#001001#1101001##10#001#0111##0000100011 => True\n", - " Time Stamp: 4981\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#1001#000###100#01#1110000##10##11##011101#01#0110 => False\n", - " Time Stamp: 4982\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11#0#0011101#0#01#010000110#00#01#0#0#00010111#11# => False\n", - " Time Stamp: 4983\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0#11011######0#01101101110##0#100#00100#1##11####0 => True\n", - " Time Stamp: 4990\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#001100#00#111#100110####011110#10110#1110010#0111 => False\n", - " Time Stamp: 4991\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "010##0#110#0#0##1011#1#011##0###10#1##0#0#0#0#110# => False\n", - " Time Stamp: 4995\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##01##01#11###0###0##011#00#10101#1110#11##101010# => False\n", - " Time Stamp: 4997\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "000#0#101111#1#10##001001#0#1##0001##01010000#0100 => False\n", - " Time Stamp: 4999\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#11##1010110##0##01111000011#1001#10##10#0110001#1 => True\n", - " Time Stamp: 4064\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "01111100#011#0000101000101#01#0#0110##100#01#0#000 => False\n", - " Time Stamp: 4092\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "101#0##0##1111#0#01#1111##100110011101#0#1#1#01001 => False\n", - " Time Stamp: 4109\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "###00#0#011###100#010##011110000#0#0##100#1#011111 => True\n", - " Time Stamp: 4202\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##1000011#100111####11###00#010100#0##0000#01####0 => False\n", - " Time Stamp: 4252\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1011001#000##01001#1#1#1000#11##10#000#110#0#0##01 => False\n", - " Time Stamp: 4401\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "110#1##1100001####0#1010#1#10#11#11#0010001##111#0 => True\n", - " Time Stamp: 4415\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "001#0001#00011100100011####1#0#01001###1#1000111#0 => True\n", - " Time Stamp: 4519\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1100000###11111110##001##1100#000##000001#01111#10 => True\n", - " Time Stamp: 4531\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "01#111###1##010011111110###0110#1#000#1#00##110110 => True\n", - " Time Stamp: 4537\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0#011#101#0#0##1100000#10#111##0#10#0#11####1001#1 => True\n", - " Time Stamp: 4598\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0##11#000#1#0#0#0##1#10011100#011#11#1##11#0##1101 => True\n", - " Time Stamp: 4616\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0#11##00####011#01##101111#1##100##1#1#01001110#00 => False\n", - " Time Stamp: 4633\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "101011011#0###01001#110#00101#0#101#0##011#1##0##1 => True\n", - " Time Stamp: 4668\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11000011#1#011#01###1###01##0#0###110001#0#11#000# => False\n", - " Time Stamp: 4670\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#11011#0##00010###01#10###1#00###0000#0#01100##01 => False\n", - " Time Stamp: 4671\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "111#0##010011#0#010111100#0100##00100##1##0101#010 => False\n", - " Time Stamp: 4676\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00000#110#0#0#0011#0#110101010#00#1#1##00#0111#110 => True\n", - " Time Stamp: 4689\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1##0110##1##00#1#100010#0001111#0#00#00011100###11 => True\n", - " Time Stamp: 4717\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "011111011#1#00#1#10##0#11#01#000#10#0#1#0#111#10#1 => False\n", - " Time Stamp: 4719\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "01###110##1#110010#01#0100#0##1101##00#1011##10#01 => True\n", - " Time Stamp: 4728\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "000#00#11100101#1#011##1101#1#0##111#01110#1####10 => False\n", - " Time Stamp: 4734\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11#0####110##01011#1##01010#000001#01#10###1001#11 => True\n", - " Time Stamp: 4735\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1101#0###0101#0#1101##1##11#11#1##1100#10101##1001 => False\n", - " Time Stamp: 4747\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11010010##11101#11#10#110110110#10101#00#00#001011 => False\n", - " Time Stamp: 4766\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00101#011010011000##000#0111###011011#111001###1## => True\n", - " Time Stamp: 4791\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1011#10#010#0#0#1###1#001011000####01##1000#1#00## => False\n", - " Time Stamp: 4797\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#0011#10#001111#011###01#00##001#11011#11#1#10#1## => True\n", - " Time Stamp: 4802\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "10#0#01#0##00#1#0#1111100110#000#0###100#1101##### => False\n", - " Time Stamp: 4819\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0#10011#001##0101#0#######10#0###10##11#1100101011 => False\n", - " Time Stamp: 4829\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#1010#00##110##11#1#00##1011#1##1##1101#0###0#1#00 => False\n", - " Time Stamp: 4835\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "001#0#1#0##1#1#010#011011110#00#1#11#1001100##0101 => True\n", - " Time Stamp: 4840\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0##11##0#01111100#1111011#110#0####11100101#01#010 => False\n", - " Time Stamp: 4843\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#000###0110###110###1#1#000100#1#111#0##01010#1#10 => True\n", - " Time Stamp: 4844\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1####10001#0#1###10#1#0#111#1011100##0##001#1#1101 => True\n", - " Time Stamp: 4851\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#####011##1#00#001100#10#00#01101#1##0#110#1000#0 => False\n", - " Time Stamp: 4852\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "000##00#110000000##0#0#101#0#1100##01000##0#10#110 => True\n", - " Time Stamp: 4854\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "###1##11111##00##1##10#1100##0010001#0#00#10####0# => False\n", - " Time Stamp: 4859\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "01#11001###010#1#010000#10111#1#0#11111#0110011##1 => True\n", - " Time Stamp: 4862\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0000100#0110#01#011#010#100#0011100101#011#1##000# => False\n", - " Time Stamp: 4864\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#0##100#00100001100###11##0#10##011##0101#0#010#1# => True\n", - " Time Stamp: 4868\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "01#0110000#11##1011#00#0#0##11#0#010001#000#001000 => False\n", - " Time Stamp: 4869\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#10##011#00##1#11001000#01#001###1001#00#11#0##001 => False\n", - " Time Stamp: 4876\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##100#0#000#1110###0#0001##0101##10##00110#001#010 => False\n", - " Time Stamp: 4884\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0101#1#11#0000000101#01#000101111#000#101#10000##1 => True\n", - " Time Stamp: 4890\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#1#001#01#00#10####000#1110#01#100##0#0##1##1011#0 => True\n", - " Time Stamp: 4892\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##1##011#111#110001###0000100#10111#0#00##11#01101 => True\n", - " Time Stamp: 4898\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1###1#100##01##1001100##1#1###1011000#####01#0#0#0 => False\n", - " Time Stamp: 4899\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "###11#01#0011011#1#1###0101#0##11#11011101##10111# => True\n", - " Time Stamp: 4901\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1001####0###00#0##00101110101#100##01#0100001001## => True\n", - " Time Stamp: 4902\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#111##01#1010##011#1011###00001011#001110#101##011 => False\n", - " Time Stamp: 4905\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#1#1#1010#0##100110####1#1001010100110#0001100111 => True\n", - " Time Stamp: 4907\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "####01#0001#0111##001110001#1001#1001##00#100#10#1 => False\n", - " Time Stamp: 4915\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "10#1#10#01101110000####000##1#1#0#111##10#111#10#1 => False\n", - " Time Stamp: 4917\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#11#0#1###10#001010111#11#0####0#01110011#1#1##100 => True\n", - " Time Stamp: 4918\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "###1##10##100101##00#111#000#11#0001#1#00##00000## => False\n", - " Time Stamp: 4920\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1100#0101#1110#00000#0#00##1#10#1111011011001##1## => True\n", - " Time Stamp: 4921\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#111#111#011##1000###000#1#0001#1000001##10010#000 => False\n", - " Time Stamp: 4924\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "110#1110000#00#1#1####1#0#1###0#010#1#001#1#0#101# => False\n", - " Time Stamp: 4927\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#10#0011101#00000111011#1#0#00###01#####11#110##00 => True\n", - " Time Stamp: 4930\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "01010##1#11#101#100010##101#111110101#000100#010#0 => False\n", - " Time Stamp: 4932\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#1#1##01#1#0#1##00#000#01100#0#01010#00#000###100# => False\n", - " Time Stamp: 4940\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1110##00####01##11#00010011100##10#10#0010#1#1#01# => False\n", - " Time Stamp: 4946\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#1#01#10####11011#11#100##00#1100##10110100110##1# => True\n", - " Time Stamp: 4951\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1###1000#00#1##100#00#0111#0#0#1111000100#0001#10# => True\n", - " Time Stamp: 4955\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11####00111#1##1000#000##1##0#011#1000#1#0#1011110 => True\n", - " Time Stamp: 4956\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#11010###010#1#00#10#0#1111110#10###01101#1111010# => True\n", - " Time Stamp: 4957\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0##111#01##01000####1##0011#101#0001#00001##000001 => False\n", - " Time Stamp: 4958\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##1##1##11#1101#0000001010##100110##1##1#100#11111 => True\n", - " Time Stamp: 4963\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "10#10#01#100#1#11##111###00111#0#10#111##00100##00 => False\n", - " Time Stamp: 4966\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "110#0#010010#00100##1#1#0###1##001#1#10000110#10## => False\n", - " Time Stamp: 4968\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "00011#1##0#11##101101##00#1#0111#01000#0#1110##0#0 => False\n", - " Time Stamp: 4971\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "111#10#1##000011###11#100###00#11001010#10#1000##1 => True\n", - " Time Stamp: 4972\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#0101#0100#01#0011#1#0###01##00110#1##1000#000000 => False\n", - " Time Stamp: 4977\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "####1#00001#0001#0000100001#####11111#1010###1100# => False\n", - " Time Stamp: 4980\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "01011#01###0#1#1###001110#00001##1001#10100##0##1# => True\n", - " Time Stamp: 4984\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11#0####000###1010#0001#0#1111##00#010#000011#10## => False\n", - " Time Stamp: 4985\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##101011111##00011#100#110##101#01#1##01#1#0#0101# => False\n", - " Time Stamp: 4986\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "1#1#1#01###11001#1110101#0#0##1###1#10#1#1#0010011 => False\n", - " Time Stamp: 4987\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "##100111#110#00##11#0##0#00100#0#1011#00##1#00#10# => True\n", - " Time Stamp: 4988\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#0110#0100#1010##0010#011#0#10#100###101#1#1#10100 => True\n", - " Time Stamp: 4989\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11111111#1101##1001#10#000##010000#10##01#11###00# => False\n", - " Time Stamp: 4992\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#1100#10##00##1#0#000010#001#1##0#00000#11#1100##1 => True\n", - " Time Stamp: 4993\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#101101#0##0#01010#01#0#01#10001#0##0#111#1##1###0 => True\n", - " Time Stamp: 4994\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "0101#0101#1#0000#1#0#10011100##00000#11#1000#0#010 => False\n", - " Time Stamp: 4996\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "11#10#10#0001111110110####11001001110#0##0#0000#0# => True\n", - " Time Stamp: 4998\n", - " Average Reward: 1.0\n", - " Error: 0.0\n", - " Fitness: 0.15000850000000002\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n" - ] - } - ], - "source": [ - "print(model)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "200\n" - ] - } - ], - "source": [ - "print(len(model))" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "#11##1010110##0##01111000011#1001#10##10#0110001#1 => True [0.15001]\n", - "01111100#011#0000101000101#01#0#0110##100#01#0#000 => False [0.15001]\n", - "101#0##0##1111#0#01#1111##100110011101#0#1#1#01001 => False [0.15001]\n", - "###00#0#011###100#010##011110000#0#0##100#1#011111 => True [0.15001]\n", - "1110#0#00010##011#1##001011#011#10#01#00##000####1 => False [0.15001]\n", - "##1000011#100111####11###00#010100#0##0000#01####0 => False [0.15001]\n", - "00011#1#1#01###100#0#1101#001#1101100#1#0111101#01 => True [0.15001]\n", - "##00#10#0111##0011#1###0010#1#0##11010#11110100000 => True [0.15001]\n", - "0010100##0011#111#101##00000000#0#0101#0###1010#01 => True [0.15001]\n", - "01110###10110111100000##00001001000101010011#0001# => True [0.15001]\n", - "1011001#000##01001#1#1#1000#11##10#000#110#0#0##01 => False [0.15001]\n", - "110#1##1100001####0#1010#1#10#11#11#0010001##111#0 => True [0.15001]\n", - "0010#0##1#1##0000#1111#1#10#1#1110#01##101#10#011# => False [0.15001]\n", - "0#01#1####1000###100##10#000010###101#1010#0#00##0 => False [0.15001]\n", - "011##11010#00#1####0000#11011##0010#0#0###1110110# => False [0.15001]\n", - "0000#010##10#011#010##0####11#011#00010#1###01#111 => False [0.15001]\n", - "001#0001#00011100100011####1#0#01001###1#1000111#0 => True [0.15001]\n", - "1100000###11111110##001##1100#000##000001#01111#10 => True [0.15001]\n", - "01#111###1##010011111110###0110#1#000#1#00##110110 => True [0.15001]\n", - "##10#100##00##1001100####11000###10##01#1#0#10#000 => True [0.15001]\n", - "001##0###10110100111011#000101001##00101011#1###01 => True [0.15001]\n", - "#10#01#0#10#11######0####10##0##0#0#1000#100##0011 => True [0.15001]\n", - "00#0##1#010#1#0#011#01##1#0##10011##0#11##1100###0 => True [0.15001]\n", - "0#011#101#0#0##1100000#10#111##0#10#0#11####1001#1 => True [0.15001]\n", - "#0#1#0110##01#0011#101110#1#011111##01#00#111##### => False [0.15001]\n", - "#01#0##0##0#111####1001001#00#00001111#00##1#0#111 => False [0.15001]\n", - "0##11#000#1#0#0#0##1#10011100#011#11#1##11#0##1101 => True [0.15001]\n", - "1##1111101#000#001000110#001#00#10001#010#1#101011 => True [0.15001]\n", - "1#0#00011#1#01100#0#0#100#011##0#0111##10000011101 => False [0.15001]\n", - "1##111110###10##0#0010##01#010#100###10##101#1#001 => True [0.15001]\n", - "0#11##00####011#01##101111#1##100##1#1#01001110#00 => False [0.15001]\n", - "#11#0##00#00####10#1##000###0##0##000#1000001101#1 => False [0.15001]\n", - "##00##11#001#001011100#####10#0###0110100##0100#01 => False [0.15001]\n", - "#11#101101110#0#101#010##1##0010#01001010011##1### => True [0.15001]\n", - "1#01##0#01#01#01#1#00010#10#00#100111111##0#100100 => False [0.15001]\n", - "#1001#101000#0#0100#0#1111##0#10#100101#1####11#10 => True [0.15001]\n", - "101011011#0###01001#110#00101#0#101#0##011#1##0##1 => True [0.15001]\n", - "11000011#1#011#01###1###01##0#0###110001#0#11#000# => False [0.15001]\n", - "1#11011#0##00010###01#10###1#00###0000#0#01100##01 => False [0.15001]\n", - "111#0##010011#0#010111100#0100##00100##1##0101#010 => False [0.15001]\n", - "0##000#00#1#00#1#00100000#01101#0#1#011#11##1100#0 => True [0.15001]\n", - "10##00#0###1###1100#1###0#0011#1##1#00#000##100000 => True [0.15001]\n", - "00000#110#0#0#0011#0#110101010#00#1#1##00#0111#110 => True [0.15001]\n", - "1#0#0#010100#10#111001#1##10##0#1010100#1#1####01# => True [0.15001]\n", - "00#10#010#110#1000####111#0101010###11###01#00##1# => True [0.15001]\n", - "###11#10###1###1100#00###01011000##00##00#0#10##10 => True [0.15001]\n", - "11010#0#00011#00101##1110##001001##001110#1#001100 => False [0.15001]\n", - "0###0#01##10##1#11110###01100#00##1###01001#0#100# => True [0.15001]\n", - "0#01#01100001#11##010#100##100001#10###10#001##110 => False [0.15001]\n", - "1##0110##1##00#1#100010#0001111#0#00#00011100###11 => True [0.15001]\n", - "011111011#1#00#1#10##0#11#01#000#10#0#1#0#111#10#1 => False [0.15001]\n", - "#01##0####01#1001#1100#1#101###1##0#11010#11#001#1 => False [0.15001]\n", - "1##1##11001##1#1#111#101###10#10#01#1###0#01001001 => True [0.15001]\n", - "01###110##1#110010#01#0100#0##1101##00#1011##10#01 => True [0.15001]\n", - "#110##0#100#0#11##10001000###0#01###10100###111### => True [0.15001]\n", - "#0#1001#1#0###0#11##0###110##001#0##########1#01#1 => False [0.15001]\n", - "000#00#11100101#1#011##1101#1#0##111#01110#1####10 => False [0.15001]\n", - "11#0####110##01011#1##01010#000001#01#10###1001#11 => True [0.15001]\n", - "#01##10#1##1110##10111#00#1#10#01#1#000##1#100##0# => True [0.15001]\n", - "1101#0###0101#0#1101##1##11#11#1##1100#10101##1001 => False [0.15001]\n", - "#100#10##001110101001#0#1101#10001##1#01#11#0110#0 => True [0.15001]\n", - "1##11#00#1#010001#0#####1##01011#10##00#100##01111 => False [0.15001]\n", - "##1#111#0##01001##11#1#111#1##01#100#011##11####0# => True [0.15001]\n", - "01#110##0101001##001#00#0#110101#00##010#00#0#0#0# => True [0.15001]\n", - "11010010##11101#11#10#110110110#10101#00#00#001011 => False [0.15001]\n", - "1011##1##11111#1#0010#00#0111##11##0#0###0011#100# => True [0.15001]\n", - "0#0##01110011###1####1#10000##0###0#1#1#1#00#1#110 => False [0.15001]\n", - "#1##11#10#111#11000010#0100000#01#1#1001100011011# => False [0.15001]\n", - "#1#1010011#00##011#101#01#00##0##1##1##1#11010011# => False [0.15001]\n", - "0101#11#100101#0##11##01#01##00001#010111#0#1#011# => False [0.15001]\n", - "10#1#1###0##10#000000###0#00#1##1#11#1#10#1##11#00 => True [0.15001]\n", - "00101#011010011000##000#0111###011011#111001###1## => True [0.15001]\n", - "1011#10#010#0#0#1###1#001011000####01##1000#1#00## => False [0.15001]\n", - "#0011#10#001111#011###01#00##001#11011#11#1#10#1## => True [0.15001]\n", - "#10001#01##1001###0101##1001#01#1#00#11110111#0010 => True [0.15001]\n", - "1#0##010110#10#1#0#00011010##001##0#11#0#0#11##110 => False [0.15001]\n", - "10#0#01#0##00#1#0#1111100110#000#0###100#1101##### => False [0.15001]\n", - "010##0011##1#1110##1#1#10#11#11#1#1#####0##0#01010 => True [0.15001]\n", - "10011111011##0001##1#00#0##0##0#011101111#11#10110 => False [0.15001]\n", - "0###11##1#0#1##000111##10#100#001010#0101#11#1110# => False [0.15001]\n", - "11110000#011#1#0#1#001#10#10#1#00#1###00##01#11011 => True [0.15001]\n", - "##0#11####110#110##1#1110#0#0#1#101#000111#101#0## => True [0.15001]\n", - "0#10011#001##0101#0#######10#0###10##11#1100101011 => False [0.15001]\n", - "#1010#00##110##11#1#00##1011#1##1##1101#0###0#1#00 => False [0.15001]\n", - "010101#00##1011011010101011###1101#1##0#1#1001101# => True [0.15001]\n", - "001#0#1#0##1#1#010#011011110#00#1#11#1001100##0101 => True [0.15001]\n", - "0##11##0#01111100#1111011#110#0####11100101#01#010 => False [0.15001]\n", - "#000###0110###110###1#1#000100#1#111#0##01010#1#10 => True [0.15001]\n", - "011000001##11#####01001100####00#0#0000##0111#1#0# => True [0.15001]\n", - "011##111#1#01#10101##0#010#11#1110#0####0#1#0#1#01 => True [0.15001]\n", - "#0#011###0100####11001101###00110#000#00#0#1#10##0 => True [0.15001]\n", - "1####10001#0#1###10#1#0#111#1011100##0##001#1#1101 => True [0.15001]\n", - "1#####011##1#00#001100#10#00#01101#1##0#110#1000#0 => False [0.15001]\n", - "000##00#110000000##0#0#101#0#1100##01000##0#10#110 => True [0.15001]\n", - "1011###00###01110###0001110##0#110##110#11#0110010 => True [0.15001]\n", - "###1##11111##00##1##10#1100##0010001#0#00#10####0# => False [0.15001]\n", - "01#11001###010#1#010000#10111#1#0#11111#0110011##1 => True [0.15001]\n", - "010#101011#0#000#1111##00##100###1#001#001011#0##1 => False [0.15001]\n", - "0000100#0110#01#011#010#100#0011100101#011#1##000# => False [0.15001]\n", - "001###011#01###0#01##1#11#1#111001####11###01010#1 => True [0.15001]\n", - "#0##100#00100001100###11##0#10##011##0101#0#010#1# => True [0.15001]\n", - "01#0110000#11##1011#00#0#0##11#0#010001#000#001000 => False [0.15001]\n", - "1#01###01#0##110#00010#0##1111#11110#01#10#001#0#1 => True [0.15001]\n", - "11#111100#101101110#1#0#100#011011##111111110#100# => True [0.15001]\n", - "00100101#0011##01###1###0011#0#0#1##1##01111#0#000 => True [0.15001]\n", - "#10##011#00##1#11001000#01#001###1001#00#11#0##001 => False [0.15001]\n", - "1101#0100#1101#1##10100##010#####010100###0##10101 => False [0.15001]\n", - "1011100#1#00#10011#1101#01##01111#00#110#0####1#10 => True [0.15001]\n", - "##100#0#000#1110###0#0001##0101##10##00110#001#010 => False [0.15001]\n", - "0#00110100#110010011#0##0#10#1#100#1##0#01#0001011 => True [0.15001]\n", - "1#11#111###0#1#0100#00011101#0011101##111110110101 => False [0.15001]\n", - "0101#1#11#0000000101#01#000101111#000#101#10000##1 => True [0.15001]\n", - "1#1##0011##1#01011110#1010#10#01##10#0#001#010#010 => True [0.15001]\n", - "#1#001#01#00#10####000#1110#01#100##0#0##1##1011#0 => True [0.15001]\n", - "#0#1#010#11#001#0#1#0#000##0#01####101010#1#0#1000 => True [0.15001]\n", - "110##00100##1##1#00#1000110000000001010#1###1#010# => False [0.15001]\n", - "01#0000#01#101#0101##110#1001010010#01##01#010##10 => True [0.15001]\n", - "##1##011#111#110001###0000100#10111#0#00##11#01101 => True [0.15001]\n", - "1###1#100##01##1001100##1#1###1011000#####01#0#0#0 => False [0.15001]\n", - "###11#01#0011011#1#1###0101#0##11#11011101##10111# => True [0.15001]\n", - "1001####0###00#0##00101110101#100##01#0100001001## => True [0.15001]\n", - "#111##01#1010##011#1011###00001011#001110#101##011 => False [0.15001]\n", - "1#1#1#1010#0##100110####1#1001010100110#0001100111 => True [0.15001]\n", - "1##11##1111#0##010001001#00##1#####00100#11##10101 => False [0.15001]\n", - "###11#1111110101#1##1#00#11###1#00#10100100#001101 => False [0.15001]\n", - "00######1##01##01####1##00011#01#01#00001###1#101# => True [0.15001]\n", - "####01#0001#0111##001110001#1001#1001##00#100#10#1 => False [0.15001]\n", - "10#1#10#01101110000####000##1#1#0#111##10#111#10#1 => False [0.15001]\n", - "#11#0#1###10#001010111#11#0####0#01110011#1#1##100 => True [0.15001]\n", - "###1##10##100101##00#111#000#11#0001#1#00##00000## => False [0.15001]\n", - "1100#0101#1110#00000#0#00##1#10#1111011011001##1## => True [0.15001]\n", - "1#1111##1##010001#10000#100##0#11#0####1#00#01##00 => True [0.15001]\n", - "#111#111#011##1000###000#1#0001#1000001##10010#000 => False [0.15001]\n", - "110110#1000#111#1#010#11010#0#000#1#0110#100#01#0# => True [0.15001]\n", - "110#1110000#00#1#1####1#0#1###0#010#1#001#1#0#101# => False [0.15001]\n", - "001##11001###0#00#101###10111#0#0#0#0#1#0010100110 => False [0.15001]\n", - "#10#0011101#00000111011#1#0#00###01#####11#110##00 => True [0.15001]\n", - "01010##1#11#101#100010##101#111110101#000100#010#0 => False [0.15001]\n", - "1000#11##1#01#10100010101000#1#00#0#100##0#111#01# => True [0.15001]\n", - "#011#1#00010#0##1#1010#0#1####0100011#1#1011##0110 => False [0.15001]\n", - "0#1#11##11#110010011#11101#0011011101##11111#0100# => True [0.15001]\n", - "0#1#0#001#111##00#1110#1#10#001#10#1#0#11011001#01 => True [0.15001]\n", - "#11100##01##1#0#0100#001011001111001#10#10#1#011## => False [0.15001]\n", - "#1#1##01#1#0#1##00#000#01100#0#01010#00#000###100# => False [0.15001]\n", - "#0111000100011##0#00#1#00#10#10##011100#01##11###0 => False [0.15001]\n", - "00#0##0#0##01#0#10#1#0#110##1####0#001011##10#0110 => False [0.15001]\n", - "1#1011#0#10000#0#1##1###11#10##11100#0010#010##100 => False [0.15001]\n", - "##011#10#0#1000011001000###01#1#01#00#1010##01000# => True [0.15001]\n", - "1110##00####01##11#00010011100##10#10#0010#1#1#01# => False [0.15001]\n", - "##00##001111##0010###0#0#1#011##100100#00#1#11001# => True [0.15001]\n", - "00101#101#0##1#0#00#101#0#110011##111011##01010#0# => True [0.15001]\n", - "#1#01#10####11011#11#100##00#1100##10110100110##1# => True [0.15001]\n", - "101#11#010######01#0#0100#00#01##11011110#11#1101# => True [0.15001]\n", - "1###1000#00#1##100#00#0111#0#0#1111000100#0001#10# => True [0.15001]\n", - "11####00111#1##1000#000##1##0#011#1000#1#0#1011110 => True [0.15001]\n", - "#11010###010#1#00#10#0#1111110#10###01101#1111010# => True [0.15001]\n", - "0##111#01##01000####1##0011#101#0001#00001##000001 => False [0.15001]\n", - "#00##1#111000110##011#10##11#1#1011##1011##011111# => False [0.15001]\n", - "11101#0#11101#1####1#0#001##0#01#01####01#11100001 => True [0.15001]\n", - "01##00#0##11#00#000##11000#00110011#1#1010110##000 => True [0.15001]\n", - "100##1001#101#100#1100#0000010#101#011#0##10011001 => True [0.15001]\n", - "##1##1##11#1101#0000001010##100110##1##1#100#11111 => True [0.15001]\n", - "1#10#1#01001###110111100#0100##0#0101##101#0#0#111 => False [0.15001]\n", - "100#####01##11##1#101110110#00000######01000010#0# => True [0.15001]\n", - "10#10#01#100#1#11##111###00111#0#10#111##00100##00 => False [0.15001]\n", - "110#0#010010#00100##1#1#0###1##001#1#10000110#10## => False [0.15001]\n", - "#1101####1##0#0000#1#0#0011#0#11##0##1#01##1#1#01# => True [0.15001]\n", - "001#00#101#0#11#100#0#01101110100000#1###010###111 => False [0.15001]\n", - "00011#1##0#11##101101##00#1#0111#01000#0#1110##0#0 => False [0.15001]\n", - "111#10#1##000011###11#100###00#11001010#10#1000##1 => True [0.15001]\n", - "##0##1#00110101##10#0##11##1001#1#10000#0010001### => False [0.15001]\n", - "1#1101001##0001#1#10101100##0#01#00011#10##0110#00 => True [0.15001]\n", - "1##111##11001#1011100###0#1#10010#0#011010010#111# => False [0.15001]\n", - "1##1#01#000#010#0##00010100##0#1#001#11#11#0##010# => False [0.15001]\n", - "1#0101#0100#01#0011#1#0###01##00110#1##1000#000000 => False [0.15001]\n", - "00000##11011#0#11001#0100001011#1#0#11100#0#0010#0 => True [0.15001]\n", - "0#1##1#0111#00111001111011010100#11101#10#11010110 => False [0.15001]\n", - "####1#00001#0001#0000100001#####11111#1010###1100# => False [0.15001]\n", - "00#00#1010#001001#1101001##10#001#0111##0000100011 => True [0.15001]\n", - "#1001#000###100#01#1110000##10##11##011101#01#0110 => False [0.15001]\n", - "11#0#0011101#0#01#010000110#00#01#0#0#00010111#11# => False [0.15001]\n", - "01011#01###0#1#1###001110#00001##1001#10100##0##1# => True [0.15001]\n", - "11#0####000###1010#0001#0#1111##00#010#000011#10## => False [0.15001]\n", - "##101011111##00011#100#110##101#01#1##01#1#0#0101# => False [0.15001]\n", - "1#1#1#01###11001#1110101#0#0##1###1#10#1#1#0010011 => False [0.15001]\n", - "##100111#110#00##11#0##0#00100#0#1011#00##1#00#10# => True [0.15001]\n", - "#0110#0100#1010##0010#011#0#10#100###101#1#1#10100 => True [0.15001]\n", - "0#11011######0#01101101110##0#100#00100#1##11####0 => True [0.15001]\n", - "#001100#00#111#100110####011110#10110#1110010#0111 => False [0.15001]\n", - "11111111#1101##1001#10#000##010000#10##01#11###00# => False [0.15001]\n", - "#1100#10##00##1#0#000010#001#1##0#00000#11#1100##1 => True [0.15001]\n", - "#101101#0##0#01010#01#0#01#10001#0##0#111#1##1###0 => True [0.15001]\n", - "010##0#110#0#0##1011#1#011##0###10#1##0#0#0#0#110# => False [0.15001]\n", - "0101#0101#1#0000#1#0#10011100##00000#11#1000#0#010 => False [0.15001]\n", - "##01##01#11###0###0##011#00#10101#1110#11##101010# => False [0.15001]\n", - "11#10#10#0001111110110####11001001110#0##0#0000#0# => True [0.15001]\n", - "000#0#101111#1#10##001001#0#1##0001##01010000#0100 => False [0.15001]\n" - ] - } - ], - "source": [ - "for rule in model:\n", - " if rule.fitness > .05 and rule.experience >= 1:\n", - " print(rule.condition, '=>', rule.action, ' [%.5f]' % rule.fitness)" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "from lcs.agents.xcs import XCS, Configuration\n", - "\n", - "cfg = Configuration(number_of_actions=4,\n", - " gamma=0,\n", - " metrics_trial_frequency=5,\n", - " covering_wildcard_chance=0.9\n", - " )\n" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [], - "source": [ - "agent = XCS(cfg)\n", - "explore_population, explore_metrics = agent.explore(scenario, training_cycles, False)" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Cond:#1#1111000#100111011111110110111100010#10101010001 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01010001111010###01#00#10#0100000000011000#0011110 - Act:1 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.529]\n", - "Cond:1111010110111#11110#001000###1#00#10##1#0001011011 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:111#0100101111001#00111101100010#011#1001010111000 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#11#11000##0101#00100111001#110000101010010111000 - Act:0 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.440]\n", - "Cond:01000001011000101111011100011011010111010010001010 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:000000010011110#11010000#0111110010#11##1110#11011 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0000100011001000000000110010#010100000111100111111 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1#11001011011100#01#0100#1#010100011010#01#11#01#1 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:11#0010011#0110#011100100011101011010000010#111#01 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010100#0101#111110#1#0110#000100010111#0011#110001 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:10#100#00000#1011#11101#111#100#110001011100010001 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#101101##001001#10101000110011100011#0010#11101111 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11000011000001101001#1000001000001001000111100110# - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0001#101011001001101010001##011101110111#110000111 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:001000011101101001#00011010#0100000#0#10##10010011 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#111111010#1#0010011001#001#010001#1#000111101111 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:111#011110001111010010011#101011101#01100011111010 - Act:2 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:111101#11000##1101001001#11010#110#10#10001111#010 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1101000100000000011110#000111000011110000011000101 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:001011#111001000010#11011#0100#101#1010011#011011# - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010010#0100#00110000111110010#110#01011010#1#00000 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:##110100000#10000100#11#00010101000011110011011#00 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:00#00#1000110111#110001011010#0010101100110001011# - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:#1111#101000100110##110#0001100110#101001111100111 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0111111010#010#11010110100011#01100101#01#11100111 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01010111001#10##00101000#0101111111111111011100#01 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:01110101#10011010#11000101001001100101101#01101000 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:011101#101001101011100010100#00110#10#10#001#01000 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:001010100001110110100101#110#0##0101000#010#00#001 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:00101011#001000#110#1001011011101#001011100#110000 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#01111#00000111#010#110111111110010110110101#1#00 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#0111100#00011100#00110111#11#10#1011###0#01##100 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11111000010101110101100#00001100#01011101#01100001 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#010#1#0##110#01011#011#10000101010011111##101110 - Act:2 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:10101100011111000000101#10100111000000111001100#10 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0101010#110001000000111000000101#00000001010000101 - Act:0 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.424]\n", - "Cond:110111101110010110#0#101#001001#10001111100#010#11 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11001000100000001101#0111#00001#0011#1111011#00#11 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#11110111101101111##1110010#11010#00#1#00101101## - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010101000#00101##11010100#1010110110101100110110#1 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:011101#110101100110100001011110000#010110001010110 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01110101101011001101#00010111100001010110001010110 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:0011001000001#1000100011100101#01#100#0110110110#0 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#01010#0011#0#00111001010110#1011001#00#00010100# - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#001001#11#1#0011011001110111101110011#1#000#01011 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:101111#000000010101101011010000101010#001010001111 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:101111#0000000#0101101011010000##1010100101000#111 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:10#1001010001000001010110#100#0101001#11011000100# - Act:0 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.382]\n", - "Cond:#001001010001000001010#1001000#101001011011#0010#1 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010001000001101100101111000111000111#00##01110011# - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010001#0000#10110#101#11000#11000##1#0000011100111 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:10110#000010001110011#01000101#11001111101000#11#1 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:000#0111111#10#0#0001011110#101110101#01#1000#010# - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1#1#11111011010100100#10110100011001110#0010000001 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1011111110110101001##1101101000##0011101001000#001 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01000000#010100111001100100101#1001101#1100100#111 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01011#00100#01010100101111#1011##011101##01101#000 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:10##0001001101111110001001110101011110011111110110 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:011010011100011#110#0101010100011100000010#1101101 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0110100111000111110001010101000111000000#011101101 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11#00111100000#1101100#01#001011000001001000111#0# - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:111#0111100000011011#00#11001011000001001000111101 - Act:2 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:1000001110#11##0110000110#10100#111101100#11#0#010 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:100000111001111#1100001101101000111101100011101010 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#0#0001001011#110000#10101110000010000111#010001#0 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0101100##1100#000111010#1101101001111#011000000111 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010110000110010001110#0111011010011111011000000111 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:##000111110001100001#0101001001001011#001110000110 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1010001111#01101#011110101011#0##101011#1#10001011 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1010001#1100#101001#110#010110#11101011###100010#1 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:101000111100110100111#01#1011#01110#01111#1#001011 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0010011011100001#001#1111101100#011#100101110#1101 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:00100#10111000011001011111011#0001111001011#001101 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:010#10000000010#11111#11101#01011110110100#1011101 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0011110#001111101#1#01011010000100101001#000110100 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:10100110100011#1000010110#1000110101110010#1111#10 - Act:2 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:1010011010001111000010#101100#110101110010##111110 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:10#001#0100#01100000#1001110100101001101#111100011 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:100##1001000011000#0#10011101#010100#1#111#11#0011 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:0001#00#111100#10100111#010#100#11100#100010101100 - Act:0 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.516]\n", - "Cond:0101111010010001#00#0001100##11010111#0#0000010011 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01011#1010010001100#0001#0##111010#1#0010000010011 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010111101#01##0#100#0001100111#010#11#010000010011 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:101101000111100#1010#010101001001001#101#101#11010 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:10#10#0001#1#0011#101#10101#0#001##11#010101011#10 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1011010001111##11#10#010##1#0100100111010101011010 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:110110##0011001#000#01101#001111#01110#00001001101 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:11#100#01101#01001010000000001100011#00101#0100110 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:111100##1101001001010000#0000110001110010100100110 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010001#011##1#0#0100#11110110#111#10111001010111#1 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#100011#11101000010001111011#0111010111#0101011#01 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:11101110110010001#10111010#0101001000000#010#0#100 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11101110110010001110111010101010010000001010000100 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:000111110010100#01#111010111#001100010101110011#00 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#0111110#101000#10111#101111001#000101#111001#1#0 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:1100111100101#0#10101##1010111#0011111110#001#0000 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11001#110#101101101011110101110#01111111000#110000 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:00011100001110100100010011111010110111#111#00#1001 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#001000010001#0#10100#0001#0110011101001101100000# - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1001#000100011#01#1001000110110##110100#1011000000 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:00#00100010101100111001110110000010111011111011100 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:001001000101#1100111001110110##001011#01#111011#00 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:11001011101011001101101111#11##11##10110010#011100 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1#0010000#00011011100111#1#00000#11100110110101100 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:100010#00#000#1011100111110000001111001#0110101100 - Act:2 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:01110010#010001111000#0001010111010011000#11111110 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0111001010#0001#1100010#0101011101001#000011111110 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:1001100110101101100000101100101#01000011000010000# - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#101#1001000010100101111#0#01101111010011100100111 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010111001000###10010#1#1101011##111010011#0010011# - Act:2 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:#00101011100#101101#111101011100010#01011100101000 - Act:0 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.564]\n", - "Cond:1001010111001101101111110#011100010001#1110010100# - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:10#101011100110110#11111010111000#0001011100101000 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0101111110#0010101000#001110010#010001111001011#00 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010111111000#1#10100000011#0#10101000111100101#00# - Act:2 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:0#0001001000#01001001011101011111011111#1110110000 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010001#0#0001010010010##1010111110111#1#1110110000 - Act:2 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:01000100100010100100101110##1111101#1111111#110000 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:10#11010#000##1101000#0110100000101111001101010110 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1011101010001011010#010110100000#01111001101010110 - Act:1 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.518]\n", - "Cond:10111010100#1011#10#010110100000#01111001101#10110 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#01110101000101##10#01011010000#1#1111##1101010110 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01100110110000#11000111001000001100#10#10000111000 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:011001101100001110001110010000011001101100001110#0 - Act:1 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.466]\n", - "Cond:011001101#0#00111000111001000001100#101#0#00111000 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#001#00000#00#01#100101001#01010101100001111111010 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:10110100100110111001000#100000101#0010101101100011 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1#11#1001001101110010#00100#0010110#10101101100011 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:#0010111#00#0111100010#11011#0000#1000110100011101 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1001011100010111#00010011011#000011000#1#100011101 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:10010111000101111#00100110111000##1000110100011101 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:0110#001101001101000110000#011010111010#100010011# - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:011010011010011010001100001#110101110#011000100110 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:#101101101011#001110001100010110#101#10101010#1000 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11#11011010##0001110#01100010##00101010101010#1#00 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:11110010011#10101001100110000101101001001101110111 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:111101010#00#100100#1101010101101011111100000010#1 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1111010#0100010#10001#010101011010#1111100000#1001 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:11##0011001111101000#11010000#101010101100#1110011 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:111000110011#110100#01101000011010101011#011110011 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11100#11001111#0100001101000011#101010##0011110011 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:111000#10011111###000#1##0000110101010110011#10011 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:110111100#001010111010#0100101110101101000#1100011 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11011#10010010101110100010010#1#01#110100011#00011 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11011#1001001010111#1000100#01110101101000111000#1 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:110111100##010101110#00010010111010110#0001#100#11 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:10#0#10001101#1#010#1101#0010#1100#111#0101101011# - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:101011000#10111001011#010001001100011100101101#1## - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010000011110100#0100100000100100#0000100#001#00100 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#0000011110100101001000#0100100##000#00000#10010# - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0100000#1110100101001000001001#0000001000001100100 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#01011110101111100101000100010110111111001#101011 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01010#111#1011111001010#0100010110#111110010#01011 - Act:1 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.520]\n", - "Cond:010#01#11010111#1001010001000#01#01111110010101011 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01010111#010#111#0010##001000#01#011111100#010#011 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11110100001111#011001#0#00100110000010010111111100 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1111#1000011110011#011000#100#100000100#0#111##100 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11110#000#11110#11#01#00001001100#0010#10111111100 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:00000#00111001#0#10#1111010000100000010100010#1001 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#0000001110010#01001#110100#0#000#001010001001001 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:00000000111#01000100#1110100001000000101#00100#001 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0110100001101110101#00010100101100000#111011011010 - Act:0 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.508]\n", - "Cond:01101000##101110101##00101001011000#0111101101#010 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01101#00011011#010#000##0#001011000001111011011010 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0#101000011#11#0#01#0001010#1#1100#001#110#1011#1# - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1011000010000000001#11111#1111101#111111#01001#1#0 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1011#00#100000000011111110111110101111111010010110 - Act:1 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.468]\n", - "Cond:011101#000011010101100##11#01101111011#0000#110001 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01110110000110101011#0111##01101111011000001110001 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:##11011000#11#10101100111#1011011110110#0#01110001 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:011101#0000110#01011001111101101111011000001#10001 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:0#000011111100#111010010011##01#001001010#11101111 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010#00111#1100##11010010011100#10#1001010011101#11 - Act:1 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.521]\n", - "Cond:#1000##111110011#10100100111#01100100101001#1#1#11 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01#000#1111100111101001001110011#01001010011101111 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#0110010000000000011101000111010010111101000100100 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#01100100000#0#000111010##111#1#010111101000100100 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0011001#0000#0000011#01#001#1010010#1110#0001#0100 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0011001000000000001110#0#01110100101##101000100100 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:100#11#1000011011111010111#1##111010111#1011101111 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:10001111000011011111010111011111101011101011101111 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:100011110000#10111#101011#01111#101011101011101111 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:100011110000110#111101011101111110#011101011101111 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:0#010110010#1001010#0000010010111##0100#00#11110#1 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#00#0110010#10010#0100#001001011101010010#1111100# - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:000101100101100101010000010010111010#0010011111001 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0001011#010110010101#0#001001011101#100100111110#1 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:#100011#001101101010001#11#01001001#10111101001010 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1100#1110##1#110101000111#0#1001001110111101001010 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:11000#1100#10#10101000111#001001001110111101001010 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:1100011100110110#010001111001001#0111011110#0#1#10 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:01#1#0111101000001#10000#101101001000#0#1001101110 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:010110111101000001#100000101101#0100000110#11011#0 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:0101101111010#0001010000010110100100#0011001101110 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01011#11110#000001010000#1011010#1000001100110111# - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n", - "Cond:011100110011100000100011#1101111001100110#0##00101 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:011#0##1001110000#10#01101101111001#0#110001100101 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:#1110011#0111#00001000110110111100110#1100011##101 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000]\n", - "Cond:01110011001#1000001000110110111100#100110001100101 - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 0.000]\n" - ] - } - ], - "source": [ - "for rule in explore_population:\n", - " print(rule)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "200\n" - ] - } - ], - "source": [ - "print(len(explore_population))" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "01010001111010###01#00#10#0100000000011000#0011110 => 1 [0.05000]\n", - "0#11#11000##0101#00100111001#110000101010010111000 => 0 [0.05000]\n", - "1#11001011011100#01#0100#1#010100011010#01#11#01#1 => 3 [0.05000]\n", - "0001#101011001001101010001##011101110111#110000111 => 3 [0.05000]\n", - "111#011110001111010010011#101011101#01100011111010 => 2 [0.05000]\n", - "00#00#1000110111#110001011010#0010101100110001011# => 3 [0.05000]\n", - "01010111001#10##00101000#0101111111111111011100#01 => 3 [0.05000]\n", - "0#010#1#0##110#01011#011#10000101010011111##101110 => 2 [0.05000]\n", - "0101010#110001000000111000000101#00000001010000101 => 0 [0.05000]\n", - "01110101101011001101#00010111100001010110001010110 => 3 [0.05000]\n", - "10#1001010001000001010110#100#0101001#11011000100# => 0 [0.05000]\n", - "010001#0000#10110#101#11000#11000##1#0000011100111 => 3 [0.05000]\n", - "10110#000010001110011#01000101#11001111101000#11#1 => 3 [0.05000]\n", - "111#0111100000011011#00#11001011000001001000111101 => 2 [0.05000]\n", - "00100#10111000011001011111011#0001111001011#001101 => 3 [0.05000]\n", - "0011110#001111101#1#01011010000100101001#000110100 => 3 [0.05000]\n", - "10100110100011#1000010110#1000110101110010#1111#10 => 2 [0.05000]\n", - "100##1001000011000#0#10011101#010100#1#111#11#0011 => 3 [0.05000]\n", - "0001#00#111100#10100111#010#100#11100#100010101100 => 0 [0.05000]\n", - "010111101#01##0#100#0001100111#010#11#010000010011 => 3 [0.05000]\n", - "1011010001111##11#10#010##1#0100100111010101011010 => 3 [0.05000]\n", - "110110##0011001#000#01101#001111#01110#00001001101 => 3 [0.05000]\n", - "#100011#11101000010001111011#0111010111#0101011#01 => 3 [0.05000]\n", - "0#0111110#101000#10111#101111001#000101#111001#1#0 => 3 [0.05000]\n", - "001001000101#1100111001110110##001011#01#111011#00 => 3 [0.05000]\n", - "100010#00#000#1011100111110000001111001#0110101100 => 2 [0.05000]\n", - "0111001010#0001#1100010#0101011101001#000011111110 => 3 [0.05000]\n", - "010111001000###10010#1#1101011##111010011#0010011# => 2 [0.05000]\n", - "#00101011100#101101#111101011100010#01011100101000 => 0 [0.05000]\n", - "010111111000#1#10100000011#0#10101000111100101#00# => 2 [0.05000]\n", - "010001#0#0001010010010##1010111110111#1#1110110000 => 2 [0.05000]\n", - "1011101010001011010#010110100000#01111001101010110 => 1 [0.05000]\n", - "011001101100001110001110010000011001101100001110#0 => 1 [0.05000]\n", - "1#11#1001001101110010#00100#0010110#10101101100011 => 3 [0.05000]\n", - "10010111000101111#00100110111000##1000110100011101 => 3 [0.05000]\n", - "011010011010011010001100001#110101110#011000100110 => 3 [0.05000]\n", - "11#11011010##0001110#01100010##00101010101010#1#00 => 3 [0.05000]\n", - "11110010011#10101001100110000101101001001101110111 => 3 [0.05000]\n", - "1111010#0100010#10001#010101011010#1111100000#1001 => 3 [0.05000]\n", - "111000#10011111###000#1##0000110101010110011#10011 => 3 [0.05000]\n", - "110111100##010101110#00010010111010110#0001#100#11 => 3 [0.05000]\n", - "01010#111#1011111001010#0100010110#111110010#01011 => 1 [0.05000]\n", - "11110#000#11110#11#01#00001001100#0010#10111111100 => 3 [0.05000]\n", - "0110100001101110101#00010100101100000#111011011010 => 0 [0.05000]\n", - "1011#00#100000000011111110111110101111111010010110 => 1 [0.05000]\n", - "011101#0000110#01011001111101101111011000001#10001 => 3 [0.05000]\n", - "010#00111#1100##11010010011100#10#1001010011101#11 => 1 [0.05000]\n", - "0011001000000000001110#0#01110100101##101000100100 => 3 [0.05000]\n", - "100011110000110#111101011101111110#011101011101111 => 3 [0.05000]\n", - "0001011#010110010101#0#001001011101#100100111110#1 => 3 [0.05000]\n", - "1100011100110110#010001111001001#0111011110#0#1#10 => 3 [0.05000]\n", - "01011#11110#000001010000#1011010#1000001100110111# => 3 [0.05000]\n", - "01110011001#1000001000110110111100#100110001100101 => 3 [0.05000]\n" - ] - } - ], - "source": [ - "for rule in explore_population:\n", - " if rule.fitness >= .05 and rule.experience >= 1:\n", - " print(rule.condition, '=>', rule.action, ' [%.5f]' % rule.fitness)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Conclusions\n", - "Both XCS implementations provide similar looking population. Both has population size of 200, and both provide similarly looking classifiers.\n", - "Main difference being differenty amount of classifiers with fitness above 0.05, which can easily be explained by algorithms using different RP." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_compared_Maze.ipynb b/XCS_Experiments/XCS_compared_Maze.ipynb deleted file mode 100644 index 8130440..0000000 --- a/XCS_Experiments/XCS_compared_Maze.ipynb +++ /dev/null @@ -1,1057 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 87, - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "logging.root.setLevel(logging.INFO)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 88, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "import random\n", - "\n", - "from xcs import XCSAlgorithm\n", - "from xcs.scenarios import Scenario" - ] - }, - { - "cell_type": "code", - "execution_count": 89, - "metadata": {}, - "outputs": [], - "source": [ - "import random\n", - "\n", - "from xcs.scenarios import Scenario\n", - "from xcs.bitstrings import BitString\n", - "\n", - "# environment setup\n", - "import gym\n", - "# noinspection PyUnresolvedReferences\n", - "import gym_maze\n", - "\n", - "\n", - "class MazeScenario(Scenario):\n", - " \n", - " def __init__(self, training_cycles=5000, input_size=8):\n", - " self.input_size = input_size\n", - " self.maze = gym.make('Maze5-v0')\n", - " self.possible_actions = (0, 1, 2, 3, 4, 5, 6, 7)\n", - " self.done = False\n", - " self.state = None\n", - " self.reward = 0\n", - " self.state = self.maze.reset()\n", - " self.remaining_cycles = training_cycles\n", - " \n", - " self.steps_array = []\n", - " self.steps = 0\n", - "\n", - " def reset(self):\n", - " self.done = False\n", - " self.state = self.maze.reset()\n", - " no_reward_state=[]\n", - " for char in self.state:\n", - " if char == '1' or char == '0':\n", - " no_reward_state.append(char)\n", - " else:\n", - " no_reward_state.append('1')\n", - " return no_reward_state\n", - " \n", - " # XCS Hosford42 functions\n", - " @property\n", - " def is_dynamic(self):\n", - " return False\n", - " \n", - " def get_possible_actions(self):\n", - " return self.possible_actions\n", - " \n", - " def more(self):\n", - " if self.done:\n", - " self.reset()\n", - " self.remaining_cycles -= 1\n", - " self.steps_array.append(self.steps)\n", - " self.steps = 0\n", - " self.reset()\n", - " return self.remaining_cycles >=0\n", - " \n", - " def sense(self):\n", - " no_reward_state=[]\n", - " for char in self.state:\n", - " if char == '1' or char == '0':\n", - " no_reward_state.append(char)\n", - " else:\n", - " no_reward_state.append('1')\n", - " return BitString(''.join(no_reward_state))\n", - " \n", - " def execute(self, action):\n", - " self.steps += 1\n", - " raw_state, step_reward, done, _ = self.maze.step(action)\n", - " self.state = raw_state\n", - " self.reward = step_reward\n", - " self.done = done\n", - " return self.reward\n", - "\n", - " # XCS Pyalcs functions\n", - " def step(self, action):\n", - " raw_state, step_reward, done, _ = self.maze.step(action)\n", - " self.state = raw_state\n", - " self.reward = step_reward\n", - " self.done = done\n", - " no_reward_state=[]\n", - " for char in self.state:\n", - " if char == '1' or char == '0':\n", - " no_reward_state.append(char)\n", - " else:\n", - " no_reward_state.append('1')\n", - " return no_reward_state, self.reward, self.done, _" - ] - }, - { - "cell_type": "code", - "execution_count": 90, - "metadata": {}, - "outputs": [], - "source": [ - "training_cycles = 1000\n", - "input_size = 8\n", - "logging.root.setLevel(logging.INFO)\n", - "scenario = MazeScenario(training_cycles, input_size)" - ] - }, - { - "cell_type": "code", - "execution_count": 91, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "algorithm = XCSAlgorithm()\n", - "algorithm.learning_rate = .1\n", - "algorithm.error_threshold = .01 # epsilon_0\n", - "algorithm.ga_threshold = 25\n", - "algorithm.crossover_probability = 0.5\n", - "algorithm.mutation_probability = 0.01\n", - "algorithm.initial_prediction = float(np.finfo(np.float32).tiny) # p_I\n", - "algorithm.initial_error = float(np.finfo(np.float32).tiny) # epsilon_I\n", - "algorithm.initial_fitness = float(np.finfo(np.float32).tiny) # F_I\n", - "algorithm.minimum_actions = 8\n", - "algorithm.wildcard_probability = 0.33" - ] - }, - { - "cell_type": "code", - "execution_count": 92, - "metadata": {}, - "outputs": [], - "source": [ - "model = algorithm.new_model(scenario)\n", - "model.run(scenario, learn=True)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 93, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1##00### => 2\n", - " Time Stamp: 41014\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.022999553415708432\n", - " Experience: 1\n", - " Action Set Size: 21.0\n", - " Numerosity: 1\n", - "01##1110 => 0\n", - " Time Stamp: 40846\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.025739267377184717\n", - " Experience: 0\n", - " Action Set Size: 1\n", - " Numerosity: 1\n", - "#0#10##1 => 2\n", - " Time Stamp: 41047\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.03532705735752422\n", - " Experience: 0\n", - " Action Set Size: 1\n", - " Numerosity: 1\n", - "#1##0### => 2\n", - " Time Stamp: 40993\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.03555680321671701\n", - " Experience: 4\n", - " Action Set Size: 16.25\n", - " Numerosity: 1\n", - "####0#0# => 2\n", - " Time Stamp: 41047\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.035794351621771796\n", - " Experience: 1\n", - " Action Set Size: 25.0\n", - " Numerosity: 1\n", - "#####0#1 => 6\n", - " Time Stamp: 40953\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.056701109794600135\n", - " Experience: 12\n", - " Action Set Size: 17.358\n", - " Numerosity: 1\n", - "###1##0# => 0\n", - " Time Stamp: 40950\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.06592610598558074\n", - " Experience: 9\n", - " Action Set Size: 19.22222222222222\n", - " Numerosity: 1\n", - "#######0 => 5\n", - " Time Stamp: 41006\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.06695096548261939\n", - " Experience: 44\n", - " Action Set Size: 17.45248883737264\n", - " Numerosity: 1\n", - "#0####0# => 7\n", - " Time Stamp: 41078\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.07827079797512902\n", - " Experience: 7\n", - " Action Set Size: 15.428571428571427\n", - " Numerosity: 1\n", - "#####1## => 4\n", - " Time Stamp: 41064\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.08703776884409038\n", - " Experience: 4\n", - " Action Set Size: 16.0\n", - " Numerosity: 1\n", - "0110#110 => 0\n", - " Time Stamp: 40634\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.1\n", - " Experience: 1\n", - " Action Set Size: 1.0\n", - " Numerosity: 1\n", - "#0##0### => 7\n", - " Time Stamp: 41078\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.11058043915079571\n", - " Experience: 35\n", - " Action Set Size: 14.226179833853445\n", - " Numerosity: 1\n", - "01###### => 7\n", - " Time Stamp: 40937\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.11346094506689183\n", - " Experience: 15\n", - " Action Set Size: 13.527608\n", - " Numerosity: 1\n", - "01#10001 => 2\n", - " Time Stamp: 39261\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.271\n", - " Experience: 3\n", - " Action Set Size: 1.6666666666666665\n", - " Numerosity: 1\n", - "010010#0 => 0\n", - " Time Stamp: 39213\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.3576318571428571\n", - " Experience: 6\n", - " Action Set Size: 4.833333333333333\n", - " Numerosity: 1\n", - "####0#1# => 2\n", - " Time Stamp: 41058\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.09532062711469533\n", - " Experience: 15\n", - " Action Set Size: 14.648810999999998\n", - " Numerosity: 2\n", - "#1##1### => 7\n", - " Time Stamp: 41008\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.09568244563032939\n", - " Experience: 8\n", - " Action Set Size: 13.375\n", - " Numerosity: 2\n", - "######## => 7\n", - " Time Stamp: 41078\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.12024613845207463\n", - " Experience: 17\n", - " Action Set Size: 13.51017031\n", - " Numerosity: 2\n", - "#11100#0 => 2\n", - " Time Stamp: 40580\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.14\n", - " Experience: 2\n", - " Action Set Size: 1.5\n", - " Numerosity: 2\n", - "#0##00## => 0\n", - " Time Stamp: 41059\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.16839790581881345\n", - " Experience: 14\n", - " Action Set Size: 8.60327\n", - " Numerosity: 2\n", - "####01## => 2\n", - " Time Stamp: 41047\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.18092902824961404\n", - " Experience: 17\n", - " Action Set Size: 13.930918\n", - " Numerosity: 2\n", - "##0##### => 6\n", - " Time Stamp: 41007\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.21264606804418934\n", - " Experience: 105\n", - " Action Set Size: 15.595144883093111\n", - " Numerosity: 2\n", - "#######1 => 6\n", - " Time Stamp: 41043\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.22547262758755587\n", - " Experience: 126\n", - " Action Set Size: 15.113452844218537\n", - " Numerosity: 2\n", - "####011# => 2\n", - " Time Stamp: 40965\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.30005495614902505\n", - " Experience: 58\n", - " Action Set Size: 13.536372346633163\n", - " Numerosity: 2\n", - "#####11# => 2\n", - " Time Stamp: 40965\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.31146497791368916\n", - " Experience: 19\n", - " Action Set Size: 10.916406406500004\n", - " Numerosity: 2\n", - "#0##0000 => 2\n", - " Time Stamp: 40925\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.36170382333333334\n", - " Experience: 8\n", - " Action Set Size: 4.25\n", - " Numerosity: 2\n", - "00#01#00 => 2\n", - " Time Stamp: 40268\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.6933934762503899\n", - " Experience: 14\n", - " Action Set Size: 5.5117\n", - " Numerosity: 2\n", - "#01##010 => 2\n", - " Time Stamp: 41058\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.7016170313696676\n", - " Experience: 18\n", - " Action Set Size: 5.122075938\n", - " Numerosity: 2\n", - "1111001# => 0\n", - " Time Stamp: 41080\n", - " Average Reward: 1000.0\n", - " Error: 0.0\n", - " Fitness: 0.9205476493769398\n", - " Experience: 48\n", - " Action Set Size: 5.62303260323154\n", - " Numerosity: 2\n", - "######## => 0\n", - " Time Stamp: 41080\n", - " Average Reward: 100.0\n", - " Error: 90.0\n", - " Fitness: 0.12313189291157184\n", - " Experience: 19\n", - " Action Set Size: 11.5696212834\n", - " Numerosity: 3\n", - "####0### => 2\n", - " Time Stamp: 41058\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.2778026853397468\n", - " Experience: 46\n", - " Action Set Size: 14.756403819116287\n", - " Numerosity: 3\n", - "######0# => 1\n", - " Time Stamp: 41069\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.2145079043005106\n", - " Experience: 60\n", - " Action Set Size: 18.122119162162427\n", - " Numerosity: 4\n", - "1#1##1#1 => 2\n", - " Time Stamp: 41065\n", - " Average Reward: 1000.0\n", - " Error: 0.0\n", - " Fitness: 0.34390000000000004\n", - " Experience: 4\n", - " Action Set Size: 1.25\n", - " Numerosity: 4\n", - "#0##001# => 0\n", - " Time Stamp: 41059\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.7061436405498867\n", - " Experience: 51\n", - " Action Set Size: 9.364945144152056\n", - " Numerosity: 4\n", - "011110#0 => 2\n", - " Time Stamp: 40893\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.40951000000000004\n", - " Experience: 5\n", - " Action Set Size: 2.6\n", - " Numerosity: 5\n", - "01##1#10 => 0\n", - " Time Stamp: 40846\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.25739267377184716\n", - " Experience: 3\n", - " Action Set Size: 3.333333333333333\n", - " Numerosity: 6\n", - "#0#10#01 => 2\n", - " Time Stamp: 41047\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.4574020294470933\n", - " Experience: 14\n", - " Action Set Size: 5.04148\n", - " Numerosity: 6\n", - "######## => 6\n", - " Time Stamp: 41043\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.6998333341473265\n", - " Experience: 1285\n", - " Action Set Size: 13.8599556420721\n", - " Numerosity: 7\n", - "#1###### => 7\n", - " Time Stamp: 41008\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.806280234887113\n", - " Experience: 173\n", - " Action Set Size: 13.521831730870547\n", - " Numerosity: 8\n", - "######0# => 0\n", - " Time Stamp: 41072\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.668541075723184\n", - " Experience: 104\n", - " Action Set Size: 16.254005401284612\n", - " Numerosity: 10\n", - "#######1 => 0\n", - " Time Stamp: 41072\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.7205142716511432\n", - " Experience: 618\n", - " Action Set Size: 15.25804069761616\n", - " Numerosity: 10\n", - "#0###### => 7\n", - " Time Stamp: 41078\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.805444376309957\n", - " Experience: 228\n", - " Action Set Size: 14.008364384906578\n", - " Numerosity: 10\n", - "######## => 1\n", - " Time Stamp: 41069\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.8363771483171473\n", - " Experience: 1475\n", - " Action Set Size: 17.179812790209777\n", - " Numerosity: 15\n", - "######## => 4\n", - " Time Stamp: 41064\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.9797324533724261\n", - " Experience: 735\n", - " Action Set Size: 13.88524781055092\n", - " Numerosity: 15\n", - "######## => 3\n", - " Time Stamp: 41066\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.9858477177332045\n", - " Experience: 408\n", - " Action Set Size: 14.968549856699525\n", - " Numerosity: 15\n", - "##0##### => 2\n", - " Time Stamp: 41077\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.8885380511659011\n", - " Experience: 203\n", - " Action Set Size: 16.35604670885367\n", - " Numerosity: 16\n", - "######## => 5\n", - " Time Stamp: 41070\n", - " Average Reward: 0.0\n", - " Error: 0.0\n", - " Fitness: 0.9676488913500857\n", - " Experience: 1381\n", - " Action Set Size: 17.332050835401052\n", - " Numerosity: 16\n" - ] - } - ], - "source": [ - "print(model)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 94, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "47\n" - ] - } - ], - "source": [ - "print(len(model))" - ] - }, - { - "cell_type": "code", - "execution_count": 95, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "######## => 1 [0.83638]\n", - "######## => 5 [0.96765]\n", - "######## => 6 [0.69983]\n", - "######## => 4 [0.97973]\n", - "######## => 3 [0.98585]\n", - "######## => 7 [0.12025]\n", - "######## => 0 [0.12313]\n", - "1111001# => 0 [0.92055]\n", - "#######1 => 0 [0.72051]\n", - "#######1 => 6 [0.22547]\n", - "#0##001# => 0 [0.70614]\n", - "010010#0 => 0 [0.35763]\n", - "#0###### => 7 [0.80544]\n", - "##0##### => 2 [0.88854]\n", - "##0##### => 6 [0.21265]\n", - "#1###### => 7 [0.80628]\n", - "#0##0000 => 2 [0.36170]\n", - "00#01#00 => 2 [0.69339]\n", - "1#1##1#1 => 2 [0.34390]\n", - "#01##010 => 2 [0.70162]\n", - "####0### => 2 [0.27780]\n", - "011110#0 => 2 [0.40951]\n", - "####011# => 2 [0.30005]\n", - "#0#10#01 => 2 [0.45740]\n", - "01#10001 => 2 [0.27100]\n", - "#11100#0 => 2 [0.14000]\n", - "####01## => 2 [0.18093]\n", - "######0# => 0 [0.66854]\n", - "######0# => 1 [0.21451]\n", - "01##1#10 => 0 [0.25739]\n", - "#0##0### => 7 [0.11058]\n", - "#######0 => 5 [0.06695]\n", - "#0##00## => 0 [0.16840]\n", - "#####11# => 2 [0.31146]\n", - "0110#110 => 0 [0.10000]\n", - "01###### => 7 [0.11346]\n", - "###1##0# => 0 [0.06593]\n", - "####0#1# => 2 [0.09532]\n", - "#####0#1 => 6 [0.05670]\n", - "#1##1### => 7 [0.09568]\n", - "#0####0# => 7 [0.07827]\n", - "#####1## => 4 [0.08704]\n" - ] - } - ], - "source": [ - "for rule in model:\n", - " if rule.fitness > .05 and rule.experience >= 1:\n", - " print(rule.condition, '=>', rule.action, ' [%.5f]' % rule.fitness)" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 96, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "df = pd.DataFrame(scenario.steps_array)\n", - "ax = df.plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps_in_trial\")\n", - "ax.legend([\"steps other XCS\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "metadata": {}, - "outputs": [], - "source": [ - "from lcs.agents.xcs import XCS, Configuration\n", - "\n", - "cfg = Configuration(number_of_actions=algorithm.minimum_actions,\n", - " covering_wildcard_chance=1-algorithm.wildcard_probability)\n", - " \n" - ] - }, - { - "cell_type": "code", - "execution_count": 98, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [3.5458819443170502e-40, 2.7966545038025775e-40, 1.5492520166586155e-40, 1.903331325803806e-40, 3.959521862898773e-40, 2.9618140894520446e-40, 4.89543647546747e-40, 2.971438723585207e-40], 'perf_time': 0.011805800000047384}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [9.88415481322027, 11.250242979256113, 17.97076378051483, 24.665175577055436, 11.641579763570055, 13.317150449980259, 14.972595645496263, 11.116344929060189], 'perf_time': 0.0195018000000573}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [28.238993444742675, 18.630495493221684, 17.65614878763527, 18.692484176723404, 16.58626833602353, 19.839874692752673, 14.65539885611724, 20.297262641060957], 'perf_time': 0.01980530000003}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [48.64348099122837, 43.681012110733114, 34.79335523377832, 49.580587901602854, 48.32621368119546, 56.06416665998499, 42.45187454923129, 39.52679592175156], 'perf_time': 0.02100180000002183}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 48, 'reward': [140.7417039934977, 39.78314603881954, 50.814604796607384, 39.11716849139303, 46.454057251387866, 39.84737867756296, 41.23802559516911, 39.93395844659445], 'perf_time': 0.02483140000003914}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [57.19987715522119, 56.7396942484378, 51.35044104719358, 50.98635273164726, 64.08892554663147, 64.04798348838213, 52.003130636560826, 65.02009188974185], 'perf_time': 0.02130669999996826}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 22, 'reward': [195.4952753669789, 47.285563189153976, 49.71560026534888, 48.70138516663844, 38.37609045807012, 45.95674320933664, 45.23609602692236, 40.43828614286098], 'perf_time': 0.009100799999941955}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [76.2771176325778, 19.708951725766237, 23.042226551692295, 24.223820184176212, 21.271984422864037, 24.911066999708726, 18.773924248151904, 24.772768014544425], 'perf_time': 0.020881000000031236}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [27.59838774491956, 16.974609515131263, 21.80034447474554, 20.79919388629949, 14.979593902807967, 16.21915619180908, 15.199275451373955, 14.97351620921515], 'perf_time': 0.022013500000070962}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [34.518390012311805, 23.19628742898076, 28.796077614089583, 23.072601395337028, 20.236684738972183, 18.771143217539805, 18.114169590965925, 18.89369824318717], 'perf_time': 0.022649800000067444}\n" - ] - } - ], - "source": [ - "agent = XCS(cfg)\n", - "explore_population, explore_metrics = agent.explore(scenario, training_cycles, False)" - ] - }, - { - "cell_type": "code", - "execution_count": 99, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Cond:#11#0#1# - Act:0 - Num:1 [fit: 0.000, exp: 811.00, pred: 139.989]\n", - "Cond:#00##00# - Act:1 - Num:1 [fit: 0.000, exp: 68.00, pred: 138.394]\n", - "Cond:##001##0 - Act:3 - Num:1 [fit: 0.062, exp: 255.00, pred: 146.085]\n", - "Cond:#01001## - Act:0 - Num:1 [fit: 0.000, exp: 509.00, pred: 153.848]\n", - "Cond:00#001#1 - Act:4 - Num:1 [fit: 0.000, exp: 513.00, pred: 152.691]\n", - "Cond:01#1###1 - Act:0 - Num:1 [fit: 0.042, exp: 1437.00, pred: 149.846]\n", - "Cond:#101#111 - Act:3 - Num:1 [fit: 0.003, exp: 490.00, pred: 145.712]\n", - "Cond:#1###### - Act:4 - Num:1 [fit: 0.096, exp: 3964.00, pred: 142.491]\n", - "Cond:#10#1#01 - Act:6 - Num:1 [fit: 0.001, exp: 824.00, pred: 153.839]\n", - "Cond:#0###111 - Act:7 - Num:1 [fit: 0.090, exp: 710.00, pred: 138.327]\n", - "Cond:###10##1 - Act:2 - Num:1 [fit: 0.045, exp: 1425.00, pred: 138.645]\n", - "Cond:00#10#11 - Act:3 - Num:1 [fit: 0.017, exp: 232.00, pred: 138.210]\n", - "Cond:#10#1111 - Act:1 - Num:1 [fit: 0.000, exp: 147.00, pred: 127.779]\n", - "Cond:#00#11#0 - Act:4 - Num:1 [fit: 0.003, exp: 32.00, pred: 144.546]\n", - "Cond:#0011100 - Act:6 - Num:1 [fit: 0.007, exp: 68.00, pred: 156.836]\n", - "Cond:#0#1110# - Act:7 - Num:1 [fit: 0.000, exp: 233.00, pred: 154.185]\n", - "Cond:0010#000 - Act:5 - Num:1 [fit: 0.036, exp: 120.00, pred: 142.111]\n", - "Cond:11000111 - Act:6 - Num:1 [fit: 0.088, exp: 212.00, pred: 153.015]\n", - "Cond:1101#0#1 - Act:0 - Num:1 [fit: 0.000, exp: 1783.00, pred: 153.756]\n", - "Cond:1#0100#1 - Act:5 - Num:1 [fit: 0.005, exp: 240.00, pred: 143.441]\n", - "Cond:##00#0#1 - Act:1 - Num:1 [fit: 0.000, exp: 263.00, pred: 153.671]\n", - "Cond:#10010#1 - Act:5 - Num:2 [fit: 0.469, exp: 123.00, pred: 135.083]\n", - "Cond:10010##0 - Act:0 - Num:1 [fit: 0.000, exp: 321.00, pred: 150.656]\n", - "Cond:00##0101 - Act:3 - Num:1 [fit: 0.000, exp: 183.00, pred: 133.087]\n", - "Cond:0####1#1 - Act:4 - Num:1 [fit: 0.013, exp: 2263.00, pred: 135.550]\n", - "Cond:10100000 - Act:0 - Num:2 [fit: 0.000, exp: 324.00, pred: 195.702]\n", - "Cond:##10#0## - Act:1 - Num:1 [fit: 0.035, exp: 351.00, pred: 139.632]\n", - "Cond:10##000# - Act:4 - Num:1 [fit: 0.000, exp: 60.00, pred: 155.095]\n", - "Cond:##1#0000 - Act:5 - Num:1 [fit: 0.041, exp: 75.00, pred: 148.521]\n", - "Cond:101#000# - Act:7 - Num:1 [fit: 0.142, exp: 156.00, pred: 156.630]\n", - "Cond:000#110# - Act:0 - Num:1 [fit: 0.000, exp: 236.00, pred: 187.137]\n", - "Cond:0001#101 - Act:1 - Num:1 [fit: 0.000, exp: 68.00, pred: 148.106]\n", - "Cond:0001#101 - Act:5 - Num:1 [fit: 0.003, exp: 213.00, pred: 139.894]\n", - "Cond:0001#1#1 - Act:6 - Num:2 [fit: 0.000, exp: 170.00, pred: 140.544]\n", - "Cond:0#000011 - Act:3 - Num:1 [fit: 0.000, exp: 82.00, pred: 127.368]\n", - "Cond:#01111#0 - Act:6 - Num:1 [fit: 0.002, exp: 33.00, pred: 124.208]\n", - "Cond:##0#10## - Act:0 - Num:1 [fit: 0.006, exp: 2656.00, pred: 145.682]\n", - "Cond:1#0#1##1 - Act:3 - Num:1 [fit: 0.000, exp: 444.00, pred: 149.539]\n", - "Cond:1#1101#0 - Act:0 - Num:1 [fit: 0.138, exp: 238.00, pred: 203.704]\n", - "Cond:1##10### - Act:5 - Num:1 [fit: 0.000, exp: 981.00, pred: 151.767]\n", - "Cond:111##10# - Act:6 - Num:1 [fit: 0.195, exp: 111.00, pred: 148.669]\n", - "Cond:00##0010 - Act:5 - Num:2 [fit: 0.236, exp: 131.00, pred: 137.254]\n", - "Cond:#1#0#100 - Act:5 - Num:1 [fit: 0.000, exp: 91.00, pred: 122.773]\n", - "Cond:11#10#1# - Act:2 - Num:2 [fit: 0.000, exp: 92.00, pred: 142.923]\n", - "Cond:#1111110 - Act:1 - Num:1 [fit: 0.003, exp: 116.00, pred: 148.356]\n", - "Cond:0#11#110 - Act:3 - Num:1 [fit: 0.002, exp: 97.00, pred: 133.410]\n", - "Cond:0111100# - Act:3 - Num:2 [fit: 0.002, exp: 33.00, pred: 143.959]\n", - "Cond:#11#1#00 - Act:5 - Num:1 [fit: 0.004, exp: 40.00, pred: 129.222]\n", - "Cond:##111#00 - Act:6 - Num:1 [fit: 0.000, exp: 81.00, pred: 133.005]\n", - "Cond:0##100#0 - Act:0 - Num:2 [fit: 0.000, exp: 186.00, pred: 160.796]\n", - "Cond:0001##10 - Act:1 - Num:3 [fit: 0.003, exp: 27.00, pred: 135.641]\n", - "Cond:#00#0#10 - Act:3 - Num:1 [fit: 0.000, exp: 226.00, pred: 143.033]\n", - "Cond:1000010# - Act:2 - Num:2 [fit: 0.029, exp: 231.00, pred: 158.061]\n", - "Cond:1000010# - Act:4 - Num:1 [fit: 0.030, exp: 75.00, pred: 153.435]\n", - "Cond:#1110001 - Act:1 - Num:3 [fit: 0.001, exp: 61.00, pred: 146.766]\n", - "Cond:#101#10# - Act:0 - Num:1 [fit: 0.000, exp: 1150.00, pred: 166.885]\n", - "Cond:10000#01 - Act:0 - Num:1 [fit: 0.054, exp: 355.00, pred: 160.554]\n", - "Cond:0#100110 - Act:1 - Num:1 [fit: 0.001, exp: 53.00, pred: 129.107]\n", - "Cond:01100### - Act:5 - Num:1 [fit: 0.004, exp: 217.00, pred: 143.436]\n", - "Cond:0##000#0 - Act:4 - Num:1 [fit: 0.031, exp: 151.00, pred: 145.709]\n", - "Cond:0#1#111# - Act:0 - Num:1 [fit: 0.000, exp: 248.00, pred: 186.077]\n", - "Cond:0##01#00 - Act:6 - Num:1 [fit: 0.004, exp: 105.00, pred: 134.247]\n", - "Cond:11##1### - Act:0 - Num:1 [fit: 0.225, exp: 1882.00, pred: 152.249]\n", - "Cond:001#0101 - Act:1 - Num:1 [fit: 0.000, exp: 156.00, pred: 139.954]\n", - "Cond:01##0### - Act:6 - Num:1 [fit: 0.023, exp: 518.00, pred: 148.850]\n", - "Cond:1000#011 - Act:7 - Num:3 [fit: 0.002, exp: 37.00, pred: 128.991]\n", - "Cond:0#011001 - Act:2 - Num:1 [fit: 0.000, exp: 124.00, pred: 158.634]\n", - "Cond:#1101101 - Act:3 - Num:1 [fit: 0.013, exp: 25.00, pred: 142.107]\n", - "Cond:####0#1# - Act:7 - Num:1 [fit: 0.231, exp: 2026.00, pred: 140.293]\n", - "Cond:10111100 - Act:0 - Num:1 [fit: 0.138, exp: 14.00, pred: 125.167]\n", - "Cond:110##100 - Act:2 - Num:1 [fit: 0.000, exp: 145.00, pred: 157.774]\n", - "Cond:0#0##101 - Act:3 - Num:1 [fit: 0.000, exp: 123.00, pred: 142.436]\n", - "Cond:#10#0001 - Act:1 - Num:1 [fit: 0.000, exp: 163.00, pred: 142.399]\n", - "Cond:01011##1 - Act:3 - Num:1 [fit: 0.029, exp: 487.00, pred: 158.312]\n", - "Cond:0#11111# - Act:5 - Num:2 [fit: 0.012, exp: 157.00, pred: 148.665]\n", - "Cond:#0001011 - Act:2 - Num:1 [fit: 0.000, exp: 85.00, pred: 147.251]\n", - "Cond:1#0#0101 - Act:1 - Num:1 [fit: 0.000, exp: 362.00, pred: 153.721]\n", - "Cond:10111100 - Act:1 - Num:3 [fit: 0.035, exp: 38.00, pred: 129.521]\n", - "Cond:010#101# - Act:2 - Num:2 [fit: 0.007, exp: 53.00, pred: 147.623]\n", - "Cond:1001##00 - Act:2 - Num:1 [fit: 0.044, exp: 24.00, pred: 153.096]\n", - "Cond:10000101 - Act:6 - Num:1 [fit: 0.433, exp: 100.00, pred: 142.800]\n", - "Cond:11001#00 - Act:7 - Num:3 [fit: 0.043, exp: 63.00, pred: 137.177]\n", - "Cond:01###0## - Act:7 - Num:1 [fit: 0.203, exp: 351.00, pred: 151.178]\n", - "Cond:101##0#0 - Act:3 - Num:2 [fit: 0.098, exp: 55.00, pred: 137.325]\n", - "Cond:#00#1### - Act:5 - Num:2 [fit: 0.000, exp: 559.00, pred: 149.802]\n", - "Cond:##0#01## - Act:7 - Num:1 [fit: 0.159, exp: 1322.00, pred: 141.836]\n", - "Cond:#01#10#0 - Act:0 - Num:1 [fit: 0.000, exp: 210.00, pred: 148.283]\n", - "Cond:00#010#0 - Act:4 - Num:1 [fit: 0.000, exp: 80.00, pred: 139.735]\n", - "Cond:#01101#1 - Act:5 - Num:1 [fit: 0.002, exp: 338.00, pred: 137.305]\n", - "Cond:01#1###1 - Act:5 - Num:1 [fit: 0.281, exp: 938.00, pred: 146.290]\n", - "Cond:###01101 - Act:7 - Num:3 [fit: 0.066, exp: 18.00, pred: 129.625]\n", - "Cond:#1#1100# - Act:1 - Num:1 [fit: 0.029, exp: 276.00, pred: 124.448]\n", - "Cond:#1##0100 - Act:1 - Num:3 [fit: 0.001, exp: 85.00, pred: 141.218]\n", - "Cond:111#0100 - Act:7 - Num:1 [fit: 0.349, exp: 114.00, pred: 149.267]\n", - "Cond:1101##0# - Act:6 - Num:1 [fit: 0.309, exp: 853.00, pred: 156.076]\n", - "Cond:1001##00 - Act:6 - Num:1 [fit: 0.009, exp: 66.00, pred: 156.883]\n", - "Cond:1#00###1 - Act:2 - Num:2 [fit: 0.021, exp: 884.00, pred: 145.775]\n", - "Cond:#0###000 - Act:2 - Num:1 [fit: 0.000, exp: 314.00, pred: 145.961]\n", - "Cond:10001#00 - Act:6 - Num:1 [fit: 0.000, exp: 60.00, pred: 134.800]\n", - "Cond:1#0#1100 - Act:6 - Num:1 [fit: 0.167, exp: 191.00, pred: 144.507]\n", - "Cond:#10####0 - Act:1 - Num:1 [fit: 0.064, exp: 124.00, pred: 149.402]\n", - "Cond:0#0#11#0 - Act:3 - Num:1 [fit: 0.054, exp: 58.00, pred: 121.352]\n", - "Cond:010#1#00 - Act:5 - Num:1 [fit: 0.005, exp: 45.00, pred: 126.357]\n", - "Cond:#10##100 - Act:6 - Num:1 [fit: 0.188, exp: 211.00, pred: 143.687]\n", - "Cond:#1#11### - Act:6 - Num:1 [fit: 0.001, exp: 1090.00, pred: 167.675]\n", - "Cond:0#1001## - Act:6 - Num:1 [fit: 0.152, exp: 346.00, pred: 144.433]\n", - "Cond:#00#0##0 - Act:2 - Num:3 [fit: 0.030, exp: 331.00, pred: 147.927]\n", - "Cond:#00010## - Act:4 - Num:1 [fit: 0.000, exp: 105.00, pred: 128.043]\n", - "Cond:0##00### - Act:3 - Num:1 [fit: 0.000, exp: 417.00, pred: 140.090]\n", - "Cond:##000011 - Act:2 - Num:1 [fit: 0.000, exp: 127.00, pred: 171.751]\n", - "Cond:0#01#111 - Act:0 - Num:1 [fit: 0.000, exp: 1214.00, pred: 147.911]\n", - "Cond:###11#10 - Act:2 - Num:2 [fit: 0.005, exp: 89.00, pred: 158.222]\n", - "Cond:01001010 - Act:5 - Num:3 [fit: 0.049, exp: 30.00, pred: 139.815]\n", - "Cond:1#11#010 - Act:1 - Num:1 [fit: 0.004, exp: 65.00, pred: 148.904]\n", - "Cond:1#101101 - Act:1 - Num:1 [fit: 0.073, exp: 5.00, pred: 132.906]\n", - "Cond:101##100 - Act:2 - Num:1 [fit: 0.125, exp: 19.00, pred: 141.180]\n", - "Cond:1#11#1## - Act:2 - Num:1 [fit: 0.236, exp: 106.00, pred: 149.866]\n", - "Cond:101#0#00 - Act:6 - Num:2 [fit: 0.001, exp: 62.00, pred: 153.728]\n", - "Cond:0#11#10# - Act:6 - Num:2 [fit: 0.002, exp: 59.00, pred: 123.461]\n", - "Cond:010#1### - Act:6 - Num:1 [fit: 0.029, exp: 477.00, pred: 157.228]\n", - "Cond:0#0#0#10 - Act:6 - Num:1 [fit: 0.026, exp: 22.00, pred: 136.795]\n", - "Cond:#110110# - Act:2 - Num:3 [fit: 0.408, exp: 30.00, pred: 134.008]\n", - "Cond:00#01000 - Act:3 - Num:2 [fit: 0.001, exp: 113.00, pred: 139.155]\n", - "Cond:1###0##1 - Act:0 - Num:2 [fit: 0.549, exp: 2484.00, pred: 148.672]\n", - "Cond:#0####00 - Act:7 - Num:1 [fit: 0.000, exp: 470.00, pred: 148.165]\n", - "Cond:001#00#0 - Act:4 - Num:2 [fit: 0.062, exp: 95.00, pred: 145.710]\n", - "Cond:10#100#0 - Act:6 - Num:3 [fit: 0.090, exp: 66.00, pred: 131.258]\n", - "Cond:0#11##01 - Act:7 - Num:3 [fit: 0.007, exp: 275.00, pred: 139.854]\n", - "Cond:01111##0 - Act:0 - Num:2 [fit: 0.000, exp: 271.00, pred: 182.022]\n", - "Cond:00100101 - Act:2 - Num:1 [fit: 0.008, exp: 72.00, pred: 136.253]\n", - "Cond:1##10### - Act:3 - Num:2 [fit: 0.127, exp: 758.00, pred: 153.261]\n", - "Cond:000#0010 - Act:4 - Num:3 [fit: 0.003, exp: 29.00, pred: 140.880]\n", - "Cond:#0###010 - Act:2 - Num:2 [fit: 0.075, exp: 379.00, pred: 147.720]\n", - "Cond:00###01# - Act:0 - Num:3 [fit: 0.256, exp: 302.00, pred: 153.985]\n", - "Cond:0#1001#1 - Act:1 - Num:1 [fit: 0.019, exp: 166.00, pred: 146.632]\n", - "Cond:#0110111 - Act:1 - Num:1 [fit: 0.003, exp: 72.00, pred: 127.564]\n", - "Cond:#11#00#0 - Act:6 - Num:3 [fit: 0.041, exp: 60.00, pred: 143.154]\n", - "Cond:#1#01101 - Act:5 - Num:3 [fit: 0.052, exp: 10.00, pred: 127.234]\n", - "Cond:001##11# - Act:0 - Num:3 [fit: 0.000, exp: 304.00, pred: 141.520]\n", - "Cond:0##101## - Act:0 - Num:1 [fit: 0.000, exp: 709.00, pred: 136.837]\n", - "Cond:11#0#11# - Act:1 - Num:3 [fit: 0.373, exp: 214.00, pred: 183.288]\n", - "Cond:11#0#1#1 - Act:3 - Num:1 [fit: 0.427, exp: 176.00, pred: 140.034]\n" - ] - } - ], - "source": [ - "for rule in explore_population:\n", - " print(rule)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 100, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "142\n" - ] - } - ], - "source": [ - "print(len(explore_population))" - ] - }, - { - "cell_type": "code", - "execution_count": 101, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "##001##0 => 3 [0.06193]\n", - "#1###### => 4 [0.09629]\n", - "#0###111 => 7 [0.09041]\n", - "11000111 => 6 [0.08771]\n", - "#10010#1 => 5 [0.46941]\n", - "101#000# => 7 [0.14190]\n", - "1#1101#0 => 0 [0.13834]\n", - "111##10# => 6 [0.19484]\n", - "00##0010 => 5 [0.23633]\n", - "10000#01 => 0 [0.05420]\n", - "11##1### => 0 [0.22465]\n", - "####0#1# => 7 [0.23132]\n", - "10111100 => 0 [0.13786]\n", - "10000101 => 6 [0.43257]\n", - "01###0## => 7 [0.20321]\n", - "101##0#0 => 3 [0.09789]\n", - "##0#01## => 7 [0.15950]\n", - "01#1###1 => 5 [0.28100]\n", - "###01101 => 7 [0.06617]\n", - "111#0100 => 7 [0.34929]\n", - "1101##0# => 6 [0.30947]\n", - "1#0#1100 => 6 [0.16675]\n", - "#10####0 => 1 [0.06425]\n", - "0#0#11#0 => 3 [0.05360]\n", - "#10##100 => 6 [0.18843]\n", - "0#1001## => 6 [0.15214]\n", - "1#101101 => 1 [0.07331]\n", - "101##100 => 2 [0.12535]\n", - "1#11#1## => 2 [0.23578]\n", - "#110110# => 2 [0.40761]\n", - "1###0##1 => 0 [0.54873]\n", - "001#00#0 => 4 [0.06171]\n", - "10#100#0 => 6 [0.09003]\n", - "1##10### => 3 [0.12674]\n", - "#0###010 => 2 [0.07482]\n", - "00###01# => 0 [0.25558]\n", - "#1#01101 => 5 [0.05166]\n", - "11#0#11# => 1 [0.37327]\n", - "11#0#1#1 => 3 [0.42743]\n" - ] - } - ], - "source": [ - "for rule in explore_population:\n", - " if rule.fitness >= .05 and rule.experience >= 1:\n", - " print(rule.condition, '=>', rule.action, ' [%.5f]' % rule.fitness)" - ] - }, - { - "cell_type": "code", - "execution_count": 102, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 102, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "df = pd.DataFrame(metric[\"steps_in_trial\"] for metric in explore_metrics)\n", - "df['trial'] = df.index * cfg.metrics_trial_frequency\n", - "df.set_index('trial', inplace=True)\n", - "\n", - "ax = df.plot()\n", - "ax.set_xlabel(\"trial\") \n", - "ax.set_ylabel(\"steps_in_trial\")\n", - "ax.legend([\"steps my XCS\"])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Conclusions\n", - "After code review of both classifiers and Algorithmic Description of XCS I found that implementation of Generate Match Set of Hosford42 creates only one classifier if match_set lenght is lower than theta_mna. \n", - "
\n", - "Meanwhile in my implementation and Algorithmic Description of XCS the Generate Match Set creates multiple covering classifiers until match set is equal to theta_mna." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_compared_Maze5.ipynb b/XCS_Experiments/XCS_compared_Maze5.ipynb index 81a8466..6a5d761 100644 --- a/XCS_Experiments/XCS_compared_Maze5.ipynb +++ b/XCS_Experiments/XCS_compared_Maze5.ipynb @@ -30,16 +30,6 @@ "metadata": {}, "outputs": [], "source": [ - "import random\n", - "\n", - "from xcs.scenarios import Scenario\n", - "from xcs.bitstrings import BitString\n", - "\n", - "# environment setup\n", - "import gym\n", - "# noinspection PyUnresolvedReferences\n", - "import gym_maze\n", - "\n", "from utils.xcs_utils import *" ] }, @@ -47,14 +37,31 @@ "cell_type": "code", "execution_count": 4, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" + ] + } + ], "source": [ - "exploration_cycles = 4000\n", - "exploitation_cycles = 1000\n", - "\n", + "exploration_cycles = 1000\n", + "exploitation_cycles = 500\n", "input_size = 8\n", "logging.root.setLevel(logging.INFO)\n", - "scenario = MazeScenario(input_size)" + "scenario = MazeScenario(input_size)\n", + "scenario.maze.reset()\n", + "scenario.maze.render()" ] }, { @@ -65,26 +72,16 @@ "source": [ "import numpy as np\n", "algorithm = XCSAlgorithm()\n", - "algorithm.max_population_size = 1600 # N\n", - "algorithm.learning_rate = .2 # beta\n", - "algorithm.accuracy_coefficient = .1 # alpha\n", + "algorithm.max_population_size = 1600\n", + "algorithm.learning_rate = .1\n", "algorithm.error_threshold = .01 # epsilon_0\n", - "algorithm.accuracy_power = 5 # nu\n", - "algorithm.discount_factor = .71 # gamma\n", - "algorithm.ga_threshold = 35 # theta_GA\n", - "algorithm.crossover_probability = .8 # chi\n", - "algorithm.mutation_probability = .01 # mu\n", - "algorithm.deletion_threshold = 20 # theta_del\n", - "algorithm.fitness_threshold = .1 # delta\n", - "algorithm.subsumption_threshold = 20 # theta_sub\n", - "algorithm.wildcard_probability = .3 # P_#\n", - "algorithm.initial_prediction = 10 # p_I\n", - "algorithm.initial_error = .00001 # epsilon_I\n", - "algorithm.initial_fitness = 10 # F_I\n", - "algorithm.exploration_probability = .5 # p_exp\n", - "algorithm.minimum_actions = 8 # theta_mna\n", - "algorithm.do_ga_subsumption = False # doGASubsumption\n", - "algorithm.do_action_set_subsumption = False # doActionSetSubsumption" + "algorithm.ga_threshold = 25\n", + "algorithm.crossover_probability = 1\n", + "algorithm.mutation_probability = 0.01\n", + "algorithm.initial_prediction = 0.000001 # p_I\n", + "algorithm.initial_error = 0.000001 # epsilon_I\n", + "algorithm.initial_fitness = 0.000001 # F_I\n", + "algorithm.wildcard_probability = 0.0" ] }, { @@ -96,8 +93,7 @@ "name": "stdout", "output_type": "stream", "text": [ - "Executing 0 experiment\n", - "Executing 1 experiment\n" + "Executing 0 experiment\n" ] } ], @@ -105,7 +101,7 @@ "other_metrics = other_avg_experiment(\n", " maze=scenario,\n", " algorithm=algorithm,\n", - " number_of_tests=2,\n", + " number_of_tests=1,\n", " explore_trials=exploration_cycles,\n", " exploit_trials=exploitation_cycles\n", " )\n" @@ -151,303 +147,93 @@ " \n", " \n", " 0\n", - " 37.5\n", - " 36.0\n", - " 37.0\n", + " 50\n", + " 48\n", + " 48\n", " \n", " \n", " 100\n", - " 36.5\n", - " 436.0\n", - " 1600.0\n", + " 11\n", + " 356\n", + " 1600\n", " \n", " \n", " 200\n", - " 23.0\n", - " 537.5\n", - " 1600.0\n", + " 50\n", + " 406\n", + " 1600\n", " \n", " \n", " 300\n", - " 26.5\n", - " 534.0\n", - " 1600.0\n", + " 21\n", + " 463\n", + " 1600\n", " \n", " \n", " 400\n", - " 12.0\n", - " 541.5\n", - " 1600.0\n", + " 50\n", + " 459\n", + " 1600\n", " \n", " \n", " 500\n", - " 5.5\n", - " 525.5\n", - " 1600.0\n", + " 50\n", + " 430\n", + " 1600\n", " \n", " \n", " 600\n", - " 50.0\n", - " 487.0\n", - " 1600.0\n", + " 48\n", + " 487\n", + " 1600\n", " \n", " \n", " 700\n", - " 18.5\n", - " 459.5\n", - " 1600.0\n", + " 50\n", + " 495\n", + " 1600\n", " \n", " \n", " 800\n", - " 28.0\n", - " 428.5\n", - " 1600.0\n", + " 50\n", + " 501\n", + " 1600\n", " \n", " \n", " 900\n", - " 4.0\n", - " 413.0\n", - " 1600.0\n", + " 50\n", + " 472\n", + " 1600\n", " \n", " \n", " 1000\n", - " 5.5\n", - " 397.5\n", - " 1600.0\n", + " 50\n", + " 478\n", + " 1600\n", " \n", " \n", " 1100\n", - " 27.0\n", - " 370.5\n", - " 1600.0\n", + " 50\n", + " 548\n", + " 1600\n", " \n", " \n", " 1200\n", - " 28.0\n", - " 346.0\n", - " 1600.0\n", + " 5\n", + " 552\n", + " 1600\n", " \n", " \n", " 1300\n", - " 23.0\n", - " 329.5\n", - " 1600.0\n", + " 3\n", + " 538\n", + " 1600\n", " \n", " \n", " 1400\n", - " 31.5\n", - " 310.0\n", - " 1600.0\n", - " \n", - " \n", - " 1500\n", - " 15.0\n", - " 283.5\n", - " 1600.0\n", - " \n", - " \n", - " 1600\n", - " 28.0\n", - " 273.5\n", - " 1600.0\n", - " \n", - " \n", - " 1700\n", - " 18.0\n", - " 264.0\n", - " 1600.0\n", - " \n", - " \n", - " 1800\n", - " 27.0\n", - " 260.0\n", - " 1600.0\n", - " \n", - " \n", - " 1900\n", - " 27.5\n", - " 263.5\n", - " 1600.0\n", - " \n", - " \n", - " 2000\n", - " 50.0\n", - " 268.0\n", - " 1600.0\n", - " \n", - " \n", - " 2100\n", - " 28.5\n", - " 257.0\n", - " 1600.0\n", - " \n", - " \n", - " 2200\n", - " 5.5\n", - " 261.5\n", - " 1600.0\n", - " \n", - " \n", - " 2300\n", - " 10.5\n", - " 257.5\n", - " 1600.0\n", - " \n", - " \n", - " 2400\n", - " 34.5\n", - " 253.5\n", - " 1600.0\n", - " \n", - " \n", - " 2500\n", - " 30.5\n", - " 247.0\n", - " 1600.0\n", - " \n", - " \n", - " 2600\n", - " 8.5\n", - " 248.5\n", - " 1600.0\n", - " \n", - " \n", - " 2700\n", - " 4.5\n", - " 246.5\n", - " 1600.0\n", - " \n", - " \n", - " 2800\n", - " 29.0\n", - " 238.0\n", - " 1600.0\n", - " \n", - " \n", - " 2900\n", - " 30.5\n", - " 237.0\n", - " 1600.0\n", - " \n", - " \n", - " 3000\n", - " 45.5\n", - " 235.5\n", - " 1600.0\n", - " \n", - " \n", - " 3100\n", - " 26.5\n", - " 234.0\n", - " 1600.0\n", - " \n", - " \n", - " 3200\n", - " 28.0\n", - " 242.5\n", - " 1600.0\n", - " \n", - " \n", - " 3300\n", - " 10.5\n", - " 244.5\n", - " 1600.0\n", - " \n", - " \n", - " 3400\n", - " 27.5\n", - " 243.0\n", - " 1600.0\n", - " \n", - " \n", - " 3500\n", - " 19.0\n", - " 239.0\n", - " 1600.0\n", - " \n", - " \n", - " 3600\n", - " 41.5\n", - " 229.5\n", - " 1600.0\n", - " \n", - " \n", - " 3700\n", - " 10.5\n", - " 241.5\n", - " 1600.0\n", - " \n", - " \n", - " 3800\n", - " 26.0\n", - " 253.5\n", - " 1600.0\n", - " \n", - " \n", - " 3900\n", - " 35.5\n", - " 243.5\n", - " 1600.0\n", - " \n", - " \n", - " 4000\n", - " 29.5\n", - " 238.0\n", - " 1600.0\n", - " \n", - " \n", - " 4100\n", - " 26.5\n", - " 231.0\n", - " 1600.0\n", - " \n", - " \n", - " 4200\n", - " 26.5\n", - " 235.5\n", - " 1600.0\n", - " \n", - " \n", - " 4300\n", - " 50.0\n", - " 229.0\n", - " 1600.0\n", - " \n", - " \n", - " 4400\n", - " 50.0\n", - " 219.5\n", - " 1600.0\n", - " \n", - " \n", - " 4500\n", - " 50.0\n", - " 221.5\n", - " 1600.0\n", - " \n", - " \n", - " 4600\n", - " 50.0\n", - " 214.5\n", - " 1600.0\n", - " \n", - " \n", - " 4700\n", - " 50.0\n", - " 215.5\n", - " 1600.0\n", - " \n", - " \n", - " 4800\n", - " 50.0\n", - " 203.0\n", - " 1600.0\n", - " \n", - " \n", - " 4900\n", - " 50.0\n", - " 201.0\n", - " 1600.0\n", + " 21\n", + " 504\n", + " 1600\n", " \n", " \n", "\n", @@ -456,56 +242,21 @@ "text/plain": [ " steps_in_trial population numerosity\n", "trial \n", - "0 37.5 36.0 37.0\n", - "100 36.5 436.0 1600.0\n", - "200 23.0 537.5 1600.0\n", - "300 26.5 534.0 1600.0\n", - "400 12.0 541.5 1600.0\n", - "500 5.5 525.5 1600.0\n", - "600 50.0 487.0 1600.0\n", - "700 18.5 459.5 1600.0\n", - "800 28.0 428.5 1600.0\n", - "900 4.0 413.0 1600.0\n", - "1000 5.5 397.5 1600.0\n", - "1100 27.0 370.5 1600.0\n", - "1200 28.0 346.0 1600.0\n", - "1300 23.0 329.5 1600.0\n", - "1400 31.5 310.0 1600.0\n", - "1500 15.0 283.5 1600.0\n", - "1600 28.0 273.5 1600.0\n", - "1700 18.0 264.0 1600.0\n", - "1800 27.0 260.0 1600.0\n", - "1900 27.5 263.5 1600.0\n", - "2000 50.0 268.0 1600.0\n", - "2100 28.5 257.0 1600.0\n", - "2200 5.5 261.5 1600.0\n", - "2300 10.5 257.5 1600.0\n", - "2400 34.5 253.5 1600.0\n", - "2500 30.5 247.0 1600.0\n", - "2600 8.5 248.5 1600.0\n", - "2700 4.5 246.5 1600.0\n", - "2800 29.0 238.0 1600.0\n", - "2900 30.5 237.0 1600.0\n", - "3000 45.5 235.5 1600.0\n", - "3100 26.5 234.0 1600.0\n", - "3200 28.0 242.5 1600.0\n", - "3300 10.5 244.5 1600.0\n", - "3400 27.5 243.0 1600.0\n", - "3500 19.0 239.0 1600.0\n", - "3600 41.5 229.5 1600.0\n", - "3700 10.5 241.5 1600.0\n", - "3800 26.0 253.5 1600.0\n", - "3900 35.5 243.5 1600.0\n", - "4000 29.5 238.0 1600.0\n", - "4100 26.5 231.0 1600.0\n", - "4200 26.5 235.5 1600.0\n", - "4300 50.0 229.0 1600.0\n", - "4400 50.0 219.5 1600.0\n", - "4500 50.0 221.5 1600.0\n", - "4600 50.0 214.5 1600.0\n", - "4700 50.0 215.5 1600.0\n", - "4800 50.0 203.0 1600.0\n", - "4900 50.0 201.0 1600.0" + "0 50 48 48\n", + "100 11 356 1600\n", + "200 50 406 1600\n", + "300 21 463 1600\n", + "400 50 459 1600\n", + "500 50 430 1600\n", + "600 48 487 1600\n", + "700 50 495 1600\n", + "800 50 501 1600\n", + "900 50 472 1600\n", + "1000 50 478 1600\n", + "1100 50 548 1600\n", + "1200 5 552 1600\n", + "1300 3 538 1600\n", + "1400 21 504 1600" ] }, "metadata": {}, @@ -524,7 +275,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 8, @@ -533,7 +284,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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uzeVEW+f5Wvfom/X0BivHhlybYmnJauTP6CJfwXQf0OVKb58L+XFBbZu9PpDS6LE040tHWbL6mkfpZRK1eqKIrbvbKNzcIytZ9dzSWM1BXnpGwfv2N9NTamPxppA2p7TDlk/8neje+65h1gslvHXPXToEPfff//M7R/96EfceOONaXv+m266ia9//eszt7/xjW/wd3/3dwA8/vjjbNmyhU2bNtHY2Mhtt90GQEtLCxdddBGbN29m06ZN3HDDDWmLR6ml+B9/dSafuWgdr3UM8Z9//CLn/ten+MZjr3GwO7rs556cjvPv+49y0Ub3lnhadORvg3vuuYdPfOITFBUVZfR1reT/V3/1V2l5vunpabxe78ztu+66i82bN/Pxj38cEeEHP/gBf/rTn3jllVe48cYbeeyxx2hsbGRqaop7770XSPzBuPXWW7n66qsBePnll9MSm1JLFQn5ue2DG7nl/et5+kAP23e28cM/HuJ//fubnLW6jK1b6vnQaWGKC1NPjy++1U90fMr18/2wgpL/nb96ldeODKX1OU+KlPKVPz/5uJ8fGRnh2muvpb29nenpab70pS/R1dXFkSNHuPjii6msrKSpqYknn3ySr3zlK4yPj7N27Vp++MMfUlJSwpo1a9i6dStNTU0A3H///axbt46f//zn3HnnnXi9XoLBIE8//fQ7XtcYw2c/+1kef/xxRIQvfvGLbN26lTvuuIN9+/axefNmtm3bRllZGUeOHOHyyy/n9ddf55prruHuu+8GmDem66+/nieffJIbb7yRj33sYzOvW1payje+8Y2ZdxNf+9rXCIVC3HTTTXzhC1+gsbERgLy8PD7zmc8A0NHRQV1d3cxznHrqqWn4l1Fq+fK8Hi5prOaSxmp6ouP88k/tbN/Zxmd/8RJ3/upVrjotwrVn13NmQ2jRo/imlh7yXF7iadFpn2V44okniEQi7N27l1deeYXLL7+cm266iUgkQlNTE01NTRw9epS77rqL3/3ud7z44ots2bKFb3/72zPPUVpaygsvvMCNN97ILbfcAiSS6m9+8xv27t3LI4888q7Xfeihh9izZw979+7ld7/7HbfffjsdHR1885vf5IILLmDPnj3ceuutAOzZs4ft27fz8ssvs337dtra2haMyefz8cwzz7wj8Vuuu+46+vv7GRoa4pOf/CQAr7zyCmedddacP6Nbb72VSy65hCuuuILvfOc7DAwMLPXHrZRtqgKF3HDhWn73X97HL/72XD50WphfvXSE//Dd/8Nl33ma//X0GxwdXvgEsB0t3WxZU0bA594ST8uKGfnPN0K3y6mnnsptt93G5z73Oa666iouuOCCd33Nc889x2uvvcb5558PwMTEBOeee+7M56+77rqZSythn3/++Xz605/m2muv5aMf/ei7nvOZZ57huuuuw+v1Ul1dzfve9z527txJaem7e4hceumlBIOJ4+NOOukk3nrrLQYGBuaNaevWrcf9ntvb2+ns7EREGB4epqSkZN6f0V//9V/zwQ9+kCeeeIKHH36Y73//++zdu5fCwsJ5H6eUE0SEs1aXc9bqcr785yfz2EtH+NnONr7x6338wxPNvH9TNVvPrufCDVV4jzmZq2NwlObOKJ+/otGh6FOzYpK/EzZs2MDu3bv59a9/zec//3k+8IEP8OUvf/kdX2OM4bLLLuOnP/3pnM8x++2kdf173/sezz//PI899hibN29mz549VFRUvOM5F2t2kvV6vUxNTS0YU3Hx8Xc+3nzzzXz1q19l37593HnnnXzrW9/i5JNPZvfu3Zx++ulzPiYSiXD99ddz/fXXc8opp8z7TkEptygpzGPr2Q1sPbuBA11Rtu9s46E/HeaJVzupKfXxF2fVce2WehoqEmt7VomnW7t4HkunfZbhyJEjFBUV8YlPfILbbruNF198EYBAIEA0mqgceO9738sf//hHDh48CEAsFmP//v0zz7F9+/aZS2v0/frrr/Oe97yHr33ta1RWVtLW1vaO173wwgvZvn0709PT9PT08PTTT3POOee843Xns1BMx/P444/T3d3Npz71Kb70pS/xy1/+ktdee43bb7+dv//7v595jng8PjON9MQTTzA5OQlAZ2cnvb291NbWLvhaSrnJ+uoAX7zqJJ77/KV89+Nn0hgO8D93HOTCbzVx3b3P8W9/OsyTr3URCfrYUD3/u2G30JH/Mrz88svcfvvteDwe8vPz+e53vwvADTfcwBVXXEE4HKapqYkf/ehHXHfddYyPJ+YM77rrLjZs2ADA+Pg473nPe4jH4zMj8dtvv50DBw5gjOHSSy9914j6mmuu4dlnn+X0009HRLj77rupqamhoqKCvLw8Tj/9dD796U9TVlY2Z9xVVVXzxjSXsbExbrnlFh588EFE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\n", "text/plain": [ "
" ] @@ -561,7 +312,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 9, @@ -570,7 +321,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -595,41 +346,41 @@ "outputs": [], "source": [ "from lcs.agents.xcs import Configuration\n", + "from utils.xcs_utils import *\n", + " \n", "\n", - "cfg = Configuration(\n", - " number_of_actions=algorithm.minimum_actions,\n", - " metrics_trial_frequency=100,\n", - " covering_wildcard_chance=1-algorithm.wildcard_probability,\n", - " max_population=algorithm.max_population_size,\n", - " learning_rate=algorithm.learning_rate,\n", - " alpha=algorithm.accuracy_coefficient,\n", - " epsilon_0=algorithm.error_threshold,\n", - " v=algorithm.accuracy_power,\n", - " gamma=algorithm.discount_factor,\n", - " ga_threshold=algorithm.ga_threshold,\n", - " chi=algorithm.crossover_probability,\n", - " mutation_chance=algorithm.mutation_probability,\n", - " deletion_threshold=algorithm.deletion_threshold,\n", - " delta=algorithm.fitness_threshold,\n", - " subsumption_threshold=algorithm.subsumption_threshold,\n", - " initial_prediction=algorithm.initial_prediction,\n", - " initial_error=algorithm.initial_error,\n", - " initial_fitness=algorithm.initial_fitness,\n", - " epsilon=algorithm.exploration_probability,\n", - " user_metrics_collector_fcn=xcs_metrics)\n", - "\n" + "cfg = Configuration(number_of_actions=8,\n", + " max_population=1600,\n", + " covering_wildcard_chance = 1,\n", + " ga_threshold = 25,\n", + " metrics_trial_frequency=100,\n", + " mutation_chance=0.03,\n", + " chi=1, # crossover\n", + " initial_prediction = 0.000001, # p_I\n", + " initial_error = 0.000001, # epsilon_I\n", + " initial_fitness = 0.000001, # F_I\n", + " user_metrics_collector_fcn=xcs_metrics)" ] }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "scrolled": true + }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1631.9760602461931, 184.63689514930772, 908.0574351818735, 63.345367277620994, 221.79639072107003, 2039.5832761574534, 1707.1241019799998, 5412.924779436832], 'perf_time': 0.015201000000047316, 'population': 70, 'numerosity': 70}\n" + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [4.853293400638485e-09, 1.5513008505456238e-08, 4.853293400638485e-09, 1.0666607281520895e-08, 1.1330331416714414e-08, 2.25638247058798e-08, 2.3519964529236892e-08, 1.4966103277479953e-08], 'perf_time': 0.014919000000006122, 'population': 80, 'numerosity': 80}\n" ] }, { @@ -643,68 +394,38 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [5.015948264654275e+140, 1.6686500256505748e+140, 9.092811131373057e+140, 4.014581644828709e+140, 4.5254441889353626e+140, 1.1612715754276093e+141, 9.793244228443746e+139, 2.5211991980682765e+140], 'perf_time': 0.048124499999971704, 'population': 225, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [8.070208548539359e+292, 8.981460483721388e+292, 5.328999517594904e+292, 1.7110414761797805e+292, 1.4958822902614845e+292, 3.734516224047658e+292, 2.596692135882429e+291, 4.266999573737909e+292], 'perf_time': 0.06813109999995959, 'population': 276, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 23, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.027551200000061726, 'population': 277, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.12411320000001069, 'population': 265, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 22, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.020316600000001017, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 41, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.04493270000000393, 'population': 262, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 42, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.04879190000008293, 'population': 257, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 35, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03232130000003508, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.06286699999998291, 'population': 256, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03519450000010238, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03477209999994102, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.04627090000008138, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.039521599999943646, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.036109500000065964, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.036598600000047554, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.041861000000039894, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03604039999993347, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03585259999999835, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.037798899999984314, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [3156.346990540088, 14.200000000000001, 2276.367805801234, 315.47387122232476, 241.0406372460797, 236.92856309367804, 909.5716423422446, 12402.832328982819], 'perf_time': 0.013974099999927603, 'population': 74, 'numerosity': 74}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 1 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [1.6088481061371442e+135, 4.7136464506352835e+135, 5.907279459274385e+135, 3.968936163131029e+135, 1.4570893764096138e+134, 5.228321874734649e+135, 1.642489206561433e+135, 2.5069012036016237e+135], 'perf_time': 0.07001800000000458, 'population': 237, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [7.383880024489049e+278, 1.4196533793830406e+278, 9.299649818509565e+277, 2.6392763909301836e+278, 3.057328983312997e+279, 6.883303424007693e+278, 1.267962995478898e+279, 6.387433934096784e+278], 'perf_time': 0.06864460000008421, 'population': 280, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 26, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03018140000006042, 'population': 281, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 9, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.016185899999982212, 'population': 263, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.05748859999994238, 'population': 247, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 5, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.009249899999986155, 'population': 250, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.06831810000005589, 'population': 268, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 40, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.058470199999987926, 'population': 265, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.05833519999998771, 'population': 252, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.05235210000000734, 'population': 259, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.035571900000036294, 'population': 259, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.04461739999999281, 'population': 259, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.035560300000042844, 'population': 259, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.037387299999977586, 'population': 259, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.036766599999964455, 'population': 259, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03404160000002321, 'population': 259, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03349209999998948, 'population': 259, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.0379449999999224, 'population': 259, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03490980000003674, 'population': 259, 'numerosity': 1600}\n" + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 35, 'reward': [20.72817337478072, 150.34470800498298, 17.841370537799342, 21.211367711060426, 24.757264794946533, 19.664738591081985, 30.485395490220334, 24.808342688869462], 'perf_time': 0.06060149999998998, 'population': 329, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 36, 'reward': [57.54307373548139, 43.10794007818909, 148.96376212111437, 31.749378240500242, 50.72326620400441, 42.606363769847434, 49.943004843631385, 35.90668008392791], 'perf_time': 0.08095700000001216, 'population': 361, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 19, 'reward': [65.69862693774058, 169.062476389856, 54.914263901857694, 59.23680565948616, 73.9389692709207, 75.2763929881259, 67.51153007914898, 74.68218691446816], 'perf_time': 0.0511620999999991, 'population': 384, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 14, 'reward': [184.88413944823566, 71.64299250573869, 161.40297093554295, 54.95558345180356, 64.82453659762308, 70.19710268302498, 55.585954549073435, 63.49967970484722], 'perf_time': 0.03065639999999803, 'population': 397, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [112.32783463975882, 54.62594605362509, 95.23037268533479, 82.2007233574991, 67.00459118440003, 74.85674689311104, 69.54091730129956, 67.78104852098149], 'perf_time': 0.110060500000003, 'population': 409, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [141.3800628472801, 160.31288008695194, 103.64745294253063, 94.48305191744603, 85.17235888133806, 71.690145497079, 102.70176751621187, 69.15701159172221], 'perf_time': 0.11709110000001033, 'population': 418, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 19, 'reward': [96.30882264454742, 140.64046843423543, 205.45335304046233, 114.29463132699274, 85.60995301671983, 81.21171047716378, 63.849258277631215, 103.72035250395854], 'perf_time': 0.04401070000000118, 'population': 415, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 6, 'reward': [158.06753890782258, 40.88731352597092, 52.30829706994995, 40.53246472615053, 42.70689636783641, 54.10170911776683, 41.25323353824324, 38.17989915973899], 'perf_time': 0.013662899999985711, 'population': 408, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 38, 'reward': [46.063869274041984, 36.958552041707506, 138.06561230587332, 37.644000727333044, 37.77768317111649, 49.66088298933521, 39.68959259593951, 36.24199566945813], 'perf_time': 0.10360219999998321, 'population': 400, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [46.43657369975104, 42.95672701923821, 14.003551747776038, 14.003551747776038, 38.294279550416356, 0, 43.36722020471757, 68.89584633487222], 'perf_time': 0.04701449999998886, 'population': 399, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [138.6474988625682, 59.615932636793964, 76.91973299838686, 86.25510974476694, 75.43735989735508, 68.64661051540335, 89.52060883903539, 73.69981570965375], 'perf_time': 0.04701449999998886, 'population': 399, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [138.64749886257488, 59.615932636793964, 132.49920370722705, 86.25510974476694, 75.43735989735508, 68.64661051540335, 89.52060883903539, 73.69981570965375], 'perf_time': 0.046287799999987556, 'population': 402, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [138.64749886257488, 59.615932636793964, 112.76022215037044, 86.25510974476694, 75.43735989735508, 68.64661051540335, 89.52060883903539, 73.69981570965375], 'perf_time': 0.046287799999987556, 'population': 402, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [138.64749886257488, 59.615932636793964, 91.96968631413897, 86.25510974476694, 75.43735989735508, 68.64661051540335, 89.52060883903539, 73.69981570965375], 'perf_time': 0.04602849999997716, 'population': 402, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [138.64749886257488, 59.615932636793964, 91.19673389012252, 86.25510974476694, 75.43735989735508, 68.64661051540335, 89.52060883903539, 73.69981570965375], 'perf_time': 0.04602849999997716, 'population': 402, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [138.64749886257488, 59.615932636793964, 79.171949950431, 86.25510974476694, 75.43735989735508, 68.64661051540335, 89.52060883903539, 73.69981570965375], 'perf_time': 0.04738980000001902, 'population': 402, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [138.64749886257488, 59.615932636793964, 120.75807051487772, 86.25510974476694, 75.43735989735508, 68.64661051540335, 89.52060883903539, 73.69981570965375], 'perf_time': 0.04738980000001902, 'population': 402, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [138.64749886257488, 59.615932636793964, 77.4303309496462, 86.25510974476694, 75.43735989735508, 68.64661051540335, 89.52060883903539, 73.69981570965375], 'perf_time': 0.045242999999999256, 'population': 402, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [138.64749886257488, 59.615932636793964, 105.32423005298685, 86.25510974476694, 75.43735989735508, 68.64661051540335, 89.52060883903539, 73.69981570965375], 'perf_time': 0.045242999999999256, 'population': 402, 'numerosity': 1600}\n" ] } ], "source": [ + "from lcs.agents.xcs import XCS\n", + "\n", + "\n", + "agent = XCS(cfg)\n", "my_metrics = avg_experiment(scenario,\n", " cfg,\n", - " number_of_tests=2,\n", + " number_of_tests=1,\n", " explore_trials=exploration_cycles,\n", - " exploit_metrics=exploitation_cycles,\n", - " )\n" + " exploit_metrics=exploitation_cycles)\n" ] }, { @@ -749,353 +470,108 @@ " \n", " \n", " 0\n", - " 50.0\n", - " 0.014588\n", - " 72.0\n", - " 72.0\n", + " 50\n", + " 0.014919\n", + " 80\n", + " 80\n", " \n", " \n", " 100\n", - " 50.0\n", - " 0.043244\n", - " 173.5\n", - " 1600.0\n", + " 35\n", + " 0.060601\n", + " 329\n", + " 1600\n", " \n", " \n", " 200\n", - " 50.0\n", - " 0.048492\n", - " 196.5\n", - " 1600.0\n", + " 36\n", + " 0.080957\n", + " 361\n", + " 1600\n", " \n", " \n", " 300\n", - " 32.0\n", - " 0.043457\n", - " 218.0\n", - " 1600.0\n", + " 19\n", + " 0.051162\n", + " 384\n", + " 1600\n", " \n", " \n", " 400\n", - " 50.0\n", - " 0.059071\n", - " 231.0\n", - " 1600.0\n", + " 14\n", + " 0.030656\n", + " 397\n", + " 1600\n", " \n", " \n", " 500\n", - " 50.0\n", - " 0.057391\n", - " 240.5\n", - " 1600.0\n", + " 50\n", + " 0.110061\n", + " 409\n", + " 1600\n", " \n", " \n", " 600\n", - " 24.5\n", - " 0.032069\n", - " 257.5\n", - " 1600.0\n", + " 50\n", + " 0.117091\n", + " 418\n", + " 1600\n", " \n", " \n", " 700\n", - " 50.0\n", - " 0.068175\n", - " 270.5\n", - " 1600.0\n", + " 19\n", + " 0.044011\n", + " 415\n", + " 1600\n", " \n", " \n", " 800\n", - " 50.0\n", - " 0.068388\n", - " 278.0\n", - " 1600.0\n", + " 6\n", + " 0.013663\n", + " 408\n", + " 1600\n", " \n", " \n", " 900\n", - " 30.5\n", - " 0.041533\n", - " 286.0\n", - " 1600.0\n", + " 38\n", + " 0.103602\n", + " 400\n", + " 1600\n", " \n", " \n", " 1000\n", - " 16.5\n", - " 0.024139\n", - " 280.0\n", - " 1600.0\n", + " 50\n", + " 0.047014\n", + " 399\n", + " 1600\n", " \n", " \n", " 1100\n", - " 38.5\n", - " 0.050869\n", - " 281.0\n", - " 1600.0\n", + " 50\n", + " 0.046288\n", + " 402\n", + " 1600\n", " \n", " \n", " 1200\n", - " 24.5\n", - " 0.028866\n", - " 279.0\n", - " 1600.0\n", + " 50\n", + " 0.046028\n", + " 402\n", + " 1600\n", " \n", " \n", " 1300\n", - " 16.5\n", - " 0.022388\n", - " 268.5\n", - " 1600.0\n", + " 50\n", + " 0.047390\n", + " 402\n", + " 1600\n", " \n", " \n", " 1400\n", - " 41.5\n", - " 0.061662\n", - " 264.0\n", - " 1600.0\n", - " \n", - " \n", - " 1500\n", - " 7.0\n", - " 0.012961\n", - " 263.5\n", - " 1600.0\n", - " \n", - " \n", - " 1600\n", - " 29.5\n", - " 0.070150\n", - " 264.0\n", - " 1600.0\n", - " \n", - " \n", - " 1700\n", - " 31.0\n", - " 0.033161\n", - " 265.5\n", - " 1600.0\n", - " \n", - " \n", - " 1800\n", - " 33.0\n", - " 0.038297\n", - " 262.0\n", - " 1600.0\n", - " \n", - " \n", - " 1900\n", - " 40.5\n", - " 0.043452\n", - " 255.0\n", - " 1600.0\n", - " \n", - " \n", - " 2000\n", - " 36.0\n", - " 0.038903\n", - " 249.5\n", - " 1600.0\n", - " \n", - " \n", - " 2100\n", - " 50.0\n", - " 0.057827\n", - " 248.0\n", - " 1600.0\n", - " \n", - " \n", - " 2200\n", - " 30.0\n", - " 0.039046\n", - " 251.5\n", - " 1600.0\n", - " \n", - " \n", - " 2300\n", - " 39.0\n", - " 0.042940\n", - " 260.0\n", - " 1600.0\n", - " \n", - " \n", - " 2400\n", - " 23.0\n", - " 0.027091\n", - " 256.0\n", - " 1600.0\n", - " \n", - " \n", - " 2500\n", - " 37.0\n", - " 0.053047\n", - " 250.0\n", - " 1600.0\n", - " \n", - " \n", - " 2600\n", - " 32.0\n", - " 0.038229\n", - " 248.5\n", - " 1600.0\n", - " \n", - " \n", - " 2700\n", - " 35.5\n", - " 0.042225\n", - " 249.0\n", - " 1600.0\n", - " \n", - " \n", - " 2800\n", - " 46.0\n", - " 0.058555\n", - " 262.5\n", - " 1600.0\n", - " \n", - " \n", - " 2900\n", - " 24.0\n", - " 0.033518\n", - " 258.5\n", - " 1600.0\n", - " \n", - " \n", - " 3000\n", - " 20.0\n", - " 0.032154\n", - " 258.0\n", - " 1600.0\n", - " \n", - " \n", - " 3100\n", - " 28.5\n", - " 0.030484\n", - " 255.5\n", - " 1600.0\n", - " \n", - " \n", - " 3200\n", - " 37.5\n", - " 0.045396\n", - " 267.0\n", - " 1600.0\n", - " \n", - " \n", - " 3300\n", - " 23.5\n", - " 0.032998\n", - " 262.0\n", - " 1600.0\n", - " \n", - " \n", - " 3400\n", - " 9.5\n", - " 0.015328\n", - " 253.5\n", - " 1600.0\n", - " \n", - " \n", - " 3500\n", - " 20.0\n", - " 0.025490\n", - " 254.0\n", - " 1600.0\n", - " \n", - " \n", - " 3600\n", - " 50.0\n", - " 0.060601\n", - " 254.0\n", - " 1600.0\n", - " \n", - " \n", - " 3700\n", - " 22.0\n", - " 0.034700\n", - " 256.5\n", - " 1600.0\n", - " \n", - " \n", - " 3800\n", - " 27.0\n", - " 0.032408\n", - " 259.5\n", - " 1600.0\n", - " \n", - " \n", - " 3900\n", - " 40.5\n", - " 0.061574\n", - " 257.0\n", - " 1600.0\n", - " \n", - " \n", - " 4000\n", - " 50.0\n", - " 0.043773\n", - " 255.5\n", - " 1600.0\n", - " \n", - " \n", - " 4100\n", - " 50.0\n", - " 0.035172\n", - " 255.5\n", - " 1600.0\n", - " \n", - " \n", - " 4200\n", - " 50.0\n", - " 0.045444\n", - " 255.5\n", - " 1600.0\n", - " \n", - " \n", - " 4300\n", - " 50.0\n", - " 0.037541\n", - " 255.5\n", - " 1600.0\n", - " \n", - " \n", - " 4400\n", - " 50.0\n", - " 0.036748\n", - " 255.5\n", - " 1600.0\n", - " \n", - " \n", - " 4500\n", - " 50.0\n", - " 0.036683\n", - " 255.5\n", - " 1600.0\n", - " \n", - " \n", - " 4600\n", - " 50.0\n", - " 0.037951\n", - " 255.5\n", - " 1600.0\n", - " \n", - " \n", - " 4700\n", - " 50.0\n", - " 0.034766\n", - " 255.5\n", - " 1600.0\n", - " \n", - " \n", - " 4800\n", - " 50.0\n", - " 0.036899\n", - " 255.5\n", - " 1600.0\n", - " \n", - " \n", - " 4900\n", - " 50.0\n", - " 0.036354\n", - " 255.5\n", - " 1600.0\n", + " 50\n", + " 0.045243\n", + " 402\n", + " 1600\n", " \n", " \n", "\n", @@ -1104,56 +580,21 @@ "text/plain": [ " steps_in_trial perf_time population numerosity\n", "trial \n", - "0 50.0 0.014588 72.0 72.0\n", - "100 50.0 0.043244 173.5 1600.0\n", - "200 50.0 0.048492 196.5 1600.0\n", - "300 32.0 0.043457 218.0 1600.0\n", - "400 50.0 0.059071 231.0 1600.0\n", - "500 50.0 0.057391 240.5 1600.0\n", - "600 24.5 0.032069 257.5 1600.0\n", - "700 50.0 0.068175 270.5 1600.0\n", - "800 50.0 0.068388 278.0 1600.0\n", - "900 30.5 0.041533 286.0 1600.0\n", - "1000 16.5 0.024139 280.0 1600.0\n", - "1100 38.5 0.050869 281.0 1600.0\n", - "1200 24.5 0.028866 279.0 1600.0\n", - "1300 16.5 0.022388 268.5 1600.0\n", - "1400 41.5 0.061662 264.0 1600.0\n", - "1500 7.0 0.012961 263.5 1600.0\n", - "1600 29.5 0.070150 264.0 1600.0\n", - "1700 31.0 0.033161 265.5 1600.0\n", - "1800 33.0 0.038297 262.0 1600.0\n", - "1900 40.5 0.043452 255.0 1600.0\n", - "2000 36.0 0.038903 249.5 1600.0\n", - "2100 50.0 0.057827 248.0 1600.0\n", - "2200 30.0 0.039046 251.5 1600.0\n", - "2300 39.0 0.042940 260.0 1600.0\n", - "2400 23.0 0.027091 256.0 1600.0\n", - "2500 37.0 0.053047 250.0 1600.0\n", - "2600 32.0 0.038229 248.5 1600.0\n", - "2700 35.5 0.042225 249.0 1600.0\n", - "2800 46.0 0.058555 262.5 1600.0\n", - "2900 24.0 0.033518 258.5 1600.0\n", - "3000 20.0 0.032154 258.0 1600.0\n", - "3100 28.5 0.030484 255.5 1600.0\n", - "3200 37.5 0.045396 267.0 1600.0\n", - "3300 23.5 0.032998 262.0 1600.0\n", - "3400 9.5 0.015328 253.5 1600.0\n", - "3500 20.0 0.025490 254.0 1600.0\n", - "3600 50.0 0.060601 254.0 1600.0\n", - "3700 22.0 0.034700 256.5 1600.0\n", - "3800 27.0 0.032408 259.5 1600.0\n", - "3900 40.5 0.061574 257.0 1600.0\n", - "4000 50.0 0.043773 255.5 1600.0\n", - "4100 50.0 0.035172 255.5 1600.0\n", - "4200 50.0 0.045444 255.5 1600.0\n", - "4300 50.0 0.037541 255.5 1600.0\n", - "4400 50.0 0.036748 255.5 1600.0\n", - "4500 50.0 0.036683 255.5 1600.0\n", - "4600 50.0 0.037951 255.5 1600.0\n", - "4700 50.0 0.034766 255.5 1600.0\n", - "4800 50.0 0.036899 255.5 1600.0\n", - "4900 50.0 0.036354 255.5 1600.0" + "0 50 0.014919 80 80\n", + "100 35 0.060601 329 1600\n", + "200 36 0.080957 361 1600\n", + "300 19 0.051162 384 1600\n", + "400 14 0.030656 397 1600\n", + "500 50 0.110061 409 1600\n", + "600 50 0.117091 418 1600\n", + "700 19 0.044011 415 1600\n", + "800 6 0.013663 408 1600\n", + "900 38 0.103602 400 1600\n", + "1000 50 0.047014 399 1600\n", + "1100 50 0.046288 402 1600\n", + "1200 50 0.046028 402 1600\n", + "1300 50 0.047390 402 1600\n", + "1400 50 0.045243 402 1600" ] }, "metadata": {}, @@ -1172,7 +613,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 13, @@ -1181,7 +622,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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dY+Wcio7aeJPsu9+97tEIhGnw1BpJFbT38ie0yECnbHvnaZgH/k5HuaX6z67Kvk08SeZJn41Gx+9qgERLp7J29QRZkl1MR6PTu2p5Evbqp6xvv6b13mjrSepr7lqfhlf+/AVUz4mHA5z55130trayujoKB//+Mdpa2vjpptuorq6mp07d/L888/zta99jcHBQfx+Pw8//DAlJSUsXryYT3ziE+zcuROA7du3c9lll/GrX/2Kr3/963i9XsrLy3nppZeS+rmUO82vKOQ6fzWP72/lyzcv41RHmJX1pU6HpTKUjvjn4Nlnn2X+/PkcPHiQI0eOcN999zF//nx27tzJzp076ejo4Jvf/Ca///3v2b9/Pxs3buQ73/nOxeeXlZWxZ88evvSlL3HfffcB8I1vfIPnnnuOgwcP8tRTTzn0yZQTtm1ooPVCP3882UkgFNEN1pVtMmLEP93I3C5XXnkl999/P1/5yle49dZbuf7669/29T/96U+88cYbXHfddQAMDQ3x7ne/++LX77rrrovXf/EXfwHAddddx6c//WnuvPNOPvaxj6Xokyg3uOWKOkryX+fvf3+c0ajRhV1lm4xI/E5Zvnw5+/bt43e/+x1f/epXef/73/+2rxtj2LJlC48++uiEzx9bmhm//f3vf5/du3fz29/+lnXr1nHgwAHmzZtn34dQrlGUl8MHr6zjl3tj8/xayqnsolM9c9DW1kZRURH33HMP999/P/v376e0tJTe3l4ArrnmGl5++WXeeustACKRCMePH7/4/F/84hcXr+N/CZw8eZJNmzbxjW98g+rqalpaWlL8qZSTtq1vvHhbT95SdtER/xwcPnyYBx54AI/HQ25uLt/73vd45ZVX+MAHPkB9fT07d+7kJz/5CXfddReDg4MAfPOb32T58uUADA4OsmnTJqLR6MW/Ch544AFOnDiBMYabb76ZtWvXOvb5VOq9a3EVC6oK6R8apbxQ+zEpe4gx7+wK6DYbN240e/fufduxo0ePsnLlSocimrvFixezd+9eqqurp3/wOOn+2dXUdr7ZTrB3kDvftcDpUFSaE5F9xpiN44/riF8pl7np8kl3JFUqKTTxO+T06dNOh6CUylJpvbibDtNUyZaNn1kplVxpm/gLCgro7OzMqkQY78dfUFDgdChKqTSWtlM9jY2NtLa2EgwGnQ4lpeI7cCml1Gyl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\n", "text/plain": [ "
" ] @@ -1198,7 +639,7 @@ "ax = my_metrics['steps_in_trial'].plot()\n", "ax.set_xlabel(\"trial\")\n", "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])" + "ax.legend([\"steps\"])\n" ] }, { @@ -1209,7 +650,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 14, @@ -1218,7 +659,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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+CMzG+7uETMbDmwKyyuAkXGXlwEbUxlfp2tv126BJ64Klkb9/PdSGYaI5LCvfvWrvPPOO/zlL39JdygJ6fHbUBZMSHI38Lq73xJ3aDEwPdyeDiyKK59mZsVmNhoYA6S020Cna28/9f2gu+zUO7Rutoh022OPPcaqVasYOrSduxcZKB01i+OAbwKrzWxlWPYjYA7wsJldDHwAnA3g7mvN7GFgHUFPqpnu3pTKACujMQb17UWf3m06Xa1bBGsehZN+DPsfnsoQREQySo8nC3f/B9DRdIendHDNbGB2yoJqIxKt271xu3YzPPFdGP45OP6qngpFRCQjaAR3O9pdTvXJ70F9DUy9XbefRCTvKFm0ozIaY//49oo1f4B1jwe9n/Ybm7a4RETSRcmijdiOJrbUNrTWLLZtCmoVIybApCvTG5yIpMzkyZPpbnf7PXHrrbdy2GGHcd5553X7NXoq1niadbaNTTXBfDDDB5aAOzxxNTTUhref9HGJyO5aphtJxG233cZTTz3V6drXe/J6PSWzoskArYse9YHVj8AbT8CpP4Nhh6Y5MpEM89QsqFyd3Nfc/wg4Y06HhzuanrxPnz5Mnjx5r6YoB/jd737HlVdeSU1NDfPmzWPixInU1tZyxRVXsHr1ahobG/nP//xPpkyZwoIFC3jyySeJxWLU1tbuNl7illtuYd68eUAwaeBVV13FpZdeyrvvvstZZ53FRRddxNVXX73z/Lavd/311zN37lyeeOIJAC6//HLKy8t3m5322Wef5YYbbqC+vp6DDz6Y+fPn079/f2bNmsXixYspKirii1/8InPnzt2rfxolizZaxliMKIrCn66Bsolw7Mw0RyUiLd5++20efPBB7rrrLs455xweffRRzj///E6vWbNmDStWrCAWi3HIIYdw0003sWLFCq6++mruvfderrrqKgBqa2t58cUXeeGFF7joootYs2YNs2fP5uSTT2bevHlUV1czceJEvvCFLwDw0ksvsWrVqp3JpsXy5cuZP38+r7zyCu7O0UcfzYknnsgdd9zB008/zV//+td2x1fEv97zzz/f5WexefNmbrzxRp577jn69evHTTfdxC233MLll1/OY489xhtvvIGZUV1dndBn2xklizaCZOGM/OePoDEW3H4qSPkktyLZp5MaQCrt6fTk0PUU5S3OPfdcAE444QRqamqorq7m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\n", "text/plain": [ "
" ] @@ -1237,18 +678,12 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], - "source": [] + "source": [ + "#### Conclusions\n", + "None so far." + ] }, { "cell_type": "code", diff --git a/XCS_Experiments/XCS_compared_Maze5_without_#.ipynb b/XCS_Experiments/XCS_compared_Maze5_without_#.ipynb deleted file mode 100644 index 2349d39..0000000 --- a/XCS_Experiments/XCS_compared_Maze5_without_#.ipynb +++ /dev/null @@ -1,1358 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 29, - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "logging.root.setLevel(logging.INFO)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 30, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "import random\n", - "\n", - "from xcs import XCSAlgorithm\n", - "from xcs.scenarios import Scenario" - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [], - "source": [ - "from utils.xcs_utils import *" - ] - }, - { - "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[31mA\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" - ] - } - ], - "source": [ - "exploration_cycles = 4000\n", - "exploitation_cycles = 1000\n", - "input_size = 8\n", - "logging.root.setLevel(logging.INFO)\n", - "scenario = MazeScenario(input_size)\n", - "scenario.maze.reset()\n", - "scenario.maze.render()" - ] - }, - { - "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "algorithm = XCSAlgorithm()\n", - "algorithm.max_population_size = 200\n", - "algorithm.learning_rate = .1\n", - "algorithm.error_threshold = .01 # epsilon_0\n", - "algorithm.ga_threshold = 25\n", - "algorithm.crossover_probability = 0.5\n", - "algorithm.mutation_probability = 0.01\n", - "algorithm.initial_prediction = float(np.finfo(np.float32).tiny) # p_I\n", - "algorithm.initial_error = float(np.finfo(np.float32).tiny) # epsilon_I\n", - "algorithm.initial_fitness = float(np.finfo(np.float32).tiny) # F_I\n", - "algorithm.wildcard_probability = 0" - ] - }, - { - "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n", - "Executing 1 experiment\n", - "Executing 2 experiment\n", - "Executing 3 experiment\n", - "Executing 4 experiment\n" - ] - } - ], - "source": [ - "other_metrics = other_avg_experiment(\n", - " maze=scenario,\n", - " algorithm=algorithm,\n", - " number_of_tests=5,\n", - " explore_trials=exploration_cycles,\n", - " exploit_trials=exploitation_cycles\n", - " )\n" - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialpopulationnumerosity
trial
030.828.829.6
10044.0141.6200.0
20041.2143.2200.0
30035.6137.4200.0
40039.2139.6200.0
50045.0136.2200.0
60032.8137.0200.0
70036.6137.6200.0
80038.4142.6200.0
90031.4135.2200.0
100030.0139.2200.0
110024.6141.0200.0
120049.4139.8200.0
130048.8136.6200.0
140040.2140.0200.0
150044.8138.4200.0
160044.6142.0200.0
170016.0141.4200.0
180049.8138.0200.0
190025.8138.6200.0
200036.2137.2200.0
210043.0140.8200.0
220032.0138.2200.0
230025.0138.8200.0
240030.4136.6200.0
250034.2140.0200.0
260031.4136.4200.0
270041.4135.8200.0
280032.6136.8200.0
290033.4141.4200.0
300042.8135.6200.0
310016.8140.4200.0
320050.0140.8200.0
330039.0140.8200.0
340030.4136.0200.0
350034.0138.8200.0
360043.6132.2200.0
370025.2139.0200.0
380041.2139.0200.0
390017.8139.0200.0
400020.8142.6200.0
410022.4143.4200.0
420042.4150.4200.0
430026.4148.8200.0
440048.8142.4200.0
450038.4145.2200.0
460037.8142.8200.0
470037.2149.4200.0
480036.6138.4200.0
490032.2144.6200.0
\n", - "
" - ], - "text/plain": [ - " steps_in_trial population numerosity\n", - "trial \n", - "0 30.8 28.8 29.6\n", - "100 44.0 141.6 200.0\n", - "200 41.2 143.2 200.0\n", - "300 35.6 137.4 200.0\n", - "400 39.2 139.6 200.0\n", - "500 45.0 136.2 200.0\n", - "600 32.8 137.0 200.0\n", - "700 36.6 137.6 200.0\n", - "800 38.4 142.6 200.0\n", - "900 31.4 135.2 200.0\n", - "1000 30.0 139.2 200.0\n", - "1100 24.6 141.0 200.0\n", - "1200 49.4 139.8 200.0\n", - "1300 48.8 136.6 200.0\n", - "1400 40.2 140.0 200.0\n", - "1500 44.8 138.4 200.0\n", - "1600 44.6 142.0 200.0\n", - "1700 16.0 141.4 200.0\n", - "1800 49.8 138.0 200.0\n", - "1900 25.8 138.6 200.0\n", - "2000 36.2 137.2 200.0\n", - "2100 43.0 140.8 200.0\n", - "2200 32.0 138.2 200.0\n", - "2300 25.0 138.8 200.0\n", - "2400 30.4 136.6 200.0\n", - "2500 34.2 140.0 200.0\n", - "2600 31.4 136.4 200.0\n", - "2700 41.4 135.8 200.0\n", - "2800 32.6 136.8 200.0\n", - "2900 33.4 141.4 200.0\n", - "3000 42.8 135.6 200.0\n", - "3100 16.8 140.4 200.0\n", - "3200 50.0 140.8 200.0\n", - "3300 39.0 140.8 200.0\n", - "3400 30.4 136.0 200.0\n", - "3500 34.0 138.8 200.0\n", - "3600 43.6 132.2 200.0\n", - "3700 25.2 139.0 200.0\n", - "3800 41.2 139.0 200.0\n", - "3900 17.8 139.0 200.0\n", - "4000 20.8 142.6 200.0\n", - "4100 22.4 143.4 200.0\n", - "4200 42.4 150.4 200.0\n", - "4300 26.4 148.8 200.0\n", - "4400 48.8 142.4 200.0\n", - "4500 38.4 145.2 200.0\n", - "4600 37.8 142.8 200.0\n", - "4700 37.2 149.4 200.0\n", - "4800 36.6 138.4 200.0\n", - "4900 32.2 144.6 200.0" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(other_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 36, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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iPBXf/VXePe7343bbrsNIyMj2LZtG2644QZ0dXVhdHQUV111FQ4fPoxrr70Wt99+OwDorumDH/wgHnroIdx00014z3veo7xuJBLB1772NcXb+PKXv4zOzk58/OMfx+c+9zmcddZZAACXy4WPfOQjAICxsTEMDw8rz7F169aS95HnfYQxsJ526UAW1B9xhtTAgw8+iMHBQezduxf79+/HVVddhY9//OMYHBzEzp07sXPnTpw6dQpf/epX8cgjj+C5557D9u3b8c1vFtS8I5EInnnmGdx00034xCc+AUC6yP7ud7/D3r17cd9995W87q9//Wvs2bMHe/fuxSOPPIJbb70VY2Nj+PrXv46LL74Ye/bswSc/+UkAwJ49e3DXXXdh3759uOuuu3D8+HHDNfl8Pjz11FNLDAHn+uuvx+zsLKLRKN73vvcBAPbv34/zzjuv7Hv0yU9+EldccQXe8pa34Fvf+hbm5uZK7uOQjUGryyzbkRURH07rDuDMFaI2X6BP23gGejv4erF161bccsst+MxnPoO3ve1tuPjii0vu8/vf/x4HDx7EhRdeCABIp9N4/etfr/z9+uuvV77zC/iFF16ID3zgA7juuuvwzne+s+Q5n3rqKVx//fVwOp1YsWIFLr30Ujz77LOIRCIl973yyivR0dEBANi0aRNee+01zM3N6a7p3e9+t+YxnzhxAuPj4yAiLC4uIhQK6b5Hf/Znf4Y3v/nNePDBB3Hvvffin//5n7F37154vYVkoAgT1Y+Q14UnP315s5chaAHEp68GNmzYgN27d2Pr1q347Gc/iy9/+csl92GM4Y1vfCP27NmDPXv24ODBg/j+97+v/F1dGst//qd/+id89atfxfHjx7Ft2zZMT0+XPKdZ1Bddp9OJbDZruKZgMKj5fDfffDO++MUv4rrrrsOXvvQlAMDmzZuxe/duzccMDg7igx/8IO699164XC7s379/yd8dSphIeAYCQbMQxqAGRkdHEQgE8N73vhe33HILnnvuOQBAOBzGwsICAOCCCy7Af/zHf+CVV14BAMTjcRw6dEh5jrvuukv5znfnhw8fxvnnn48vf/nL6O3txfHjx5e87iWXXIK77roLuVwOU1NTePLJJ7Fjx44lr6uH0Zq0eOCBBzA5OYn3v//9+PznP4977rkHBw8exK233oq//uu/Vp4jn88rYacHH3wQ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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "ax = other_metrics[\"steps_in_trial\"].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps_in_trial\")\n", - "ax.legend([\"steps other XCS\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 37, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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ZcuWLdXueRg7dizjxo0D/IR+V155JZdeeilLly7l9NNP56KLLuKqq66qWL/q/q677jpuv/12nnvuOQAuv/xyiouLq80Y+8orr3D99dcTCoXo06cP48ePp127dowZM4Zp06aRl5fHCSecwO23394Qv6EKWRokyulgIaKtVJMQaaoSTRV+3nnn1bhNKtOFA2zZsoWZM2fy1ltvcdFFF7FgwQJuvvlmhgwZwrhx41i/fj0DBw7kuOOOA+Ddd99l/vz5FUEmZs6cOYwfP573338f5xyHHHIIgwYN4r777uOll17ijTfeoEuXLtXyGb+/GTNm1PpdrF27lptuuonXXnuNtm3bcuuttzJ27Fguv/xypkyZwmeffYaZVZu+vCFkZ5AoCSb3U01CpHY1XPGnU12nCofapwuPGTlyJABHH300GzduZP369bzyyitMmzat4kq8tLSUr7/+GoDjjz++WoAAeOeddzjzzDMrZpA966yzePvttznooINqzGey/SXz3nvv8emnn3LEEUcAUFZWxmGHHUb79u0pLCzkkksu4dRTT2Xo0KEp7zNVWRkkykuDp2xpmnCRJqvqVOFbt24FqNd04TFWZToeM8M5x+TJk9lrr70qffb+++8nnUZ8e+e+i99ffHmgeplixzn++OOZNGlStc9mzZrF9OnTefzxx7nnnnsafAqQrBzdFN7qp/I1zQAr0uzUZ7rwmCeeeALwNYEOHTrQoUMHTjzxRO6+++6KE//cuXNr3c/RRx/N1KlTKSkpYcuWLUyZMoWjjjqqTnnp2bMnn376KaFQiA0bNjB9+vRq6xx66KH897//ZfHixQCUlJTwxRdfsHnzZjZs2MApp5zCnXfeybx58+p07FRkZU2i0PkrkrZFHTKcExGpq2uuuYbhw4czceJEhgwZsl376NSpE4cffnhFxzXAn//8Z6688kr69euHc45evXpVdCYnc/DBB3PBBRcwcOBAwHdc19bUVNVuu+3G8OHD6devH3379k24fdeuXZkwYQIjR46seJreTTfdRFFREcOGDaO0tBTnHHfccUedjp2K7JwqfO1ieP1GOOq30K3a47ZFsp6mCm856jtVeKM3N5nZbmb2hpktNLNPzOw3QfpfzOwbM5sXvE5JWya67AHDH1KAEBGpRSaam8LA1c65D82sCJhjZq8Gn93hnGvYQb4iIrLdGj1IOOdWAauC95vMbCGwa2PnQ0Rq5pyrNgpImpeG6E7I6OgmM+sFHAS8HyRdbmbzzWycmXVKss1oM5ttZrPXrFnTWFkVySqFhYWsW7euQU4ykhnOOdatW0dhYWG99pOxjmszawe8CdzsnHvGzHYC1gIOuBHo5py7qKZ91OcZ1yKSXHl5OStWrEg4Zl+aj8LCQrp3705+fn6l9Cb/jGszywcmA486554BcM59F/f5A0DNY89EJG3y8/NrnJhOskcmRjcZ8CCw0Dk3Ni69W9xqZwILGjtvIiJSWSZqEkcA5wMfm9m8IO0PwEgz649vbloG/CIDeRMRkTiZGN30DpBoyMQLjZ0XERGpWbO+49rM1gBf1WMXXfCd5dlG5c4uKnd2SaXcPZ1zXVPZWbMOEvVlZrNT7eFvSVTu7KJyZ5eGLndWzgIrIiKpUZAQEZGksj1I3J/pDGSIyp1dVO7s0qDlzuo+CRERqVm21yRERKQGChIiIpJUVgYJMzvJzD43s8VmNibT+amvYNbc1Wa2IC6ts5m9amaLgp+d4j67Nij752Z2Ylz6ADP7OPjsLmvi80TX8ACrFl12Mys0s1lm9lFQ7huC9BZd7hgzyzWzuWb2XLDc4sttZsuC/M4zs9lBWuOU2zmXVS8gF1gC7A60Aj4C9s10vupZpqOBg4EFcWm3AWOC92OAW4P3+wZlLgB6B99FbvDZLOAw/B3xLwInZ7pstZS7G3Bw8L4I+CIoX4sue5DHdsH7fPxU+4e29HLHlf+3wGPAc8Fyiy83fqqiLlXSGqXc2ViTGAgsds4tdc6VAY8DwzKcp3pxzr0FfF8leRjwUPD+IeCMuPTHnXMh59yXwGJgYDDBYnvn3LvO/zU9HLdNk+ScW+Wc+zB4vwmIPcCqRZfdeZuDxfzg5Wjh5QYws+7AqcC/45JbfLmTaJRyZ2OQ2BVYHre8gpb5ZLydnH8KIMHPHYP0ZOXfNXhfNb1ZsMoPsGrxZQ+aXOYBq4FXnXNZUW7gTuB/gGhcWjaU2wGvmNkcMxsdpDVKuTPyPIkMS9QGl03jgJOVv9l+L8EDrCYDVzrnNtbQzNpiyu6ciwD9zawjMMXM9q9h9RZRbjMbCqx2zs0xs8GpbJIgrdmVO3CEc26lme0IvGpmn9WwboOWOxtrEiuA3eKWuwMrM5SXdPouqF7GntWxOkhPVv4Vwfuq6U2aJXiAFVlSdgDn3HpgBnASLb/cRwCnm9kyfDPxEDN7hJZfbpxzK4Ofq4Ep+GbzRil3NgaJD4C+ZtbbzFoBI4BpGc5TOkwDRgXvRwHPxqWPMLMCM+sN9AVmBdXVTWZ2aDDi4Wdx2zRJQT6rPcCKFl52M+sa1CAws9bAccBntPByO+eudc51d871wv/fvu6cO48WXm4za2tmRbH3wAn4h7I1Trkz3WufiRdwCn4kzBLgj5nOTwOUZxKwCijHXy1cDOwATAcWBT87x63/x6DsnxM3ugEoDv74lgD3ENyR31RfwJH46vJ8YF7wOqWllx3oB8wNyr0AuC5Ib9HlrvIdDGbb6KYWXW78SMyPgtcnsXNWY5Vb03KIiEhS2djcJCIiKVKQEBGRpBQkREQkKQUJERFJSkFCRESSUpAQqSMz62hmv6rh85kp7GNzbeuINAUKEiJ11xGoFiTMLBfAOXd4Y2dIJF2yce4mkfq6BegTTLBXDmzG38zYH9jXzDY759oFc0o9C3TCz9T6J+dck72zVyQR3UwnUkfBjLPPOef2Dyaaex7Y3/lpmYkLEnlAG+cnHewCvAf0dc652DoZKoJIylSTEKm/WbEAUYUBfzWzo/FTW+8K7AR825iZE6kPBQmR+tuSJP1coCswwDlXHsxeWthouRJpAOq4Fqm7TfjHpdamA/75B+VmdgzQM73ZEml4qkmI1JFzbp2Z/dfMFgBbge+SrPoo8J/gwfXz8NN5izQr6rgWEZGk1NwkIiJJKUiIiEhSChIiIpKUgoSIiCSlICEiIkkpSIiISFIKEiIiktT/B7PnWaSQSiePAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = other_metrics[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [], - "source": [ - "from lcs.agents.xcs import Configuration\n", - "from utils.xcs_utils import *\n", - " \n", - "\n", - "cfg = Configuration(number_of_actions=8,\n", - " max_population=200,\n", - " covering_wildcard_chance = 1,\n", - " metrics_trial_frequency=100,\n", - " user_metrics_collector_fcn=xcs_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 39, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [5.1200643157495e-41, 1.0254604841732145e-40, 2.9915190908737574e-41, 1.9710514767964755e-40, 9.228969786532952e-41, 5.725119250207043e-41, 1.938962294654073e-40, 4.910922728877399e-41], 'perf_time': 0.01915710000002946, 'population': 104, 'numerosity': 110}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [25.907780274684487, 19.29998613185881, 19.86598910983664, 18.98040521730779, 20.628074920025604, 14.27556207648116, 20.416264345156392, 16.517131822043538], 'perf_time': 0.037464900000031776, 'population': 178, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 14, 'reward': [46.515721273231144, 50.576360486849744, 220.58487249407153, 49.216564473423304, 40.51124497570612, 39.0326580826752, 44.042351873115365, 41.518059002934585], 'perf_time': 0.016042799999922863, 'population': 180, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [26.907094597807593, 31.178039235437755, 34.44224107010148, 33.15180403842226, 33.67967597043441, 32.3088691251137, 28.295786484686563, 25.186343454965407], 'perf_time': 0.04064949999997225, 'population': 177, 'numerosity': 201}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [13.295173890748659, 12.78247404719778, 18.77484727163302, 17.184103284931933, 18.940148178442197, 15.506828150417002, 12.384311833567777, 19.07113948663577], 'perf_time': 0.029006900000013047, 'population': 172, 'numerosity': 201}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [17.821096011218255, 19.8440153731198, 24.71089249515874, 18.605576708765813, 19.28529420790987, 18.006514701584017, 21.84841670031169, 15.428419912285598], 'perf_time': 0.0343391999999767, 'population': 169, 'numerosity': 201}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [25.163053858049803, 37.989394933821984, 18.918544321484173, 24.534715116482523, 18.806513041175315, 37.26328607415514, 24.984123280210635, 24.285077572206042], 'perf_time': 0.032653500000151325, 'population': 166, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [25.347607205901145, 76.4404916868534, 27.360165327210808, 29.135985564679086, 29.803844167765757, 23.421694214659357, 24.62719334483451, 26.71503983405549], 'perf_time': 0.0435067999999319, 'population': 177, 'numerosity': 201}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 16, 'reward': [78.66373701951368, 21.34238044436787, 202.38259711279164, 18.15224742765841, 27.403452916383227, 20.59208358252585, 23.452122018632338, 22.44399999123691], 'perf_time': 0.008620300000075076, 'population': 185, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [76.39250391586903, 37.171825324757016, 118.56544706928905, 43.850162160857685, 55.2803457465704, 51.712627213397084, 47.698361491939124, 36.18771632250961], 'perf_time': 0.032460000000128275, 'population': 174, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [6.275587523171267, 0, 8.090094965152167, 0, 6.0687787293609965, 0, 19.622865611277263, 4.942088351403461], 'perf_time': 0.027591600000050676, 'population': 177, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [29.553311010498557, 11.572683864571097, 16.777027707293133, 28.994111537823198, 10.434853461042925, 1.0924138873695337, 17.270337991736127, 17.14721908657729], 'perf_time': 0.027446900000086316, 'population': 189, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [14.799671675382971, 13.66773146325045, 40.58736995255619, 6.907839311053976, 4.1401527742294295, 15.233730932855515, 52.99355984649377, 0.810000746645948], 'perf_time': 0.028024100000038743, 'population': 191, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [45.66777004716082, 6.712709234981148, 36.815695666973575, 36.6157995834782, 4.1401527742294295, 22.95361695316273, 47.55945652063383, 25.644656622935393], 'perf_time': 0.027064699999982622, 'population': 194, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [55.03149607405486, 4.792881185533155, 53.92864028913177, 46.75747017691559, 4.1401527742294295, 55.15504360053994, 54.74563892075386, 47.56972978643822], 'perf_time': 0.027441599999974642, 'population': 195, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [53.46209218007024, 3.0306829184002373, 39.96199333478502, 53.814733123657014, 4.1401527742294295, 55.64544933831677, 62.50076067467949, 13.908438138059578], 'perf_time': 0.027343299999984083, 'population': 196, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [54.639046779927085, 1.2600833680328267, 55.47506207051717, 54.300410761932014, 4.1401527742294295, 24.150543338778547, 57.94864826613611, 36.89302962026353], 'perf_time': 0.027634700000135126, 'population': 197, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [54.220772723297344, 1.1606094988248028, 63.68434746450197, 53.769534117462854, 4.1401527742294295, 52.96101148353907, 49.285250335250545, 3.310662547593986], 'perf_time': 0.02876749999995809, 'population': 198, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [53.83369446645522, 4.4104668305759525, 64.32226253751983, 53.33076380412851, 4.1401527742294295, 46.940450994027415, 48.130468334187036, 28.433836880269862], 'perf_time': 0.02830620000008821, 'population': 199, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [53.0864190527567, 9.902057863961652, 44.43847514285856, 54.62972750821383, 4.1401527742294295, 50.403580114716526, 61.05871289146807, 40.99172570412158], 'perf_time': 0.027717800000118586, 'population': 198, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [2.9628335112475754e-41, 1.329231994834622e-40, 1.5567440077205532e-40, 1.0056149278269098e-40, 1.992383502664e-40, 1.3893537741925504e-40, 2.5605209250057595e-40, 1.4531162398688388e-40], 'perf_time': 0.0158860999999888, 'population': 80, 'numerosity': 82}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 1 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [21.9106043669243, 41.41777603026866, 30.284193486099266, 30.08283235581386, 24.54832970446534, 21.882843765736503, 20.964182115773724, 19.63410962859816], 'perf_time': 0.033035700000027646, 'population': 177, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [19.731198562708425, 24.191694200731703, 23.767744936717623, 20.30652142564632, 23.979686527601462, 28.127853201797862, 23.923956322526788, 24.276678324920034], 'perf_time': 0.03290590000005977, 'population': 163, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [25.32093843436928, 22.18137546300416, 27.88822359797008, 24.42028739737566, 20.207452469266904, 15.553013920251667, 25.367462331285907, 22.639052866958284], 'perf_time': 0.03492280000000392, 'population': 177, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [24.7699283582336, 17.310830555723694, 21.043059154418508, 19.633427460851614, 18.919970805380213, 35.5220724582058, 18.897066557757423, 21.906826107647063], 'perf_time': 0.03063420000012229, 'population': 176, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [43.253480694331294, 95.32419897848698, 55.60377237696763, 37.23087799093688, 32.826837580267615, 40.38488848093607, 39.82575066368658, 33.944262063289635], 'perf_time': 0.030657899999823712, 'population': 164, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [19.15765559987831, 25.93011840834233, 24.708951581577786, 24.902516983890017, 23.86204972514052, 18.845649861372717, 24.292775022159795, 21.82149274344332], 'perf_time': 0.03807710000000952, 'population': 173, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 17, 'reward': [30.36000307087008, 19.676350589626846, 125.14065752525039, 24.080452053507436, 28.664329476547763, 25.294386912560448, 24.612138457476945, 25.72349578730379], 'perf_time': 0.009000699999887729, 'population': 177, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [24.8065536469445, 42.89306575549376, 25.732006731133588, 18.012104856446268, 14.091570156149944, 27.787234788380367, 24.41833148182393, 14.538300987220525], 'perf_time': 0.0485515000000305, 'population': 178, 'numerosity': 201}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 22, 'reward': [294.2232084473703, 31.268920305956595, 23.469650983822337, 21.893591987845824, 26.5251438318535, 31.577636295067684, 23.951192446286843, 24.05618820169178], 'perf_time': 0.013883500000019922, 'population': 180, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 0, 38.79530793249553, 0, 0, 0, 24.085616776311152, 0], 'perf_time': 0.04525249999983316, 'population': 174, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [11.94365891860473, 21.34978811707921, 4.98660587091238, 10.525808815520287, 26.134595362330195, 32.00063123406013, 5.587818407468179, 34.088186372882774], 'perf_time': 0.030524500000183252, 'population': 189, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [6.473269306947045, 55.06234140316537, 12.05637672742586, 4.7993553258416926, 13.870886527692981, 32.85494695406836, 37.36818643150875, 42.07696721460956], 'perf_time': 0.030466100000012375, 'population': 192, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [37.19114439316619, 56.13209337301657, 55.57228419763336, 4.7993553258416926, 18.665132944849752, 7.69387089323158, 53.783545844077594, 25.194483644071134], 'perf_time': 0.03085719999990033, 'population': 197, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [18.012395077776155, 44.68234185013219, 44.0090708694448, 11.742185294579434, 28.520259957638853, 36.68420204036285, 54.32586508766282, 49.90862625101218], 'perf_time': 0.028618700000151875, 'population': 194, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [12.620415024342595, 52.30403385883716, 46.7684138501629, 17.00473335914833, 44.16449101409018, 53.70171286436459, 53.72500036795024, 43.22253058512181], 'perf_time': 0.02793459999998049, 'population': 196, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [10.441927831867385, 48.98955077686066, 46.384244336956, 34.26297625118583, 53.693679143417704, 53.521350385526326, 53.67439788120468, 0.6789017745756241], 'perf_time': 0.02959710000004634, 'population': 194, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [11.678506772905127, 57.0113844153453, 62.514264488849236, 45.05102107859065, 53.5472296303488, 54.73818253950471, 54.911414522786366, 41.203491092693525], 'perf_time': 0.029701599999953032, 'population': 196, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [7.3689360117983504, 56.111564204097036, 62.52224330480785, 40.94005936066718, 54.68680777235057, 53.72256731556487, 51.65281710883117, 45.24059269247507], 'perf_time': 0.02928280000014638, 'population': 199, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [9.911504291626573, 55.230744869640155, 62.4500795758773, 46.74181482448692, 54.298436336245416, 53.67172229817793, 55.0160256636557, 32.85945292101581], 'perf_time': 0.030011800000011135, 'population': 196, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [2.4075628090959695e-41, 1.567938373715183e-40, 2.151985428541897e-40, 1.696791613804473e-40, 3.4774240719306292e-40, 2.2288977784441316e-40, 1.4370379091340687e-40, 2.2662623052866034e-40], 'perf_time': 0.021136099999921498, 'population': 96, 'numerosity': 96}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 2 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 14, 'reward': [40.5569964203514, 33.41476766062825, 145.00188148056952, 44.73191710555119, 40.4259883466297, 58.467848030544445, 31.76642192218587, 27.755554377716035], 'perf_time': 0.01678659999993215, 'population': 170, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [43.20341185004063, 51.36957443106685, 61.22642590597113, 52.443781337657015, 38.24778479021772, 41.68427210783105, 40.61038320130544, 43.575123113009326], 'perf_time': 0.025990200000023833, 'population': 175, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 8, 'reward': [239.37357769491675, 52.57176330524763, 39.996882710003845, 22.089277141356558, 25.429233524950583, 27.52786531396398, 28.08069914777806, 28.83180892352606], 'perf_time': 0.004012800000054995, 'population': 179, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 27, 'reward': [61.90153696504686, 156.85051994635484, 15.34262460262839, 17.942571057435785, 13.494469038539904, 14.060214262987913, 14.361033699317481, 14.879726898360811], 'perf_time': 0.021090699999831486, 'population': 182, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [20.677468724123862, 20.030112257039363, 19.660325479472675, 19.92401257729432, 18.353260220940363, 19.425021978194543, 25.60044227155182, 20.039723582905292], 'perf_time': 0.034662399999888294, 'population': 171, 'numerosity': 201}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [24.394347704689753, 14.556134535974884, 17.039892671595368, 16.191442521696203, 22.335234683303813, 21.03157984947714, 22.14346260552569, 16.122847473798426], 'perf_time': 0.04810440000005656, 'population': 175, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 3, 'reward': [28.462273879663645, 214.9169106623647, 29.95324743021905, 23.995682562572664, 31.0438921262315, 27.37840751301069, 31.06584380718659, 23.65588669437212], 'perf_time': 0.0018428999999287043, 'population': 155, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [80.03439846285573, 24.3619915645081, 37.92119802194065, 34.89230387864268, 30.82522407017474, 25.634813604399113, 28.119722096108003, 25.779529303999073], 'perf_time': 0.036584199999879274, 'population': 178, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 28, 'reward': [30.544430654200998, 52.89570539677584, 125.18602251926949, 33.90828268492152, 33.89279489836302, 38.29307555369801, 35.506958086550114, 29.020957985094014], 'perf_time': 0.018646400000079666, 'population': 176, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [9.251120858628788, 31.45491593684855, 19.29477224547488, 6.506247295143017, 11.148758789126402, 16.57375293666592, 14.39987171347043, 2.516026712049162], 'perf_time': 0.030267500000036307, 'population': 187, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 2, 'reward': [6.609225444372852, 345.6139962024358, 8.916842972938483, 7.023476787986143, 4.025740843170447, 3.874342306772987, 11.84772339237783, 10.328037919756625], 'perf_time': 0.0012783999998191575, 'population': 191, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [17.101112837920287, 5.2755166408311975, 22.770733328404937, 33.30452096722265, 42.38219847056085, 19.299016911404838, 20.936719115399626, 53.159908516304625], 'perf_time': 0.028588099999979022, 'population': 192, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 2, 'reward': [32.8732117491206, 101.4693593763104, 44.13372943874452, 123.694623919316, 9.428886809892589, 2.6302229983312118, 20.076953876781413, 28.059244667694593], 'perf_time': 0.0018694000000323285, 'population': 194, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [24.94865864399198, 756.70907789494, 49.956763174853016, 87.79932556066477, 13.607141291830345, 4.548468983571622, 18.383267929911355, 55.189180961450596], 'perf_time': 0.03371279999987564, 'population': 195, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [18.60564682457581, 778.5392766720364, 54.48704976630599, 17.230767688092513, 16.612744457077486, 5.140878792802263, 16.876501158582066, 17.66185159491798], 'perf_time': 0.0303707000000486, 'population': 196, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [5.579294867030501, 959.6873806214742, 54.0418224397595, 46.984836862777115, 40.69327070699156, 7.461817874461508, 16.876501158582066, 94.99034506689954], 'perf_time': 0.02643990000001395, 'population': 194, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [5.373143157057347, 972.4153956461344, 57.97664807694573, 49.53907017191628, 39.83093994198075, 5.400796974823, 16.876501158582066, 47.49832955849657], 'perf_time': 0.03079810000008365, 'population': 195, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [3.0154201494511157, 972.4153956461344, 14.268789389442844, 39.8394314775174, 48.978448435432696, 5.872164533319723, 16.876501158582066, 46.35416508323375], 'perf_time': 0.02799630000004072, 'population': 197, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [2.2048319803062744, 972.4153956461344, 38.27826486000833, 50.522869124854694, 56.40367454703843, 18.058466387137493, 16.876501158582066, 47.16735051642343], 'perf_time': 0.03044359999989865, 'population': 195, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1.0310923568577705e-40, 1.0250545051009909e-40, 2.0775543804999757e-40, 1.3276035153833395e-40, 1.3026523857798684e-40, 1.2782507146268808e-40, 1.7774736915863673e-40, 1.6454830355984908e-40], 'perf_time': 0.016485699999975623, 'population': 88, 'numerosity': 88}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 3 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [68.43960012857359, 41.855581338481336, 24.065683961514555, 37.62692828228827, 23.79635507867328, 32.42913056579862, 28.715748440343436, 28.355050243595976], 'perf_time': 0.038631599999916943, 'population': 174, 'numerosity': 201}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [24.56080514530715, 78.90320133123274, 19.846464572207967, 14.601878537878335, 18.28351078873396, 23.18719631823254, 18.89490582162067, 19.650183848573434], 'perf_time': 0.04262719999996989, 'population': 172, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 38, 'reward': [22.5647031793508, 22.301485378300917, 121.96275460623184, 21.413318199557725, 24.26013349727496, 20.253664507602895, 23.436518942764067, 23.893895221473503], 'perf_time': 0.033027599999968515, 'population': 179, 'numerosity': 201}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [28.610718122978863, 31.612416565067964, 27.276906601970346, 31.405071685940626, 30.30406116829537, 38.17735657357441, 29.97944595364816, 31.678357226381717], 'perf_time': 0.035442800000055286, 'population': 168, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [22.51915406181665, 18.342200438260083, 18.84207912440885, 18.00873843083793, 19.619609945420343, 27.136613157120266, 20.245513464694238, 21.68193584328695], 'perf_time': 0.026208699999870078, 'population': 166, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [24.02007272670862, 26.91536141013884, 15.609709721530896, 18.400223627819962, 25.41173198950144, 19.91425013188589, 20.067142007000328, 15.588064765022553], 'perf_time': 0.0420285000000149, 'population': 177, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 28, 'reward': [25.296161397977016, 35.40487168760309, 149.2059189238064, 31.722964707645843, 27.55690558952688, 37.91490888830238, 44.78161085457401, 41.96238613294243], 'perf_time': 0.029056999999966138, 'population': 178, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 12, 'reward': [24.91854187977305, 55.2051927113147, 334.3123648042004, 26.706963273561854, 26.168443760451396, 22.025202004152444, 22.722238529278123, 25.26347309724379], 'perf_time': 0.01123450000000048, 'population': 190, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [59.72477350245417, 71.22447882266992, 47.84245822478903, 48.58772063515681, 53.87457282358229, 46.17315440256111, 38.516301838439894, 47.686206413112515], 'perf_time': 0.032221299999946496, 'population': 182, 'numerosity': 201}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [15.10783710214092, 1.8086046031737908, 46.31095902690335, 2.768990126487261, 7.401732601136678, 12.701268506086674, 22.568165197506207, 12.674661015012202], 'perf_time': 0.02739279999991595, 'population': 182, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [33.51441524125638, 30.2293075669936, 20.3347852605795, 55.845895940400794, 12.101881840713675, 79.34835955773976, 45.05732169561916, 32.07078081615919], 'perf_time': 0.029338099999904443, 'population': 196, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [64.88945042328115, 21.19581980166104, 13.409027672186436, 23.50102282758973, 7.820291870057476, 80.6896835645602, 39.15914893078305, 42.84504659418656], 'perf_time': 0.02768200000014076, 'population': 198, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [72.57123048683816, 21.911361337111657, 11.438339892452694, 51.96076955154233, 7.353961140062771, 78.36682486207711, 55.59034045641344, 44.630739777764596], 'perf_time': 0.029627800000071147, 'population': 199, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [52.831830921587965, 18.46878871336221, 7.541934721226288, 15.750867207026362, 12.283161089061903, 79.42387927357292, 61.12632821747372, 44.68864439547992], 'perf_time': 0.029440000000022337, 'population': 199, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [59.87569974238118, 12.532885731766056, 7.541934721226288, 63.320620102214, 5.8791908659968035, 0.431657104670517, 62.213337590710786, 52.06263736850267], 'perf_time': 0.028207699999938995, 'population': 195, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [59.584143057944466, 9.118757688427618, 7.541934721226288, 22.485214204101016, 14.348096775441975, 67.98555150714807, 57.79875506101987, 41.40049215413599], 'perf_time': 0.03086410000014439, 'population': 192, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [63.56709070958635, 7.06226420120464, 7.541934721226288, 37.050995156716645, 47.20716367818321, 80.14150091585748, 61.93687708446064, 25.684553165419874], 'perf_time': 0.028915099999949234, 'population': 194, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [64.4216856928989, 7.06226420120464, 7.541934721226288, 16.350329090642003, 53.9427341313785, 71.03548040460025, 51.97195216508454, 36.82654609250723], 'perf_time': 0.028242299999874376, 'population': 197, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [63.784229338979436, 7.06226420120464, 7.541934721226288, 36.45643863364251, 50.90916517717994, 14.853596987583147, 52.04095424077431, 12.297836225203397], 'perf_time': 0.028124800000114192, 'population': 198, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [6.592493923190091e-41, 2.40357216384908e-40, 3.0380600818100033e-40, 8.138881386654435e-41, 2.1682282503374898e-40, 3.145759560017211e-40, 3.5057406147096027e-40, 4.157020050772022e-40], 'perf_time': 0.013586799999984578, 'population': 55, 'numerosity': 67}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 4 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [49.50521946118667, 31.447427970882977, 88.74784658548482, 31.464854598887342, 30.689414008058222, 31.229611319443, 38.50802507482984, 26.12355387577618], 'perf_time': 0.03933359999996355, 'population': 175, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [36.60059751310689, 24.332108658328202, 52.50500377628407, 43.91767546951144, 40.94802281544857, 38.395470926123366, 63.13421778828052, 33.56922894754096], 'perf_time': 0.04006000000003951, 'population': 177, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [58.89414750339108, 23.895952951478677, 40.07905261737639, 21.239705493340853, 24.00671242172224, 29.0813208937632, 30.794914934562296, 19.654526062220665], 'perf_time': 0.03217070000005151, 'population': 176, 'numerosity': 201}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [23.59528237026459, 25.54224799651237, 23.773337148966736, 21.620827373689945, 22.34853199576571, 22.738796823564915, 26.38744210520895, 26.88734452895828], 'perf_time': 0.04649109999991197, 'population': 177, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 25, 'reward': [150.72908900107097, 19.66016012904355, 23.73787728573358, 19.755804410569038, 36.80130722932992, 25.951737803279414, 18.537408201065627, 27.62114218253346], 'perf_time': 0.022240400000100635, 'population': 175, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [29.789555945339504, 36.5515957239993, 51.40069656863918, 33.67863070494181, 30.570446078017728, 34.02337198536572, 24.731170728059567, 33.21154708999905], 'perf_time': 0.033320100000082675, 'population': 177, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [31.20918393404938, 31.32185378997813, 46.066497098263056, 30.33724574138851, 35.87445969981245, 36.58379836425458, 33.383430837875224, 34.82504190598721], 'perf_time': 0.03803479999987758, 'population': 169, 'numerosity': 201}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 31, 'reward': [23.094494979773536, 19.715645000586406, 125.69702091566786, 15.309563241304305, 17.861030929435223, 17.883120669150266, 22.88898560578326, 18.702068373076592], 'perf_time': 0.0270256999999674, 'population': 179, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 25, 'reward': [125.07424660280246, 13.302953545588863, 55.857616907744514, 13.111843197220676, 14.56272413453047, 20.267887415387506, 16.844124338734797, 17.261879925487833], 'perf_time': 0.01912450000008903, 'population': 181, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 28.11699943197764, 15.973891794467354, 2.104932478441488, 0, 15.104373742314559, 0, 0], 'perf_time': 0.02932650000002468, 'population': 177, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [46.63580020841937, 6.84205384999677, 31.509754394592985, 30.711886117741564, 21.775786629857063, 16.030069395783293, 7.720355759498085, 0.945224784044053], 'perf_time': 0.029361000000108106, 'population': 193, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [52.02115075452657, 0.05307048164124288, 0.9073062209838775, 50.87678115836433, 38.890856274839216, 16.030069395783293, 7.720355759498085, 15.791158796800515], 'perf_time': 0.029004499999928157, 'population': 192, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [15.919757542931007, 31.65750094588386, 16.57349179786783, 24.589757061016268, 49.92374591430471, 20.546460615223793, 16.414088262659668, 0.8258957731828562], 'perf_time': 0.029059800000140967, 'population': 195, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [15.67714846581854, 50.03022649756295, 31.214093866198457, 45.77217809102095, 46.142586834384176, 20.546460615223793, 16.414088262659668, 24.673317317956677], 'perf_time': 0.029000600000017585, 'population': 194, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [46.890542697539075, 53.58432584893908, 41.758096097044785, 7.566874056480982, 59.998495539808495, 20.546460615223793, 16.414088262659668, 41.89761624094431], 'perf_time': 0.028610700000172073, 'population': 197, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [51.138481703458936, 54.98325297119625, 52.800676626663595, 30.99822624433, 55.448463909819935, 20.546460615223793, 16.414088262659668, 12.444804127793857], 'perf_time': 0.029428900000084468, 'population': 197, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [52.28925615744586, 54.78188696803152, 50.22077531889092, 48.52701466979661, 54.18025551277356, 20.546460615223793, 16.414088262659668, 0.728416236715539], 'perf_time': 0.029534600000033606, 'population': 198, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [54.322928665817756, 54.80040706194422, 53.60187748115299, 55.279122533268875, 51.5456129782066, 20.546460615223793, 16.414088262659668, 36.35793853567716], 'perf_time': 0.02797950000012861, 'population': 198, 'numerosity': 200}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [55.35448035603408, 53.52775211720623, 54.11884976603645, 55.04568194287782, 52.85869655705945, 20.546460615223793, 16.414088262659668, 38.33240742827019], 'perf_time': 0.029735099999925296, 'population': 196, 'numerosity': 200}\n" - ] - } - ], - "source": [ - "from lcs.agents.xcs import XCS\n", - "\n", - "\n", - "agent = XCS(cfg)\n", - "my_metrics = avg_experiment(scenario,\n", - " cfg,\n", - " number_of_tests=5,\n", - " explore_trials=exploration_cycles,\n", - " exploit_metrics=exploitation_cycles)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialperf_timepopulationnumerosity
trial
050.00.01725084.688.6
10050.00.034758174.4200.8
20033.00.024187173.6200.0
30036.60.029357177.0200.2
40042.80.033050174.8200.2
50031.00.025600177.8200.2
60040.80.035055174.6200.2
70039.20.029996173.2200.0
80042.80.031525173.4200.0
90049.60.038133174.4200.8
100050.00.044239173.2200.4
110042.20.034534175.6201.0
120039.20.028957177.6200.6
130050.00.034666174.2200.2
140038.00.023551173.4200.0
150037.80.027908175.0200.4
160045.40.032533175.0200.2
170036.80.027934175.6200.0
180038.60.028733172.2200.0
190036.60.029495176.6200.0
200045.00.029622169.0200.4
210041.20.031296175.4200.2
220012.00.007534174.0200.2
230043.40.030157174.4200.4
240050.00.038837173.6200.0
250047.20.031363176.0200.2
260050.00.031221170.2200.2
270041.80.029264175.4200.2
280029.60.024288171.2200.4
290050.00.037588175.4200.4
300039.60.027838175.6200.2
310035.40.025880178.0200.2
320031.80.026403182.0200.2
330039.80.035170173.6200.4
340027.00.017081177.6200.2
350041.60.027984177.2200.6
360035.00.023267178.6200.2
370036.80.023686174.4200.0
380025.20.021637174.6200.0
390038.80.026464174.6200.2
400050.00.031966179.4200.0
410040.40.023590191.6200.0
420050.00.028753193.0200.0
430040.40.023696195.8200.0
440050.00.029643195.4200.0
450050.00.028493196.0200.0
460050.00.028793194.8200.0
470050.00.029543196.2200.0
480050.00.028361198.0200.0
490050.00.029207196.6200.0
\n", - "
" - ], - "text/plain": [ - " steps_in_trial perf_time population numerosity\n", - "trial \n", - "0 50.0 0.017250 84.6 88.6\n", - "100 50.0 0.034758 174.4 200.8\n", - "200 33.0 0.024187 173.6 200.0\n", - "300 36.6 0.029357 177.0 200.2\n", - "400 42.8 0.033050 174.8 200.2\n", - "500 31.0 0.025600 177.8 200.2\n", - "600 40.8 0.035055 174.6 200.2\n", - "700 39.2 0.029996 173.2 200.0\n", - "800 42.8 0.031525 173.4 200.0\n", - "900 49.6 0.038133 174.4 200.8\n", - "1000 50.0 0.044239 173.2 200.4\n", - "1100 42.2 0.034534 175.6 201.0\n", - "1200 39.2 0.028957 177.6 200.6\n", - "1300 50.0 0.034666 174.2 200.2\n", - "1400 38.0 0.023551 173.4 200.0\n", - "1500 37.8 0.027908 175.0 200.4\n", - "1600 45.4 0.032533 175.0 200.2\n", - "1700 36.8 0.027934 175.6 200.0\n", - "1800 38.6 0.028733 172.2 200.0\n", - "1900 36.6 0.029495 176.6 200.0\n", - "2000 45.0 0.029622 169.0 200.4\n", - "2100 41.2 0.031296 175.4 200.2\n", - "2200 12.0 0.007534 174.0 200.2\n", - "2300 43.4 0.030157 174.4 200.4\n", - "2400 50.0 0.038837 173.6 200.0\n", - "2500 47.2 0.031363 176.0 200.2\n", - "2600 50.0 0.031221 170.2 200.2\n", - "2700 41.8 0.029264 175.4 200.2\n", - "2800 29.6 0.024288 171.2 200.4\n", - "2900 50.0 0.037588 175.4 200.4\n", - "3000 39.6 0.027838 175.6 200.2\n", - "3100 35.4 0.025880 178.0 200.2\n", - "3200 31.8 0.026403 182.0 200.2\n", - "3300 39.8 0.035170 173.6 200.4\n", - "3400 27.0 0.017081 177.6 200.2\n", - "3500 41.6 0.027984 177.2 200.6\n", - "3600 35.0 0.023267 178.6 200.2\n", - "3700 36.8 0.023686 174.4 200.0\n", - "3800 25.2 0.021637 174.6 200.0\n", - "3900 38.8 0.026464 174.6 200.2\n", - "4000 50.0 0.031966 179.4 200.0\n", - "4100 40.4 0.023590 191.6 200.0\n", - "4200 50.0 0.028753 193.0 200.0\n", - "4300 40.4 0.023696 195.8 200.0\n", - "4400 50.0 0.029643 195.4 200.0\n", - "4500 50.0 0.028493 196.0 200.0\n", - "4600 50.0 0.028793 194.8 200.0\n", - "4700 50.0 0.029543 196.2 200.0\n", - "4800 50.0 0.028361 198.0 200.0\n", - "4900 50.0 0.029207 196.6 200.0" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(my_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 41, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "ax = my_metrics['steps_in_trial'].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 42, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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Tr+Ir2/cuJEzzzyTE044gQULFtClSxfmzJnDmWeeycSJEykoKGDHjh0UFBSwceNGpkyZwuzZs/H7/axYsYK//vWvlJWVMXXqVDIzM/nvf/9LmzZt2LBhA+PHj6eoqIicnByefvppDj30UMaOHUubNm1YunQpRx99NJdddhnXXHMNe/fupVevXkyePJnWrVvzyCOP8MQTT5CWlkbfvn2ZMWMGU6ZMYfHixVx88cXMnTuXjz76iLvvvpuZM2cyatQovvrqKwDWrVvH6NGjWbJkSYN+l7HWWBqu4y7Vt88+0IZrpRqldevWMX78eFauXEmrVq2YOXNmteuvWLGCadOmsWjRIm677TZycnJYunQpxx13HM8/b4drjRs3jkcffZQlS5YwceJE/vCHP5S/f+3atcyfP59//etfXH755dx3330sX76cI444gjvvvBOAe++9l6VLl7J8+XKeeOKJCp8/ZMgQRowYwQMPPMCyZcvo1asXLVu2ZNmyZQA8++yzjB07tuG+oDhJ2rmbUv1uktCShFLVqu6MP5Z69uzJUUcdBcDAgQPZuHFjteuffPLJ5Ofnk5+fT8uWLTnnnHMAOOKII1i+fDl79uxhwYIFjBo1qvw9juOUPx41ahSpqakUFxeza9cuTjrpJADGjBlT/p7+/ftzySWXcO6553LuuefWuA9XX301zz77LJMmTeKll15i0aKYNrXGRNKWJNL8bnVTmiYJpRqjzMzM8sepqan4fD7S0tIIBAIAVfr/h66fkpJS/jwlJQWfz0cgEKBVq1YsW7as/LZ69ery9+Tm1lyr8MYbbzB+/HiWLFnCwIEDa2y/+M1vfsObb77JvHnzGDhwIG3btq15xxuZpE0S6YF9lEkmpCTtV6BUk9OjR4/yOv1XX321Vu9t0aIFPXv25JVXXgHsiOSvv/66ynotW7akdevWfPLJJwBMnTqVk046iUAgwObNmzn55JO5//772bVrF3v27Knw3vz8fHbv3l3+PCsrizPOOINrr72WK664olbxNhZJe4RMCzh4U7ISHYZSqhZuvPFG/v3vfzNkyBB27NhR6/e/+OKLPPPMMxx55JH069ePOXPmhF3vueee46abbqJ///4sW7aM22+/Hb/fz6WXXsoRRxzBgAEDuOGGG2jVqlWF940ePZoHHniAAQMGsGHDBgAuueQSRITTTz+91vE2BmJM2IHNTUJBQYFZvHhxnd476/ZzGJ61lpZ/W9PAUSnV9K1evZrDDjss0WE0CxMnTqS4uJi77rorIZ8f7m8pIkuMMQXRvD8pG66NMWQYB1+qliSUUrFz3nnnsWHDBt5///1Eh1JnSZkkyvwBsnHwp2qjtVIqdmbNmpXoEOotKdskHF+AbMrwp2lJQimlqpOcScIbIFs8BNL0gkNKKVWdpEwSHq+fbMowOkZCKaWqlZRJwlY3OZoklFKqBkmaJPxkiwN6fWulks6wYcOoa9f52njkkUc47LDDuOSSS+q8jXjFWp2k7N0EkCtleDN1cj+lVPSCU4NE4/HHH+fNN9+s9vrStdleojTu6GKkX+cWgENO+6Y3j4pScffmBNj2TcNus9MRcOa9EV+ONFV4dnY2w4YNq9d04QAvvPACf/rTnygpKWHy5MkMGjSI0tJS/vjHP/LNN9/g8/n45z//yciRI5kyZQpvvPEGHo+H0tLSKmMeJk2axOTJkwE7od/111/PNddcw3fffceIESO48sorueGGG8rXr7y922+/nYkTJzJv3jwArrvuOgoKCqrMGPvOO+9wxx134DgOvXr14tlnnyUvL48JEyYwd+5c0tLSOP3005k4cWJD/IXKJWWSwOcARmeAVaoRW7duHdOnT+fpp5/mggsuYObMmVx66aXVvmfFihUsXboUj8fDwQcfzH333cfSpUu54YYbeP7557n++usBKC0tZcGCBXz88cdceeWVrFixgnvuuYfhw4czefJkdu3axaBBgzj11FMB+Pzzz1m+fHl5kglasmQJzz77LAsXLsQYw+DBgznppJN44okneOutt/jggw9o165dlThDt/fhhx/W+F3s2LGDu+++m/nz55Obm8t9993HpEmTuO6665g1axbffvstIsKuXbui+m5rIzmTRPn1rbW6SakaVXPGH0u1nSocap4uPOiii+w10YYOHUpJSQm7du3inXfeYe7cueVn4h6Ph02bNgFw2mmnVUkQAJ9++innnXde+Qyy559/Pp988gkDBgyoNs5I24vkiy++YNWqVRx//PEAlJWVcdxxx9GiRQuysrK4+uqr+fWvf83ZZ58d9TajleRJQksSSjVWlacK37fPXgOmPtOFB4lIhfeJCMYYZs6cSZ8+fSq8tnDhwojTiNd17rvQ7YXuD1Tdp+DnnHbaaUyfPr3Ka4sWLeK9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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = my_metrics[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Conclusions\n", - "None so far." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_compared_Maze5_without_#_high_pop.ipynb b/XCS_Experiments/XCS_compared_Maze5_without_#_high_pop.ipynb deleted file mode 100644 index a697d9b..0000000 --- a/XCS_Experiments/XCS_compared_Maze5_without_#_high_pop.ipynb +++ /dev/null @@ -1,717 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "logging.root.setLevel(logging.INFO)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "import random\n", - "\n", - "from xcs import XCSAlgorithm\n", - "from xcs.scenarios import Scenario" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from utils.xcs_utils import *" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[31mA\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" - ] - } - ], - "source": [ - "exploration_cycles = 1000\n", - "exploitation_cycles = 500\n", - "input_size = 8\n", - "logging.root.setLevel(logging.INFO)\n", - "scenario = MazeScenario(input_size)\n", - "scenario.maze.reset()\n", - "scenario.maze.render()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "algorithm = XCSAlgorithm()\n", - "algorithm.max_population_size = 1600\n", - "algorithm.learning_rate = .1\n", - "algorithm.error_threshold = .01 # epsilon_0\n", - "algorithm.ga_threshold = 25\n", - "algorithm.crossover_probability = 1\n", - "algorithm.mutation_probability = 0.01\n", - "algorithm.initial_prediction = 0.000001 # p_I\n", - "algorithm.initial_error = 0.000001 # epsilon_I\n", - "algorithm.initial_fitness = 0.000001 # F_I\n", - "algorithm.wildcard_probability = 0.0" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - } - ], - "source": [ - "other_metrics = other_avg_experiment(\n", - " maze=scenario,\n", - " algorithm=algorithm,\n", - " number_of_tests=1,\n", - " explore_trials=exploration_cycles,\n", - " exploit_trials=exploitation_cycles\n", - " )\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialpopulationnumerosity
trial
0504244
100163771600
20063911600
30024061600
400504261600
500504441600
600504491600
70024681600
800144701600
900504581600
100015181600
1100315321600
1200505061600
1300504641600
1400504771600
\n", - "
" - ], - "text/plain": [ - " steps_in_trial population numerosity\n", - "trial \n", - "0 50 42 44\n", - "100 16 377 1600\n", - "200 6 391 1600\n", - "300 2 406 1600\n", - "400 50 426 1600\n", - "500 50 444 1600\n", - "600 50 449 1600\n", - "700 2 468 1600\n", - "800 14 470 1600\n", - "900 50 458 1600\n", - "1000 1 518 1600\n", - "1100 31 532 1600\n", - "1200 50 506 1600\n", - "1300 50 464 1600\n", - "1400 50 477 1600" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(other_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEGCAYAAACNaZVuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABBD0lEQVR4nO29eXxj9XX//T6SbMu2bHm35dnHngUCmSFM2NdMSUhIoemvJJ2GFEIS+mpCAlkI9Enbp6GkDyF5KKH9Pb8USAJpSULWQodAIIQZBsJOBpgwns2eDcu27BlvsmVr+T5/6F6P8chjyZZ0r3S/79dLL0lXyz26lo/OPd9zPkeUUmg0Go3GWbisNkCj0Wg0+Uc7f41Go3Eg2vlrNBqNA9HOX6PRaByIdv4ajUbjQDxWG5AuDQ0Navny5VabodFoNAXFq6++2q+Uapy5vWCc//Lly3nllVesNkOj0WgKChE5kGq7TvtoNBqNA9HOX6PRaByIdv4ajUbjQLTz12g0Ggeinb9Go9E4kJxX+4jIfmAEiAMxpdQGEakDHgKWA/uBjyqljubaFo1Go9EkyVfkf7FSar1SaoNx/xbgKaXUKuAp475Go9Fo8oRVdf5XABcZtx8AtgA352JHm9/oZmB0kqvPWZ6Lt3c0fzh4lKc7+qw2I23KSz188tzleEvcVptiGY+9GeT0ZbU0VXutNsUyntvbz4udA1abkRFXnbUs63+zfDh/BTwhIgr4D6XUPUCzUioIoJQKikhTqheKyHXAdQBLly6d186f+GMvrx44qp1/Dvjm4x280HkEEastmRtzbMXqZh8bT2q21hiLGBqP8rcPvsbn39fOl9+/xmpzLEEpxZd+up3e4YmC+N6afOCUloJ0/ucqpboNB/+kiHSk+0Ljh+IegA0bNsxr6kxbo49HXu9mbDJGRWnBNDQXBN2DES5f18rdm06z2pQ56R2OcOa/PEX3UMRqUyyjqz8MJP9uTmVncITe4Qnu+It389ENS6w2x1JynvNXSnUb133Ar4AzgF4RCQAY1znLHbQ3+QDoDIVztQtHkkgoeoYiBPyFkT5o8JXhcQnBwXGrTbGMrv5RAHqGnXsMtu4OAXDR6uOkbhxHTp2/iFSKSJV5G3g/sAN4BLjaeNrVwMO5ssF0/vtCo7nahSMZCE8yGU8UjPN3u4Tmai9BB0f+ZgAUdHDkv2VXHycFqh295mGS6zxIM/ArSSbXPMCPlFKPi8jLwE9F5FPAQeDKXBmwvKECl8C+Pu38s0lwKBk9BmrKLbYkfQJ+L90Ojvw7jbRPcCiCUgoppKR3FhiJRHn1wFE+c8FKq02xBTl1/kqpTmBdiu0DwMZc7tukzONmaV0Fe3Xkn1XMCLrVX0DOv6acNw4PWm2GZXQZkf94NM7weAx/RYnFFuWX5/YOEEsoLtQpH8AhHb5tjT729emcfzYxc+ctBZL2gWTkb0a9TiORUHT1h2kx0h1BB+b9t+7uo6rMw+nLaq02xRY4wvm3N/no6g8TiyesNqVoCA5FKHW7qK8stdqUtAn4vUzGEgyEJ602Je/0jkQYj8Y5p70ewHFrH0optu4KcW57AyVuR7i9OXHEUWhr8jEZT3DoqPOinVzRPRShxe/F5SqcvHHASFE5ccHTTPmc09YAQI/DnP+evlG6hyJcuEanfEyc4fwbjYofveibNXqGxgum0sektcZIeQw5LwjYZyz2nrmiDpfguJLXLbuS1eQXaec/hSOcf7vh/PWib/boHiycGn8Tc33CaSkPSEb+5SVuFteW01hV5rhjsHV3iDXNVVNnfxqHOH9/RQkNvjId+WeJeELROxwpqDJPgIbKMkrcQrcDI/+u/lFWNFQiIrT4y+kZdo7zD0/EeLnrqE75zMARzh+gvalSR/5Zon90glhC0Vpgkb/LJbT4vY7M+Xf2h1nZWAlAwGHNbr/fN8BkPKG7emfgGOefLPccdWSZX7YxHUchnkIH/OWOW+ycjCU4dGSMlQ2G86/xOuoYbN3dR0Wpm9OX6xLP6TjG+bc3+RiOxAiNTlhtSsFTiDX+JgG/13Fpn4NHxkgoWGFG/n4voxMxRiJRiy3LPUoptuwKcU5bA2Ue50p5p8JRzh9gr877LxhTGbO1wHL+kIz8e4cjJBLOOQPsNNKdKxuS/wMtZsmrA6L/zv4wh4+O6yqfFDjG+U+Ve2p1zwXTMzROmcdFbQHKA7TWeInGFf1h55wBmlLOyxuORf7gDOe/ZVdSxVNLOhyPY5x/wO+lotStK36yQPdQhNaa8oIUBnNio1dXf5gGXyn+8uSPtSnx0OOA9NeWXX20NVaypK7CalNsh2Ocv4gkF311xc+CCQ6OTzmQQuNY1Fv8js+kMxSeSvkANFd7ESn+yH98Ms6LXUe4cHXKQYGOxzHOH5J5f53zXzjBoQiBmsJ2/k6aZtXZH2aFkfIBKPW4aPCVFX3FzwudA0zGEjrfPwuOcv5tjZUEhyKMTsSsNqVgicUT9I1MFJSU83TqKksp87gc0+Q0HInSPzoxVeljYiqcFjNbd4fwlrg4Y0Wd1abYEkc5/2MjHXX0P19CoxPEE6pgI38RcdRQF1PQbWXDO51/S3Xx1/pv2dXH2Svr8ZboEs9UONL569TP/DHTJYWm6zOdFgdEvSZmpc/KFJF/Mfc77O8Ps39gjIvW6Hz/bDjK+S+tq8TtEr3ouwCmxjcWaNoHktPHnKJq2dkfxiUcV+3S4i9nJBIr2hSoOahdl3jOjqOcf6nHxbL6Ch35L4CeAhzfOJNAjZfekWT6qtjpDI2ypK7iuO5W88ytWFM/W3b1sby+Yqq3QXM8jnL+YGj86EavedM9GKGi1E11eU7HP+eUgL+ceEIRGin+Rq+uGZU+Ji1F7Pwj0TjPdw7olM8cOM75tzf52N8fJqpHOs6L4NA4LX5vQTZ4mUyVexZxzhuSujazOf/WKYmH4jsGL3UdIRJN6JTPHDjP+Tf6iCUUB4+MWW1KQdI9FCnolA84p8u3d3iCsck4Kxt9xz3WVF0GFGfkv2VXiFKPi7NW1lttiq1xnPNv0xU/C6IQxzfOxCnjHDv7TUG34yN/b4mb+srSKZG+YmLr7j7OXFFHeaku8TwRznP+Rsmbdv6ZEzUavAptgtdM/OUllJe4i77c0yzzTJX2gWTev9j0fQ4dGWNfKKzz/WngOOdf5S2hubpMl3vOg97hCEoVdo0/HGv0KvrIPxTGW+KaVYepGLt8zRJPLekwN45z/pBc9NXqnplzbIJXYTt/SJZ7Fru+T3Kx14fLlXpxvsXvLTqZiy27QiyuLU+Z6tK8E0c6f7PcU490zIxgAQ9xmYkTxjl29YdP6AQD/nIGx6KMT8bzaFXumIjF+f2+fi5a01jQ1Wj5wpHOv73Jx+hEjN7h4q/zziZmV2wxRP6tfi99IxFiRVryG40nOHhkbNZ8P0xr9CqS6P/V/UcZm4xrCec0cabzn5rqpVM/mRAciuAr81DlLbwJXjNp8ZeTUNBbpI1eB4+MEU+o4zR9pmM2ehWL1MWW3SFK3S7OadMlnungSOevyz3nR/dg4Zd5mpiqpMXi+GZiqnmeOPIvrlm+W3eFeO+KWirLCrf7PJ840vk3VZVRVebRzj9DeoYjBV/madJaZI5vJlNqng3HN3iZTI1zLIK0T/fgOLt6R3RXbwbkxfmLiFtE/iAim437dSLypIjsMa5r82HHNHtY2aRHOmZK92CE1mKL/Iu03LOzf5T6ylL8FbOn6MpL3dRUlBTFMThW4qnz/emSr8j/BmDntPu3AE8ppVYBTxn380p7ox7pmAkTsTj9oxNTeeJCp6rMQ2Wpu2jLPTtDqTV9ZlIsVU9bd4UI+L2sapr9TEfzTnLu/EVkMXAZcN+0zVcADxi3HwD+LNd2zKStqZK+kQmGI9F877og6R1KLowWuq6PiYgQqCkviqg3FbMJus2kGBq9ovEEz+3VJZ6Zko/I/y7gq8D0mrpmpVQQwLjO+7naVMWPjv7TYmqIS4GOb0xFwF+cowxHIlH6RiZSCrrNpKUIjsFrB44yMhHTJZ4ZklPnLyIfBvqUUq/O8/XXicgrIvJKKBTKqm3mSEet7Z8ex7p7iyPyh+RZTDEKm+3vTyrWphX5V3sZCE8SiRZuo9eW3SE8LuHcdl3imQm5jvzPBS4Xkf3AT4D3ich/Ab0iEgAwrvtSvVgpdY9SaoNSakNjY3ZX8ZfWVVDiFp33T5PuoeJp8DJp8XvpH51gMlZcjV5Tap4nqPE3Mddwegu44mfLrhCnL6stiv6TfJJT56+U+jul1GKl1HLgL4HfKaWuAh4BrjaedjXwcC7tSIXH7WJ5faV2/mnSMxSh2uspqhrq1hovShW240tFZyiMCCyrr5jzuYVe6987HGFncJgLtZBbxlhV5387cImI7AEuMe7nnbZGH5263DMtugcjRaHpM51Cd3yz0dUfZnFt+XFze1NR6OMcp0o8db4/Y/IWximltgBbjNsDwMZ87Xs22pt8PLmzl8lYglKPI/vd0iZYBENcZlKsQ11MNc90MP+mhfoDuHV3iKaqMk4KVFltSsHhaI/X3uQjnlAcGNCLvnMRHIrQUkSLvcDU5ymmWn+lFJ2h0bQljSvLPFR7PQU51CUWT7Btd4gLV+sSz/ngaOff1qg1ftIhEo1zJDxZNN29JkmRusJ0fLMRGpkgPBlPa7HXJFCgVU/bDw0yHInprt554mjnv1KPdEwLMx9cLLo+0ym2cs/OOUY3pqJQa/237g7hEjivvcFqUwoSRzv/yjIPrX6v1viZg2Is8zRpKbJxjp1G30o6DV4mhdrlu2VXiPcsrT2hfpFmdhzt/CEp77xXO/8TEhwsnvGNM2mt8U59vmKgq3+UMo+LwCxze1NRiP0O/aMTvPn2kJ7VuwC082/0sa8vTCKhRzrOhin5W0zdvSYBf3nBd7hOx9T0mW1ubypMvaZC6nd4xijx1JIO88fxzr+9ycd4NE6wgL74+aZ7cJzaihLKS+euGy80AkXQ4TqddNU8p9NSgOMct+wK0eAr5V2t1VabUrBo59+kBd7mohjLPE0CRVTuac7tzaTSB479AHYXyFSzeEKxbU+IC1Y1ZnSGo3knjnf+utxzbroHx4uuzNOkmIa6HD46Tiyh0m7wMim0Lt83Dg9ydCyqJR0WiOOdf4OvFH95iV70PQHJ8Y3F6fyLaZyjKVWSadqnyluCr8xTMMdgy64QInDBKu38F4Ljnb+I0NZYqdM+szA+GWdwLFqUi71QXKMMzbm9bRmmfaCwav237g6xbnENtZWlVptS0Dje+UMy769r/VNTzDX+Ji3VxVHu2dkfpraihJqKzJ1iwO8tiKKHI+FJXj88qEs8s4B2/iTz/v2jkwyOTVptiu04VuNfnJE/QGtNcXT5doZGM075mCSnmtn/7GfbnhBKwYWrtfNfKNr5M32ql47+Z2KmQ1qLNOcPheP45qKrP5xRZ+90Wvzl9I1MEI3bu9Fr664QtRUlvHtxjdWmFDza+TO93FOre87EXARszqBjtNBorSnn6FiU8cnCbfQKT8ToHZ5YUOSvFPSNTGTZsuyRSCi27g5xwepG3LrEc8Fo5w8srq2g1OPSFT8pCA6NU19Zirek+Bq8TFqqC7/c01zsTVfKeSbHyj3tewz+2D3MQHhSp3yyhHb+gNslrGzQIx1T0T1YvGWeJsdq/Qs372+qec437VMIQ1227EqO+r5AO/+soJ2/QVujrvhJRc9QpKgXe6E4av27Mpjbm4pAdfIY2Lncc+vuEO9e7KfBV2a1KUWBdv4GbU0+Dh0ZKxqBr2zRPVS83b0mZsojWCDyBqno7B+l1V8+7/RcdbmHilK3bX8Ah8aivHbwqE75ZBHt/A3am3wkFOzXIx2nGJ2IMRKJFa2uj4m3xE1dZWlBl3smK33ml++HZLOjnRu9tu0NkVDo+v4sop2/QZue6nUcPQ4o8zQJFPBQF6UUXaHwvBd7TQJ+71RTn93YuitEtdfDOl3imTW08zdY2eBDRJd7TqfbAQ1eJgF/uW2j3rkIjU4wMhGbd5mnSUu1PY+BUskSz/NXN+Jxa5eVLfSRNCgvdbOoplyXe04j6ABpB5PWGm/BSBrPpGseoxtTEfB76RuZIGazRq+dwRH6Ria4SOf7s4p2/tNob/LptM80ugcjiBR3g5dJi9/LcCRGeCJmtSkZ0zWPoe2paPF7iScU/aP2kjnZsjtZ4qkXe7PLnM5fREZEZDjFZUREhvNhZL5oa/TRGRrVIx0NeoYiNPjKKPUUf4xQyOWenf1hSj0uWmsWlp5rtelsgy27QpwcqKbJAUFIPpnzv1opVaWUqk5xqVJKFdUMtfYmHxOxBG8X6Ol/tnFCmafJsSanwvvbd4bCrKivXLDkQYsNa/2HI1FeO3BUD27JARmHdCLSJCJLzUsujLIKU+NH5/2TBB3Q4GViRs2FKO3c1T9/Nc/pTI1ztJHz//3efmIJpfP9OSBt5y8il4vIHqAL2ArsBx7LkV2WYI501INdkhUWwcHxqQaoYqepOtk1atdSx9mIGXN7Vyygxt+kpqKEMo/LVvo+W3eHqCrz8J5ltVabUnRkEvn/M3AWsFsptQLYCDyXE6ssoq6ylLrKUi3zAIxMxAhPxh1R4w9Q5nHT4CuzVcojHQ4fHScaVwuu8Ydko1ey38Eex0ApxZZdIc5tb6BEl3hmnUyOaFQpNQC4RMSllHoaWJ8bs6yjrVELvIEzhrjMpLXGa6uURzpMqXlmIfIHe41z3N07SnAoort6c0Qmzn9QRHzAM8CDIvIdoPDq4uZAl3sm6XZQd69JwO8tOH2fzqkyz4XV+JsE/OW2ifyf2R0C0Iu9OSIT538FMA58EXgc2Af8aS6MspK2Rh9Hx6IcCdur1jnfmJF/sev6TMdOji9dOkOj+MtLqK0oycr7Bfxeeocjtih3fv3wIItryx119plP0nb+SqmwUiqulIoppR5QSt1tpIFmRUS8IvKSiLwuIn8Uka8b2+tE5EkR2WNc22Y1p82s+HF49N8zNI5LoLnKOfK5Ab/XELOLWm1K2piCbiLZmWwV8HuJJRT9YesnenX0jHBSoKiqyW1FOk1ezxrXM5u90mnymgDep5RaR3J94FIROQu4BXhKKbUKeMq4bwvaG/U8X0iW+zVVeR2lpRKoKbxGr67+cFbKPE3MMz2rS14j0TidoVFOaqmy1I5iJp0mr/OM65nNXnM2eakkphctMS6KZArpAWP7A8CfzfcDZJtFNeV4S1yOj/yDQ+NFP8FrJmZDW6Fo/IxNxggORbJS6WNil4lee/tGSShYqyP/nJFWWCciLhHZMZ8diIhbRLYDfcCTSqkXgWalVBDAuG6a5bXXicgrIvJKKBSaz+4zxuUSVjboqV7BwYgjBN2m02ITx5cuXQsc3ZgKu8zy3RlMJhXW6sg/Z6Tl/JVSCeD1+XT0GusE64HFwBkickoGr71HKbVBKbWhsTF/K/5tDq/4UUo5qrvXpLnai0jhOf9spn3qKkopdbsIDlt7DDp6RvCWuFhWn73PpnknngyeGwD+KCIvAVOi90qpy9N5sVJqUES2AJcCvSISUEoFRSRA8qzANrQ3+tj8Rjfjk3HKS+c3Fq+QGRqPMh6NOy7yL3G7aKoqK5hyz05Dynl5Fh2ky2WPiV4dPcOsaa5asF6RZnYycf5fz/TNRaSRZHPYoIiUA38CfBN4BLgauN24fjjT984l7U0+lErORX1Xq99qc/KOOcRloSqRhUghlXt29YdZVFOe9QClxeIuX6UUO4MjXHJSs2U2OIFMSjk+pJTaOv0CfGiO1wSAp0XkDeBlkjn/zSSd/iWGVtAlxn3b0Nbk7JGOprKlU3R9pmPnUYYz6cxypY+J1SMtQ6MTHAlPsjag8/25JBPnf0mKbR880QuUUm8opU5TSr1bKXWKUupWY/uAUmqjUmqVcX0kE6NzzfL6SlwC+0LOHOloRn2tDsv5w7FxjkpZ3+R0IpRSdIayo+Y5kxa/l96hCcsavTqCIwCsbdGVPrkknTr/vxWRN4E1IvLGtEsX8EbuTcw/3hI3S+oqHKvuGRwax+MSGh3U4GXSWuNlbDLO8Li9lUsGwpOMRGJZ0/SZTqDay2Q8wZExa7rcO3p0pU8+SCfn/yOS0s3/D+9sxhqZHrGLSK1S6miW7bOM9kbnlnsGByM0V3sdudhmVjh1D43jz5JkQi7IRaWPidnoZU5yyzcdwRGaq8uorSzN+76dRDpNXkNKqf1KqU1KqQPTLjNTNU/lyEZLaGvy0dkfJm4DjZN80z3kHB3/mbQUyESvTiMwWZklQbfpWN3o1dEzolM+eSCTap+5KKowsb3Rx2QswaEjYyzPQXRlZ3qGIpyyyHlVTjB9jq29K346+8OUul0sql34ukw0GuXw4cNEIsnP7E4o7r08QM1kHzt35nc5TinFl86oxFfmYefOnXndd6Hj9XpZvHgxJSXpnbFm0/kXVYhsCrztC406yvmbDV7vf1eL1aZYQlNVMt1ltbbNXHSFwiyrr8hKau7w4cNUVVWxfPlyRASlFOrtYRqqSvPe6BeJxon1jrCkroLaCp32SRelFAMDAxw+fJgVK1ak9RrnqHZliCnw5rRyzyPhSSZiCcc1eJm4XUJzVZntyz2zWeYZiUSor6+fUgYVEUrcQiye/3guEo0DyaILTfqICPX19VNnb+mQTedfVGkff0UJDb4yxy36mukOpzp/MJqcbBz5xxOKAwPhrGr6zJSELnG7mIwnsvb+6TIejSMilHl0XJopmcp6Z5T2ERE30Dz9dUqpg8bNjRntuQBw4kjHY87feTX+JoGact7qnkut3DrezuLc3tkocQvjRhSeTyLRBGUeF64szSfQzE7aP68i8nmgF3gSeNS4bDYft1ujVjZob/KxLxS2fcNPNjGrXJwm5zydVr+X7sFx2/7d9/UnA5IVOajxNylxu4jGVd6PQSQap9xI+dx1112MjY3ldf8A+/fv50c/+tHU/fvvv5/rr78+a+//hS98gX/+53+euv+Nb3yDz33ucwA89thjbNiwgZNOOom1a9fyla98BYBdu3Zx0UUXsX79ek466SSuu+66BduRSeR/A7BmruldxUR7k4+h8Sj9o5OOaXjqHoxQ4hYaKp3xeVMR8JczEUtwdCxKnQ1rzbuMzvPcRv4uEkoRTyg87vxE4bF4gmg8gbckGZPeddddXHXVVVRUVORl/yam8/+rv/qrrLxfPB7H7T62hnHbbbexfv16Pv7xjyMi3HffffzhD39gx44dXH/99Tz66KOsXbuWWCzGPffcAyR/ML74xS9yxRVXAPDmm28u2K5MEmuHgKEF77GAaHPgom/P0DjN1V5cDmzwMgnYvNa/qz9MtdeT0x+mEsPhR/Ow6BsOh7nssss47bT1/PnGs3n0v3/B3XffTXd3NxdffDEXX3wxAE888QRnn30273nPe7jyyisZHU3+Xy5fvpybb76ZM844gzPOOIO9e/cC8LOf/YxTTjmFdevWccEFFxy3X6UUN910E6eccgqnnnoqDz30EAC33HIL27ZtY/369fzrv/4rAN3d3Vx66aWsWrWKr371q1PvcSKbbr31Vs477zx+9rOfvWO/1dXVfOMb3+D666/nc5/7HLfeeis1NTXccccdfO1rX2Pt2rUAeDwePvvZzwIQDAZZvHjx1HuceuqpCz7umUT+ncAWEXmU5HhGAJRSdy7YCpvSPq3c8+y2eoutyQ/dQxFHavpMZ2qc42DElqqunf2jrGj0ZW1u73S+/j9/5K3uYRJKMT4Zx1viXnA56cmt1fzff/quWR9//PHHaW1t5YGHfkn34DitFYqGulruvPNOnn76aRoaGujv7+e2227jt7/9LZWVlXzzm9/kzjvv5B//8R+BpEN96aWX+OEPf8iNN97I5s2bufXWW/nNb37DokWLGBwcPG6/v/zlL9m+fTuvv/46/f39vPe97+WCCy7g9ttv59vf/jabNyez2vfffz/bt2/nD3/4A2VlZaxZs4bPf/7zlJeXn9Amr9fLs88+m/Izb9q0ibvvvhu3280nPvEJAHbs2MGXv/zllM//4he/yPve9z7OOecc3v/+9/PJT36SmpqadP8EKckk8j9IMt9fClRNuxQtAb+XilK3oyJ/J45vnEmr3SP/UJi2HPeeiFG8l4+c/6mnnspvf/tb/vFrf8frL79AfW3Ncc954YUXeOuttzj33HNZv349DzzwAAcOHJh6fNOmTVPXzz//PADnnnsu11xzDffeey/x+PGL188++yybNm3C7XbT3NzMhRdeyMsvv5zSxo0bN+L3+/F6vZx88skcOHBgTps+9rGPzfqZDx8+TE9PD93d3VNnCyfik5/8JDt37uTKK69ky5YtnHXWWUxMTMz5uhORduSvlMpYz7/QERHaHKTxk0goeoYijpV2MKn3leFxCd027PIdn4zTPRTJiaYPMBWhK6XY8fYwjVVlOf8+rF69mldffZUf/OSXfOf2r9P15ktT0bOJUopLLrmEH//4xynfY/pZkHn7u9/9Li+++CKPPvoo69evZ/v27dTXHzuDz+SHrazs2BqY2+0mFovNaVNl5ex/oxtuuIF/+qd/YufOnXz961/nW9/6Fu9617t49dVXWbduXcrXtLa2cu2113LttddyyimnsGPHDk4//fS0P8NM0lH1vMu4/h8ReWTmZd57LhDaGisdo+45EJ4kGleOT/u4XUJztfXTrFIxJeiWw0ofSDpQj1uI5qHWv7u7m/Lycj5wxZV89gs38tprrwFQVVXFyEhS3vmss87iueeem8rnj42NsXv37qn3MPP1Dz30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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "ax = other_metrics[\"steps_in_trial\"].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps_in_trial\")\n", - "ax.legend([\"steps other XCS\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEGCAYAAACUzrmNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAueUlEQVR4nO3deXxV9bnv8c+TBAhDEmYZAoKIVlSqklKHVlFrHWrBtlcvHq1Y6+Vqsa2e2orX03r6qtyrldpWe9Wjp4Ba61BHqkevrdVqVaQgyKiCihpJZNDsMGQHkjz3j7VCNmEn2Ql7zvf9eu3XXuu31tr7ScT15Ld+k7k7IiIi7SnIdAAiIpL9lCxERKRDShYiItIhJQsREemQkoWIiHSoKNMBpMrgwYN9zJgxmQ5DRCSnLF26dIu7D2ldnrfJYsyYMSxZsiTTYYiI5BQz+yBeuR5DiYhIh5QsRESkQ0oWIiLSISULERHpkJKFiIh0KGXJwszmmdkmM1vVqvz7Zva2ma02s1/GlF9rZuvDY6fHlE8ys5XhsVvNzFIVs4iIxJfKmsUC4IzYAjM7GZgGTHT3w4G5YfkEYDpweHjN7WZWGF52BzATGB++9vpMERFJvZSNs3D3l8xsTKviy4Eb3b0+PGdTWD4NeDAsf9/M1gOTzWwDUOrurwGY2b3AOcAzqYo7Fdyd+1//kE210UyHIiLdwPdPHU+PwuTWBdI9KO8Q4MtmNgeIAle7+z+BkcCimPMqw7Ld4Xbr8rjMbCZBLYTRo0cnN/L98HFNHf/2RPA0Tg/RRCTVvnfywfQo7Pi8zkh3sigCBgDHAl8AHjazg4B4t1Bvpzwud78LuAugoqIia1Z1qooENYp7L5nMiYfsM4peRCTrpbs3VCXwmAcWA03A4LB8VMx55cDGsLw8TnlO2VhTB8DwsuIMRyIi0jXpThZPAKcAmNkhQE9gC7AQmG5mvcxsLEFD9mJ3rwK2mdmxYS+oi4An0xzzfqsOaxbDlCxEJEel7DGUmT0ATAEGm1klcD0wD5gXdqfdBczwYBHw1Wb2MLAGaABmuXtj+FGXE/Ss6k3QsJ1TjdsQPIbq16uIkuIemQ5FRKRLUtkb6vw2Dl3YxvlzgDlxypcARyQxtLSrjkRVqxCRnKYR3GlQVRtVe4WI5DQlizSoqqlTshCRnKZkkWK7G5vYvL2eYWW9Mx2KiEiXKVmk2KZt9bir26yI5DYlixSrjgRjLNTALSK5TMkixZpHb4/QYygRyWFKFilWVaMBeSKS+5QsUqwqEqVPz0JKi9M9DZeISPIoWaRYdW0dw8qK0ZpNIpLLlCxSrCqiAXkikvuULFKsOhJluBq3RSTHKVmkUENjE5u21atmISI5T8kihTZvr6exydUTSkRynpJFCjWPsVDNQkRynZJFCu1Z9KhUbRYiktuULFJoz+jt/qpZiEhuS1myMLN5ZrYpXBWv9bGrzczNbHBM2bVmtt7M3jaz02PKJ5nZyvDYrZZDAxaqI3UU9yigrLdWyBOR3JbKmsUC4IzWhWY2CjgN+DCmbAIwHTg8vOZ2MysMD98BzCRYl3t8vM/MVhvDbrM5lN9EROJKWbJw95eAT+Mc+jXwE8BjyqYBD7p7vbu/D6wHJpvZcKDU3V8L1+q+FzgnVTEnW3UkyrBSPYISkdyX1jYLM5sKfOzub7Y6NBL4KGa/MiwbGW63Ls8J1Rq9LSJ5Im2z25lZH+A64KvxDscp83bK2/qOmQSPrBg9enQXokyexibnk9oow9W4LSJ5IJ01i3HAWOBNM9sAlANvmNkwghrDqJhzy4GNYXl5nPK43P0ud69w94ohQ4YkOfzO2bq9noYm13KqIpIX0pYs3H2luw919zHuPoYgERzj7tXAQmC6mfUys7EEDdmL3b0K2GZmx4a9oC4CnkxXzPtjY/OAPLVZiEgeSGXX2QeA14BDzazSzL7b1rnuvhp4GFgDPAvMcvfG8PDlwH8SNHq/CzyTqpiTScupikg+SVmbhbuf38HxMa325wBz4py3BDgiqcGlgab6EJF8ohHcKVIdidKzqICBfXtmOhQRkf2mZJEizYseaUCeiOQDJYsUqYrUaUCeiOQNJYsU0XKqIpJPlCxSoCkckKcxFiKSL5QsUmDrjl3sbnTVLEQkbyhZpEC1us2KSJ5RskiBjeGAvOF6DCUieULJIgX2LKeqmoWI5AklixSoikTpUWgM0oA8EckTShYpUB2p44DSYgoKNCBPRPKDkkUKVEWijFB7hYjkESWLFKiKRNVeISJ5Rckiydxdy6mKSN5RskiyT3fsYldjk2oWIpJXlCySTOtYiEg+UrJIspbR22rgFpH8kcplVeeZ2SYzWxVTdrOZvWVmK8zscTPrH3PsWjNbb2Zvm9npMeWTzGxleOxWy/IFIqpqVbMQkfyTyprFAuCMVmV/AY5w94nAO8C1AGY2AZgOHB5ec7uZFYbX3AHMBMaHr9afmVWqauooKjAG9euV6VBERJImZcnC3V8CPm1V9py7N4S7i4DycHsa8KC717v7+8B6YLKZDQdK3f01d3fgXuCcVMWcDNWRKAeUFlOoAXkikkcy2WZxCfBMuD0S+CjmWGVYNjLcbl0el5nNNLMlZrZk8+bNSQ43MRpjISL5KCPJwsyuAxqA+5uL4pzm7ZTH5e53uXuFu1cMGTJk/wPtgupajbEQkfyT9mRhZjOAs4ELwkdLENQYRsWcVg5sDMvL45RnJXenKlKnZCEieSetycLMzgCuAaa6+86YQwuB6WbWy8zGEjRkL3b3KmCbmR0b9oK6CHgynTF3Rs3O3UR3N2k5VRHJO0Wp+mAzewCYAgw2s0rgeoLeT72Av4Q9YBe5+2XuvtrMHgbWEDyemuXujeFHXU7Qs6o3QRvHM2QpDcgTkXyVsmTh7ufHKf59O+fPAebEKV8CHJHE0FKmujZYIU8N3CKSbzSCO4maaxaanlxE8o2SRRJVR6IUFhhDSjQgT0Tyi5JFEm2siTK0pJcG5IlI3lGySKLq2jq1V4hIXlKySKIqLXokInlKySJJmlfIG1aqxm0RyT9KFklSG21g565GRvRXzUJE8o+SRZJURTTGQkTyl5JFkmj0tojkMyWLJGleTlXzQolIPlKySJKqSBQzGKoBeSKSh5QskqQ6UsfQkl70KNSvVETyj+5sSRKskKdHUCKSn5QskqQqEmV4qRq3RSQ/KVkkSbXW3haRPKZkkQTborvZXt+gbrMikrdSlizMbJ6ZbTKzVTFlA83sL2a2LnwfEHPsWjNbb2Zvm9npMeWTzGxleOzWcHnVrNLcbXZ4f7VZiEh+SmXNYgFwRquy2cDz7j4eeD7cx8wmANOBw8NrbjezwvCaO4CZBOtyj4/zmRm3UQPyRCTPJZwszKzQzEaY2ejmV3vnu/tLwKetiqcB94Tb9wDnxJQ/6O717v4+sB6YbGbDgVJ3f83dHbg35pqsUd081YcauEUkTyW0BreZfR+4HvgEaAqLHZjYye87wN2rANy9ysyGhuUjgUUx51WGZbvD7dblbcU5k6AWwujR7eaypGqe6uMAJQsRyVMJJQvgh8Ch7r41RXHEa4fwdsrjcve7gLsAKioq2jwv2aojUQb360XPIvUXEJH8lOjd7SMgkoTv+yR8tET4viksrwRGxZxXDmwMy8vjlGeVqkhUU5OLSF5LNFm8B7wY9lj61+ZXF75vITAj3J4BPBlTPt3MepnZWIKG7MXhI6ttZnZs2Avqophrskaw6JGShYjkr0QfQ30YvnqGrw6Z2QPAFGCwmVUStHncCDxsZt8NP+9cAHdfbWYPA2uABmCWuzeGH3U5Qc+q3sAz4SurbIzUcexBAzMdhohIyiSULNz95wBmVhLs+vYErjm/jUOntnH+HGBOnPIlwBGJxJkJ2+sb2BZt0LxQIpLXEnoMZWZHmNkyYBWw2syWmtnhqQ0tN1RrjIWIdAOJtlncBfyrux/o7gcCPwLuTl1YuUPJQkS6g0STRV93f6F5x91fBPqmJKIc07z29nA9hhKRPJZoA/d7ZvZT4L5w/0Lg/dSElFuaB+QNLdUKeSKSvxKtWVwCDAEeAx4Pt7+TqqBySVUkyqC+PSnuUdjxySIiOSrR3lCfAT9IcSw5qTpSp3UsRCTvtZsszOw37n6lmf2ZONNsuPvUlEWWI6oiUcoH9Ml0GCIiKdVRzaK5jWJuqgPJVdW1Ub4wRgPyRCS/tZss3H1puHmUu/829piZ/RD4e6oCywV1uxqp2blbj6FEJO8l2sA9I07ZxUmMIye1dJtVshCR/NZRm8X5wL8AY81sYcyhEiBV05XnjOYBeapZiEi+66jN4lWgChgM/CqmfBuwIlVB5YqqPaO3NSBPRPJbR20WHwAfAMelJ5zcUl2rqT5EpHtIdCLBY83sn2a23cx2mVmjmdWmOrhst7GmjgF9emhAnojkvUQbuH8HnA+sI1hX4lLgtlQFlSuqI1FNTS4i3UKic0Ph7uvNrDBclGi+mb2awrhyQlUkqkdQItItJJosdppZT2C5mf2SoNG72886W10b5ajR/TMdhohIyiX6GOrbQCFwBbADGAV8q6tfamZXmdlqM1tlZg+YWbGZDTSzv5jZuvB9QMz515rZejN728xO7+r3JlN0dyOf7tjFCNUsRKQbSHQiwQ/CzTrg5/vzhWY2kmBSwgnuXheuvT0dmAA87+43mtlsYDZwjZlNCI8fDowA/mpmh8Ss0Z0RLWMs1GYhIvmvo0F5K4kzgWAzd5+4H9/b28x2A32AjcC1wJTw+D3Ai8A1wDTgQXevB943s/XAZOC1Ln53UlRphTwR6UY6qlmcnewvdPePzWwu8CFBTeU5d3/OzA5w96rwnCozGxpeMhJYFPMRlWHZPsxsJjATYPTo0ckOfS/VtcFUHxq9LSLdQSKD8pIqbIuYBowFaoA/mdmF7V0SL7R4J7r7XQTrhVNRUdFmjSgZVLMQke4koTYLM9tGyw26J9AD2OHupV34zq8A77v75vCzHwOOBz4xs+FhrWI4sCk8v5KgQb1ZOcFjq4yqjkQp692DPj0T7n0sIpKzEuoN5e4l7l4avooJekL9rovf+SFwrJn1MTMDTgXWAgtpmd12BvBkuL0QmG5mvcxsLDAeWNzF706ajTUaYyEi3UeX/ix29yfCHktdufZ1M3sEeANoAJYRPDrqBzxsZt8lSCjnhuevDntMrQnPn5XpnlAQtFmovUJEuotEH0N9M2a3AKignV5SHXH364HrWxXXE9Qy4p0/B5jT1e9LhepIlCNHlmU6DBGRtEi0ZvH1mO0GYANBI3W3VN/QyJbtuxhWqjEWItI9JDoo7zupDiSXbKqtB2B4fz2GEpHuIdEpyg8ysz+b2WYz22RmT5rZQakOLlup26yIdDeJzg31R+BhYDjBlBt/Ah5IVVDZTmtvi0h3k2iyMHe/z90bwtcf2I8G7lxXpXmhRKSbSbSB+4Wwq+yDBEnivwNPm9lAAHf/NEXxZaXqSJSSXkX066UBeSLSPSR6t/vv4fv/bFV+CUHy6FbtF1WROjVui0i3kmhvqLGpDiSXaDlVEeluEh2U1wO4HDgxLHoR+A93352iuLLaxkiUzw3ryrRYIiK5KdHHUHcQTB54e7j/7bDs0lQElc12NTSxZXu9pvoQkW4l0WTxBXf/fMz+38zszVQElO02bYvirm6zItK9JNp1ttHMxjXvhAPyMj6ZXya0LKeqZCEi3UeiNYsfE3SffS/cHwN0yylAmsdYjOivBm4R6T4SrVm8AvwH0BS+/oMMr4GdKc2jt1WzEJHuJNGaxb1ALfCLcP984D7CNSe6k6pIlL49CynRgDwR6UYSveMd2qqB+4Xu2sAdjLEoJljkT0Ske0j0MdQyMzu2ecfMvkjwaKpLzKy/mT1iZm+Z2VozO87MBprZX8xsXfg+IOb8a81svZm9bWand/V7k6EqEmW4BuSJSDeTaLL4IvCqmW0wsw0E7RUnmdlKM1vRhe/9LfCsu38O+DzBGtyzgefdfTzwfLiPmU0ApgOHA2cAt5tZYRe+MymqI1p7W0S6n0QfQ52RrC80s1KCkeAXA7j7LmCXmU0DpoSn3UMwSvwaghX5HnT3euB9M1sPTCYDDewNjU1s2qZkISLdT6JzQ32QxO88CNgMzDezzwNLgR8CB7h7Vfh9VWY2NDx/JLAo5vrKsGwfZjYTmAkwevToJIYc2LStnibX1OQi0v0k+hgqmYqAY4A73P1oYAfhI6c2xGtJjruWhrvf5e4V7l4xZMiQ/Y+0Fa2QJyLdVSaSRSVQ6e6vh/uPECSPT8xsOED4vinm/FEx15cDG9MU6140eltEuqu0Jwt3rwY+MrNDw6JTgTXAQmBGWDYDeDLcXghMN7NeZjYWGA8sTmPIezQPyBuhx1Ai0s1kamTZ94H7zawn8B7B1CEFwMNm9l3gQ8IBf+6+2sweJkgoDcAsd8/IvFRVkSi9exRS2lsD8kSke8nIXc/dlwMVcQ6d2sb5c4A5qYwpEc3dZjUgT0S6m0y0WeSsqkid2itEpFtSsuiE5qk+RES6Gz18T1Bjk/PJtno1boukiztEI7BzK+zYAju3xLxvjbO/FQqKYNA4GDweBh0cvJq3e/bN9E+U05QsErR5Wz2NTa6ahcj+2rUTNi6DHZvbv/Hv3ApNu+N/Ro++0HcQ9BkM/Q6AoYcH+w27YOs6+PB1WPkIew3JKh0ZkzzCBDL4YCgbBQUZm0EoZyhZJKi526wG5Il0QeNueO9FWPkneOtp2LV97+PFZcGNv+9gGDAGyie17PcZ3JIY+gwKynokUMPfXQefvgdb1gUJZMv64H3Fn6A+0nJeYa+gNhIvkfQe0PbndzNKFgnSgDyRTmpqgo9eDxLEmieCmkJxfzjiW/C5rwV/6fcNE0Bhj+R/f4/ecMDhwSuWe1Cr2bp+70SyaQ28/V/Q1NBybp/BQQIZcTQceAIceDz0GZj8WHOAkkWCWqb6UJuFSJvc4ZNVQYJY+SjUVkJRb/jcWXDkuTDuVCjqmdkYzaDf0OB14PF7H2vcDZ99ECaQMJFsfgeWzINFtwfnDJ0QJI4xJwTv/Ybu+x15SMkiQdW1UXoVFTCgTwr+AhLJdZ++FySHlX+CLW8HDc3jToWv/Dsceib06pfpCBNT2CN4/DT44CDuZg318PEb8MErwWv5H+GfdwfHBo0PE8eXguRTFnee05ynZJGgjTV1GpAnEmtbNax+PEgQHy8Nyg48AY69DA6bFrQz5IuiXnDgccGLq4MaSNWbQeLY8AqsegyWLgjOHTAmSBxjwsdW/Q8MajPp4A67d6ak55eSRYI0xkLSrqkJvBGaGlu9xytvgh59oHf/4MaWKnU1sPbPQYLY8HLwvcMmwmm/gCO+CWXlqfvubFLYA8orgtcJPwz+G1SvhA9eDRLI20/D8j8E55aWtzyyOvCEoDE9keThDvW1Yc+wz4L3uk9h56cx21uD/brPWrYb6+GnW5LeDqRkkaCqSJTJY7tnw5Z0Uv12qP04eEU+htqNLfu1G4Mbboc3//2Y/qxH36AXT+8BQfLYsx1vP+bVo0/8m9juOnjn2aAr6rrnoHEXDDwITvwxHPHfYMghXY81XxQUwoijgtdx3wv+m25eGySPDf+Ad/8GKx4Kzu03LKhxlH8haEzfKwl82pIE6j7bu7E9lhVA74FBY3vvgUHtZcRRYdmg4N+QkkX6NTU5n9SqZiFA/bbghh+p3DcJNCeG2G6ZzfoOCXr/DBgLIwYEN5eCQrDY94JW++2VF+y7v3tncIOpqwlfnwWvLevC7U+DG31bCnvum0CsIOjyumt7cJP7wv+AI78FI45J36OVXFRQ0NITa/L/CGoJW9a1tHlseAVWPxae2yO46fcZFNzsBx/SkgT6DNr7WJ/w1ass+I40UrJIwJYd9TQ0OSOULHJLUyM0RIPGyYb6oHreUN9qPxoM5GqIBjfS2P1dO1oSQXNiqK/d93v6DoXSEcHjhbFfDrZLy8P38JXKR0OJcg9qCc1JpPUrWrP3fuSj4HdwxDeDGsSYL2nwWleZBTWwIYdAxXdauu/26A09++VE4lWySEDLGAt1m82Ipsbgf6zajbCtKnyvbtne/klwU2t9s0/GTPZ9hwa9W/YkgpHBq2xkkARKhmdHIkiEGfTsE7zytMdOzmjuvptDlCwSsLFGy6mmTP32mATQ+j1MCNuq973xWyGUDAtu1gMPCnp/FPUKRuMWNb+Kg0crRcVB3/72ju213yvY7tE7NYPFRHKQkkUCqsOpPtRm0Un124Jn+5HK4JHGnuf8zQmhCnZt2/e6XmVQOjxIBIMPadlu/ku+dETQBqBHIiJpk7FkYWaFwBLgY3c/28wGAg8BY4ANwHnu/ll47rXAd4FG4Afu/v/SGWtVbZSehQUM7JPhkafZpLEhuOHHJoPaj/fej7Zq6LXC4GZfMgyGHAoHnRwmghEt7yXDcmcAl0g3ksmaxQ+BtUBpuD8beN7dbzSz2eH+NWY2AZgOHA6MAP5qZoekc2nV6kiUA8p6UVCQ/Y1QSeEeNHZGKoMePs21gtjXto1BH/tYvQcE/ezLRsHo48LtcL+sPEgEqg2I5KSMJAszKwe+RrBU6r+GxdOAKeH2PcCLwDVh+YPuXg+8b2brgcnAa+mKtyoSzf05oZoaw3UBNsP2TcF00Ds2hfubg/fYV0N07+sLewaPf8pGBQ29exJBmAxKR6pGIJLHMlWz+A3wE6AkpuwAd68CcPcqM2vuKjASWBRzXmVYtg8zmwnMBBg9enTSgq2K1HHM6Cybqrh5WP+OLS03+O2b9r3pNyeCnVvZa27/ZgU9guf/fQcHvTOGHBpuHxDWCMJaQd8hae/XLSLZI+3JwszOBja5+1Izm5LIJXHK4tz1wN3vAu4CqKioiHtOZzU1OZ9E6lPfuN386GevhWC2trM4zJZ9//pv1qs0TABDgi6fBx7Xst/86jc0SArF/XOij7eIZFYmahYnAFPN7CygGCg1sz8An5jZ8LBWMRzYFJ5fCYyKub4c2JiuYD/duYtdjU0ML93PZPHhomDumD1LRLZKBDu3tj20v61VwZoXh+kb3vibE0EP9doSkeRKe7Jw92uBawHCmsXV7n6hmd0MzABuDN+fDC9ZCPzRzG4haOAeDyxOV7xJGZD34SKYd3rLfnH/lhW/2lsVrHlhmERWBRMRSaFsGmdxI/CwmX0X+BA4F8DdV5vZw8AaoAGYlc6eUM2LHo3ovx9/rf/thuCv/5kvBDUDDfQSkRyT0WTh7i8S9HrC3bcCp7Zx3hyCnlNpV7W/A/LefymYyvmMG7vP9M0iknfUvaUDVZEoRQXG4L5dmP/HHf42JxhsNuk7yQ9ORCRNlCw6UB2JckBpcdcG5L37PHy0CE78kRqdRSSnKVl0oCpS17UJBJtrFWWj4eiLkh+YiEgaKVl0oDoSZXj/LvRGeudZ2PgGnPTjYFZTEZEcpmTRDncPp/roZM2iqQlemBOsivb581MTnIhIGilZtOOznbupb2hiWGcH5L3152AA3pTZ6iYrInlByaIdzd1mO1WzaGqEF/5PsA7DkeemKDIRkfTKpkF5Wadl9HYnksXqx2HzWvhv8zQdt4jkDdUs2tEyejvBBu7GBnjx/8DQCTDhGymMTEQkvVSzaEdVpI7CAmNwvwQH5K18GLauh/Pu03TeIpJXdEdrR1UkygElvShMZEBe4274+00wbCIc9vXUBycikkaqWbSjOhJNvL1i+R/hsw1w/kNaH0JE8o6SRTuqI1EOG17a8YkN9fDSzTCyAg45vePzRXLU7t27qaysJBptY+EtyRnFxcWUl5fTo0di3fuVLNrQPCDvlM8N7fjkN+6FyEfw9d+qViF5rbKykpKSEsaMGYPp33rOcne2bt1KZWUlY8eOTegatVm0IVK3m7rdjR0/htpdBy//CkYfB+NOSU9wIhkSjUYZNGiQEkWOMzMGDRrUqRqiahZtaO42O7yjFfKWzIdtVfDNu1WrkG5BiSI/dPa/o2oWbUhoQN6uHfCPW2DsiTD2y2mKTEQk/dKeLMxslJm9YGZrzWy1mf0wLB9oZn8xs3Xh+4CYa641s/Vm9raZpaUFuaVm0U6yWHw37NgMJ/9bOkISkRyzcOFCbrzxRgCeeOIJ1qxZk+GIui4TNYsG4EfufhhwLDDLzCYAs4Hn3X088Hy4T3hsOnA4cAZwu5mlfB6N6kgdBQZDS9oYkFe/DV75LRz8FRj9xVSHIyJZoKGhoVPnT506ldmzZwO5nyzS3mbh7lVAVbi9zczWAiOBacCU8LR7CNbmviYsf9Dd64H3zWw9MBl4LZVxVkWiDC0ppqiwjXy66E6o+xRO/l+pDEMka/38z6tZs7E2qZ85YUQp13/98HbP2bBhA2eeeSZf+tKXePXVVxk5ciRPPvkkZ555JnPnzqWiooItW7ZQUVHBhg0bWLBgAU888QSNjY2sWrWKH/3oR+zatYv77ruPXr168V//9V8MHDiQd999l1mzZrF582b69OnD3Xffzec+9zkuvvhiBg4cyLJlyzjmmGP49re/zWWXXcbOnTsZN24c8+bNY8CAAdx6663ceeedFBUVMWHCBB588EEWLFjAkiVL+Jd/+RcWLlzI3//+d2644QYeffRRzj33XN544w0A1q1bx/Tp01m6dGlSf5/JlNE2CzMbAxwNvA4cECaS5oTS3Gd1JPBRzGWVYVm8z5tpZkvMbMnmzZv3K7aq9gbk1dXAa7fBoWfByEn79T0i0nnr1q1j1qxZrF69mv79+/Poo4+2e/6qVav44x//yOLFi7nuuuvo06cPy5Yt47jjjuPee+8FYObMmdx2220sXbqUuXPn8r3vfW/P9e+88w5//etf+dWvfsVFF13ETTfdxIoVKzjyyCP5+c9/DsCNN97IsmXLWLFiBXfeeede33/88cczdepUbr75ZpYvX864ceMoKytj+fLlAMyfP5+LL744eb+gFMhYbygz6wc8Clzp7rXttMzHO+DxTnT3u4C7ACoqKuKek6iqSB2HHFAS/+Br/xeiEdUqpFvrqAaQSmPHjuWoo44CYNKkSWzYsKHd808++WRKSkooKSmhrKyMr389mJLnyCOPZMWKFWzfvp1XX32Vc89tWVagvr5+z/a5555LYWEhkUiEmpoaTjrpJABmzJix55qJEydywQUXcM4553DOOed0+DNceumlzJ8/n1tuuYWHHnqIxYsXd+I3kH4ZqVmYWQ+CRHG/uz8WFn9iZsPD48OBTWF5JTAq5vJyYGMq42sekBe3ZrHzU1h0B0yYBsOOTGUYItKGXr1a2hILCwtpaGigqKiIpqYmgH3GD8SeX1BQsGe/oKCAhoYGmpqa6N+/P8uXL9/zWrt27Z5r+vbt22FMTz/9NLNmzWLp0qVMmjSpw/aNb33rWzzzzDM89dRTTJo0iUGDBnX8g2dQJnpDGfB7YK273xJzaCEwI9yeATwZUz7dzHqZ2VhgPJDSFLytvoGduxrj94R65bewaztMuTaVIYhIJ40ZM2bPM/9HHnmkU9eWlpYyduxY/vSnPwHBH4xvvvnmPueVlZUxYMAAXn75ZQDuu+8+TjrpJJqamvjoo484+eST+eUvf0lNTQ3bt2/f69qSkhK2bdu2Z7+4uJjTTz+dyy+/nO985zudijcTMlGzOAH4NnCKmS0PX2cBNwKnmdk64LRwH3dfDTwMrAGeBWa5e2MqA6xua0De9k2w+C444lsw9LBUhiAinXT11Vdzxx13cPzxx7Nly5ZOX3///ffz+9//ns9//vMcfvjhPPnkk3HPu+eee/jxj3/MxIkTWb58OT/72c9obGzkwgsv5Mgjj+Too4/mqquuon///ntdN336dG6++WaOPvpo3n33XQAuuOACzIyvfvWrnY433cx9vx7tZ62KigpfsmRJl6598e1NXDz/nzxy2XFUjBnYcuDZ/wWv3wGzFsPg8UmKVCR3rF27lsMO0x9KyTJ37lwikQi/+MUvMvL98f57mtlSd69ofa6m+4gj7ujt2ipY8nuYOF2JQkT22ze+8Q3effdd/va3v2U6lIQoWcRRFYliBkNLYpLFP26BpgY46SeZC0xE8sbjjz+e6RA6RXNDxVEdiTK4Xy96FoW/npqPYOkCOOoCGJjYdL4iIvlEySKOqtooI2IfQb08N3g/8ceZCUhEJMOULOKoqqlraa/49H1Y9gc4Zgb0H9X+hSIieUrJIo7qSLSl2+xLN0NBEXz5R5kNSkQkg5QsWtkW3c22+oagZrFlPbz5AFR8F0qHZzo0EUmhKVOm0NXu9p1x6623cthhh3HBBRd0+TPSFWss9YZq5ZPamHUs/n49FBXDl67KcFQiks2apxtJxO23384zzzzT7trXnfm8dMmuaLJA86JHBzV9BCsfgRN+CP2GZDgqkSz0zGyoXpnczxx2JJx5Y5uH25qevHfv3kyZMmW/pigH+MMf/sAPfvADamtrmTdvHpMnT2bHjh18//vfZ+XKlTQ0NPDv//7vTJs2jQULFvD0008TjUbZsWPHPuMlbrnlFubNmwcEkwZeeeWVXHbZZbz33ntMnTqVSy65hKuuavlDtPXn/exnP2Pu3Lk89dRTAFxxxRVUVFTsMzvtc889x/XXX099fT3jxo1j/vz59OvXj9mzZ7Nw4UKKior46le/yty5c/frP42SRStVNUGyGLfmNujZL0gWIpI11q1bxwMPPMDdd9/Neeedx6OPPsqFF17Y7jWrVq1i2bJlRKNRDj74YG666SaWLVvGVVddxb333suVV14JwI4dO3j11Vd56aWXuOSSS1i1ahVz5szhlFNOYd68edTU1DB58mS+8pWvAPDaa6+xYsWKPcmm2dKlS5k/fz6vv/467s4Xv/hFTjrpJO68806effZZXnjhBQYPHrxPnLGf9+KLL3b4u9iyZQs33HADf/3rX+nbty833XQTt9xyC1dccQWPP/44b731FmZGTU1NQr/b9ihZtFIViTLBNtBn/VNw4k+gz8COLxLpjtqpAaRSZ6cnh46nKG92/vnnA3DiiSdSW1tLTU0Nzz33HAsXLtzzl3k0GuXDDz8E4LTTTtsnUQD84x//4Bvf+Mae2Wq/+c1v8vLLL3P00Ue3G2dbn9eWRYsWsWbNGk444QQAdu3axXHHHUdpaSnFxcVceumlfO1rX+Pss89O+DPbomTRSnVtHdcUPwY9y+C473V8gYikVevpyevq6gD2a4ryZq3X1TEz3J1HH32UQw89dK9jr7/+eptTl3d1zr3Yz4v9eWDfn6n5e0477TQeeOCBfY4tXryY559/ngcffJDf/e53+z2tiHpDtVK86U1O8iVw/BXQe0CmwxGRBO3PFOXNHnroISCoGZSVlVFWVsbpp5/ObbfdticBLFu2rMPPOfHEE3niiSfYuXMnO3bs4PHHH+fLX/5yp2I58MADWbNmDfX19UQiEZ5//vl9zjn22GN55ZVXWL9+PQA7d+7knXfeYfv27UQiEc466yx+85vf7FmRb3+oZtHKWVvmsb2ghH5fvCzToYhIJ1x99dWcd9553HfffZxyyild+owBAwZw/PHH72ngBvjpT3/KlVdeycSJE3F3xowZs6fRuS3HHHMMF198MZMnTwaCBu6OHkG1NmrUKM477zwmTpzI+PHj414/ZMgQFixYwPnnn79nZb8bbriBkpISpk2bRjQaxd359a9/3anvjkdTlMdqauTdB67GS0Zw8FRN7SHSmqYozy+aoryrCgoZd8H+Z2ARkXyTM20WZnaGmb1tZuvNbHam4xER6U5yIlmYWSHwf4EzgQnA+WY2IbNRiXRP+frourvp7H/HnEgWwGRgvbu/5+67gAeBaRmOSaTbKS4uZuvWrUoYOc7d2bp1K8XFxR2fHMqVNouRwEcx+5XAF1ufZGYzgZkAo0ePTk9kIt1IeXk5lZWVbN68OdOhyH4qLi6mvLw84fNzJVlYnLJ9/rRx97uAuyDoDZXqoES6mx49erQ7AZ7kr1x5DFUJxK48VA5szFAsIiLdTq4ki38C481srJn1BKYDCzMck4hIt5ETj6HcvcHMrgD+H1AIzHP31RkOS0Sk28jbEdxmthn4oIuXDwa2JDGcVMqlWCG34s2lWCG34s2lWCG34t3fWA90930W8cnbZLE/zGxJvOHu2SiXYoXcijeXYoXcijeXYoXcijdVseZKm4WIiGSQkoWIiHRIySK+uzIdQCfkUqyQW/HmUqyQW/HmUqyQW/GmJFa1WYiISIdUsxARkQ4pWYiISIeULGJk45oZZjbKzF4ws7VmttrMfhiWDzSzv5jZuvB9QMw114Y/w9tmdnoGYi40s2Vm9lQOxNrfzB4xs7fC3/Fx2RqvmV0V/htYZWYPmFlxNsVqZvPMbJOZrYop63R8ZjbJzFaGx241s3hzw6Ui1pvDfwcrzOxxM+ufDbG2FW/MsavNzM1scErjdXe9gnabQuBd4CCgJ/AmMCEL4hoOHBNulwDvEKzp8Utgdlg+G7gp3J4Qxt4LGBv+TIVpjvlfgT8CT4X72RzrPcCl4XZPoH82xksw8/L7QO9w/2Hg4myKFTgROAZYFVPW6fiAxcBxBBOIPgOcmaZYvwoUhds3ZUusbcUblo8imNniA2BwKuNVzaJFVq6Z4e5V7v5GuL0NWEtw45hGcKMjfD8n3J4GPOju9e7+PrCe4GdLCzMrB74G/GdMcbbGWkrwP+HvAdx9l7vXZGu8BNPz9DazIqAPwWSaWROru78EfNqquFPxmdlwoNTdX/Pg7nZvzDUpjdXdn3P3hnB3EcGEpRmPta14Q78GfsLes3CnJF4lixbx1swYmaFY4jKzMcDRwOvAAe5eBUFCAYaGp2X65/gNwT/eppiybI31IGAzMD98bPafZtY3G+N194+BucCHQBUQcffnsjHWVjob38hwu3V5ul1C8Jc3ZGmsZjYV+Njd32x1KCXxKlm0SGjNjEwxs37Ao8CV7l7b3qlxytLyc5jZ2cAmd1+a6CVxytL5Oy8iqNrf4e5HAzsIHpW0JZO/2wEEfzGOBUYAfc3swvYuiVOWNf+eaTu+jMdtZtcBDcD9zUVxTstorGbWB7gO+Fm8w3HK9jteJYsWWbtmhpn1IEgU97v7Y2HxJ2G1kvB9U1ieyZ/jBGCqmW0geIx3ipn9IUtjbf7+Snd/Pdx/hCB5ZGO8XwHed/fN7r4beAw4PktjjdXZ+CppefwTW54WZjYDOBu4IHxUA9kZ6ziCPxzeDP9/KwfeMLNhpCheJYsWWblmRthb4ffAWne/JebQQmBGuD0DeDKmfLqZ9TKzscB4gkatlHP3a9293N3HEPz+/ubuF2ZjrGG81cBHZnZoWHQqsCZL4/0QONbM+oT/Jk4laL/KxlhjdSq+8FHVNjM7Nvw5L4q5JqXM7AzgGmCqu+9s9TNkVazuvtLdh7r7mPD/t0qCjjDVKYs3FS33ufoCziLobfQucF2m4wlj+hJBVXEFsDx8nQUMAp4H1oXvA2OuuS78Gd4mRb0zEoh7Ci29obI2VuAoYEn4+30CGJCt8QI/B94CVgH3EfR2yZpYgQcI2lN2hzev73YlPqAi/BnfBX5HONNEGmJdT/Csv/n/szuzIda24m11fANhb6hUxavpPkREpEN6DCUiIh1SshARkQ4pWYiISIeULEREpENKFiIi0iElC5EksWAG2++1c/zVBD5je3KjEkkOJQuR5OkP7JMszKwQwN2PT3dAIslSlOkARPLIjcA4M1tOMHhqO8FAqqOACWa23d37hfN8PUkwALAH8G/unpaRvyJdpUF5IkkSzgr8lLsfYWZTgKeBIzyYJpqYZFEE9HH32nDBmkXAeHf35nMy9COItEk1C5HUWdycKFox4H+b2YkEU7mPBA4AqtMZnEhnKFmIpM6ONsovAIYAk9x9dzhraHHaohLpAjVwiyTPNoKlbztSRrDux24zOxk4MLVhiew/1SxEksTdt5rZK2a2CqgDPmnj1PuBP5vZEoLZTd9KU4giXaYGbhER6ZAeQ4mISIeULEREpENKFiIi0iElCxER6ZCShYiIdEjJQkREOqRkISIiHfr/U1vQp10R/5IAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = other_metrics[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], - "source": [ - "from lcs.agents.xcs import Configuration\n", - "from utils.xcs_utils import *\n", - " \n", - "\n", - "cfg = Configuration(number_of_actions=8,\n", - " max_population=1600,\n", - " covering_wildcard_chance = 1,\n", - " ga_threshold = 25,\n", - " metrics_trial_frequency=100,\n", - " mutation_chance=0.03,\n", - " chi=1, # crossover\n", - " initial_prediction = 0.000001, # p_I\n", - " initial_error = 0.000001, # epsilon_I\n", - " initial_fitness = 0.000001, # F_I\n", - " user_metrics_collector_fcn=xcs_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 4, 'reward': [0, 100.00000000000007, 0, 2.5205456210545373e-09, 0, 0, 0, 1.349e-13], 'perf_time': 0.0010627999999996973, 'population': 16, 'numerosity': 16}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 49, 'reward': [43.484988911585006, 155.8801151880337, 25.899420844188477, 27.394917025619986, 26.44408670571981, 25.766672900415497, 29.961322059865527, 29.01554115718213], 'perf_time': 0.027437300000087816, 'population': 212, 'numerosity': 422}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [39.187000242492935, 33.6946701445112, 29.95530843292193, 31.015277518436182, 37.75189563350876, 51.031719648243865, 40.92758657756191, 37.92694442758516], 'perf_time': 0.03000869999993938, 'population': 215, 'numerosity': 514}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [135.8813424010642, 54.62575901289569, 38.02975863106683, 53.93782200756955, 43.89146734206789, 78.60386221284136, 52.21542181564877, 54.56380856282243], 'perf_time': 0.02858409999998912, 'population': 215, 'numerosity': 534}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [11.028770725424632, 8.036558896840486, 11.152270698537862, 11.938716632531456, 8.369187263391087, 10.192073332779183, 10.660576277140526, 9.991671784408583], 'perf_time': 0.027828600000020742, 'population': 215, 'numerosity': 574}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [5.422615823419046, 71.4420710309193, 26.7895438786806, 5.4517037500402985, 3.3897934462998225, 7.406041186166473, 5.663023624677907, 8.61396758133133], 'perf_time': 0.028523299999960727, 'population': 215, 'numerosity': 574}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [10.411625294142818, 24.714116375966604, 49.82606327002898, 13.728374550492436, 17.160893509241358, 22.834571426005958, 11.436024671878481, 20.84157225566885], 'perf_time': 0.027706800000032672, 'population': 215, 'numerosity': 574}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 29, 'reward': [128.89278216980534, 26.479497375211743, 68.4533093440447, 24.815704702919735, 11.523050395228893, 19.619368617446252, 28.028641890757022, 40.2243970355051], 'perf_time': 0.015212500000075124, 'population': 215, 'numerosity': 574}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 21, 'reward': [106.5712081832744, 16.846532827112792, 123.43721829716101, 15.639046398934886, 10.340423296307735, 8.661523791584335, 18.26595136624244, 14.428231492492541], 'perf_time': 0.01086350000002767, 'population': 215, 'numerosity': 574}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 35, 'reward': [59.93796394539037, 43.476047709965634, 188.42515509447708, 17.352785714924458, 23.494364283236273, 15.77726047497663, 22.58617556259116, 19.738777589431084], 'perf_time': 0.01988600000004226, 'population': 215, 'numerosity': 574}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 21, 'reward': [102.25417594330445, 3.2758146905298373, 2.889553900119542, 1.5235041858199434, 0, 0.6698977388631, 0, 1.0798961171588901], 'perf_time': 0.011633499999902597, 'population': 215, 'numerosity': 576}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 21, 'reward': [2.942876206738658, 251.3443699823993, 3.3137146311630676, 1.0260173605547003, 1.2583490243432027, 1.3467468248804502, 1.250420200624438, 0.9232115899555582], 'perf_time': 0.011633499999902597, 'population': 215, 'numerosity': 576}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 5, 'reward': [115.10988459964275, 435.4274692106625, 3.9237716843111743, 1.640798443427785, 1.976389751983341, 0.6602806581070816, 2.0211497461614414, 0.9805641743642121], 'perf_time': 0.002584300000080475, 'population': 215, 'numerosity': 576}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 5, 'reward': [41.01102062813288, 438.0738151641403, 2.5961991378758458, 1.8337744012325405, 2.0861126991614953, 0.535965866788736, 2.3444670791899145, 0.8832075558695726], 'perf_time': 0.002584300000080475, 'population': 215, 'numerosity': 576}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 5, 'reward': [104.01233175359825, 430.40682460177493, 4.255513382585892, 1.8231034849047894, 2.057778520658027, 0.47105525730401704, 1.9777722103770659, 0.8832075558695726], 'perf_time': 0.003091700000027231, 'population': 215, 'numerosity': 576}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 5, 'reward': [15.463331703834978, 440.8374902961353, 4.732419307260924, 1.718277094565807, 1.7095066261611827, 0.44100145008045233, 2.600316874930196, 0.8832075558695726], 'perf_time': 0.003091700000027231, 'population': 215, 'numerosity': 576}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 1, 'reward': [147.01179636044228, 416.49272635130717, 1.6914039365409756, 1.723473822737457, 1.9716476176371516, 0.4332177852632394, 3.687158954513004, 0.8832075558695726], 'perf_time': 0.0006981999999879918, 'population': 215, 'numerosity': 576}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 1, 'reward': [26.853688666655376, 414.7040811043279, 1.3029947197277327, 1.870606694105669, 1.8576346126166676, 0.4286216090253233, 3.687158954513004, 0.8832075558695726], 'perf_time': 0.0006981999999879918, 'population': 215, 'numerosity': 576}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 6, 'reward': [4.37262555195136, 371.86937569875477, 1.0368343690128623, 1.9575532423163327, 1.6985260916723495, 1.4502573832045915, 4.328928334085856, 0.8832075558695726], 'perf_time': 0.003091500000095948, 'population': 215, 'numerosity': 576}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 6, 'reward': [3.5417891368560768, 557.1476983279694, 0.7683630253380476, 1.9749750338987246, 0.9996412758013704, 35.736008617470134, 4.504753335134316, 0.8832075558695726], 'perf_time': 0.003091500000095948, 'population': 215, 'numerosity': 576}\n" - ] - } - ], - "source": [ - "from lcs.agents.xcs import XCS\n", - "\n", - "\n", - "agent = XCS(cfg)\n", - "my_metrics = avg_experiment(scenario,\n", - " cfg,\n", - " number_of_tests=1,\n", - " explore_trials=exploration_cycles,\n", - " exploit_metrics=exploitation_cycles)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialperf_timepopulationnumerosity
trial
040.0010631616
100490.027437212422
200500.030009215514
300500.028584215534
400500.027829215574
500500.028523215574
600500.027707215574
700290.015213215574
800210.010864215574
900350.019886215574
1000210.011633215576
110050.002584215576
120050.003092215576
130010.000698215576
140060.003092215576
\n", - "
" - ], - "text/plain": [ - " steps_in_trial perf_time population numerosity\n", - "trial \n", - "0 4 0.001063 16 16\n", - "100 49 0.027437 212 422\n", - "200 50 0.030009 215 514\n", - "300 50 0.028584 215 534\n", - "400 50 0.027829 215 574\n", - "500 50 0.028523 215 574\n", - "600 50 0.027707 215 574\n", - "700 29 0.015213 215 574\n", - "800 21 0.010864 215 574\n", - "900 35 0.019886 215 574\n", - "1000 21 0.011633 215 576\n", - "1100 5 0.002584 215 576\n", - "1200 5 0.003092 215 576\n", - "1300 1 0.000698 215 576\n", - "1400 6 0.003092 215 576" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(my_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "ax = my_metrics['steps_in_trial'].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = my_metrics[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Conclusions\n", - "None so far." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_compared_crossover.ipynb b/XCS_Experiments/XCS_compared_crossover.ipynb deleted file mode 100644 index 749ed86..0000000 --- a/XCS_Experiments/XCS_compared_crossover.ipynb +++ /dev/null @@ -1,1354 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "logging.root.setLevel(logging.INFO)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "import random\n", - "\n", - "from xcs import XCSAlgorithm\n", - "from xcs.scenarios import Scenario" - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], - "source": [ - "from utils.xcs_utils import *" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" - ] - } - ], - "source": [ - "exploration_cycles = 4000\n", - "exploitation_cycles = 1000\n", - "input_size = 8\n", - "logging.root.setLevel(logging.INFO)\n", - "scenario = MazeScenario(input_size)\n", - "scenario.maze.reset()\n", - "scenario.maze.render()" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "algorithm = XCSAlgorithm()\n", - "algorithm.max_population_size = 1600\n", - "algorithm.learning_rate = .1\n", - "algorithm.error_threshold = .01 # epsilon_0\n", - "algorithm.ga_threshold = 25\n", - "algorithm.crossover_probability = 1\n", - "algorithm.mutation_probability = 0.01\n", - "algorithm.initial_prediction = 0.000001 # p_I\n", - "algorithm.initial_error = 0.000001 # epsilon_I\n", - "algorithm.initial_fitness = 0.000001 # F_I\n", - "algorithm.wildcard_probability = 0.0" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - } - ], - "source": [ - "other_metrics = other_avg_experiment(\n", - " maze=scenario,\n", - " algorithm=algorithm,\n", - " number_of_tests=1,\n", - " explore_trials=exploration_cycles,\n", - " exploit_trials=exploitation_cycles\n", - " )\n" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialpopulationnumerosity
trial
0505050
100503501600
200284011600
300504271600
400504761600
500504631600
600504821600
700504851600
800505331600
900235581600
1000505061600
1100234671600
1200505021600
1300105201600
1400165011600
1500505101600
1600505231600
1700335361600
1800144811600
1900504391600
2000113961600
2100193351600
220013061600
2300502931600
2400502871600
2500502881600
260092931600
270012781600
2800502721600
2900232571600
3000282601600
3100502751600
3200202401600
3300492291600
3400502451600
3500412351600
3600502421600
3700282461600
380082411600
390012471600
4000502441600
4100232501600
4200502521600
4300502481600
440012461600
4500502381600
4600502371600
4700502231600
4800502201600
4900502241600
\n", - "
" - ], - "text/plain": [ - " steps_in_trial population numerosity\n", - "trial \n", - "0 50 50 50\n", - "100 50 350 1600\n", - "200 28 401 1600\n", - "300 50 427 1600\n", - "400 50 476 1600\n", - "500 50 463 1600\n", - "600 50 482 1600\n", - "700 50 485 1600\n", - "800 50 533 1600\n", - "900 23 558 1600\n", - "1000 50 506 1600\n", - "1100 23 467 1600\n", - "1200 50 502 1600\n", - "1300 10 520 1600\n", - "1400 16 501 1600\n", - "1500 50 510 1600\n", - "1600 50 523 1600\n", - "1700 33 536 1600\n", - "1800 14 481 1600\n", - "1900 50 439 1600\n", - "2000 11 396 1600\n", - "2100 19 335 1600\n", - "2200 1 306 1600\n", - "2300 50 293 1600\n", - "2400 50 287 1600\n", - "2500 50 288 1600\n", - "2600 9 293 1600\n", - "2700 1 278 1600\n", - "2800 50 272 1600\n", - "2900 23 257 1600\n", - "3000 28 260 1600\n", - "3100 50 275 1600\n", - "3200 20 240 1600\n", - "3300 49 229 1600\n", - "3400 50 245 1600\n", - "3500 41 235 1600\n", - "3600 50 242 1600\n", - "3700 28 246 1600\n", - "3800 8 241 1600\n", - "3900 1 247 1600\n", - "4000 50 244 1600\n", - "4100 23 250 1600\n", - "4200 50 252 1600\n", - "4300 50 248 1600\n", - "4400 1 246 1600\n", - "4500 50 238 1600\n", - "4600 50 237 1600\n", - "4700 50 223 1600\n", - "4800 50 220 1600\n", - "4900 50 224 1600" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(other_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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X15expVXXon9+/ej3W7jYx/7GA4dOoQDBw7gta99LWZmZnD//ffjhz/8IT7+8Y+jXq/j1FNPxZe+9CWUSiVs2bIFV111Fe6//34AwO23347TTjsN3/jGN/CJT3wCiqJgfHwcDzzwQM9xGWP40Ic+hLvvvhtEhL/6q7/CVVddhZtuugm7d+/G+eefj2uuuQaTk5M4cOAArrjiCuzduxdvfetb8elPfxoAXM/pPe95D374wx/iuuuuw9vf/nbjuGNjY7jlllsMb+Pmm2/GxMQErr/+enz0ox/FmWeeCQBIp9N43/veBwA4ePAgNm3aZLzGy172sgjemeiY0stLB70gn7V+DCkCOgOuZFqJXHDiBP7fHQcADMsYyJyBxIN77rkHGzduxM6dO7Fr1y5cccUVuP7667Fx40bcf//9uP/++3H06FF88pOfxI9+9CM8/PDD2LZtGz7zmc8YrzE2NoZf/vKXuO666/CBD3wAgLbI/uAHP8DOnTtx11139R33W9/6Fnbs2IGdO3fiRz/6EW688UYcPHgQn/rUp/CqV70KO3bswA033AAA2LFjB+644w489thjuOOOO/DCCy94nlMul8NPf/rTHkPAufrqq3H8+HEsLCzgj//4jwEAu3btwkUXXWT7N7rhhhvwute9Dm94wxvwD//wD5ibmwv6546FYeUM8hkFp64pDeXYK40LT5o0/j9c1dJkG+3EeAZuO/i4eNnLXoYPfvCD+PCHP4w3v/nNeNWrXtX3nF/84hd44okncOmllwIAGo0GXvnKVxo/v/rqq42vfAG/9NJL8a53vQtXXnkl3va2t/W95k9/+lNcffXVUBQF69atw2//9m/jV7/6FcbGxvqee9lll2F8XKtrP/vss/Hcc89hbm7O9Zyuuuoqx2vev38/XnrpJRARlpaWUCqVXP9G7373u/H6178e99xzD+6880788z//M3bu3IlsNuv6e4NipjScMBGghYr2HF6SxsCDC040GYNhqpYmPJyX7KuLmTPOOAMPPfQQXvayl+EjH/kIbr755r7nMMZw+eWXY8eOHdixYweeeOIJfPGLXzR+bi6r5P//p3/6J3zyk5/ECy+8gPPPPx+zs7N9rymKedFVFAWtVsvznIrFouPrvf/978df//Vf48orr8QnPvEJAMA555yDhx56yPF3Nm7ciPe85z248847kU6nsWvX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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "ax = other_metrics[\"steps_in_trial\"].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps_in_trial\")\n", - "ax.legend([\"steps other XCS\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 23, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = other_metrics[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [], - "source": [ - "from lcs.agents.xcs import Configuration\n", - "from utils.xcs_utils import *\n", - " \n", - "\n", - "cfg = Configuration(number_of_actions=8,\n", - " max_population=1600,\n", - " covering_wildcard_chance = 1,\n", - " ga_threshold = 25,\n", - " metrics_trial_frequency=100,\n", - " mutation_chance=0.03,\n", - " chi=1, # crossover\n", - " initial_prediction = 0.000001, # p_I\n", - " initial_error = 0.000001, # epsilon_I\n", - " initial_fitness = 0.000001, # F_I\n", - " delta=0.8, \n", - " user_metrics_collector_fcn=xcs_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': 4.431325056160379e-08, 'perf_time': 0.018619200000102865, 'population': 96, 'numerosity': 96}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 70.46571581800626, 'perf_time': 0.10048000000006141, 'population': 350, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': 44.95473765882148, 'perf_time': 0.1148457999997845, 'population': 377, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': 31.414392043764956, 'perf_time': 0.09751400000004651, 'population': 376, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': 35.12634111253022, 'perf_time': 0.11543780000010884, 'population': 385, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': 57.30148891193783, 'perf_time': 0.10302550000005795, 'population': 399, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': 94.72723320309514, 'perf_time': 0.09254110000028959, 'population': 359, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': 48.52656784483175, 'perf_time': 0.09579149999990477, 'population': 389, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': 30.588072238552346, 'perf_time': 0.10498519999964628, 'population': 380, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': 46.12670913990717, 'perf_time': 0.11988590000009935, 'population': 386, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': 36.658469438341385, 'perf_time': 0.04517519999990327, 'population': 369, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': 72.6339713213983, 'perf_time': 0.047877599999992526, 'population': 373, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': 78.51214276433018, 'perf_time': 0.055358800000249175, 'population': 373, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': 33.397433371187034, 'perf_time': 0.048668699999780074, 'population': 373, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 95.81721199948569, 'perf_time': 0.04622120000021823, 'population': 373, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': 95.84861828797106, 'perf_time': 0.048687599999993836, 'population': 373, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': 94.73750416824655, 'perf_time': 0.045259099999839236, 'population': 373, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': 94.4931021516744, 'perf_time': 0.04752760000019407, 'population': 373, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 1, 'reward': 188.32799705225298, 'perf_time': 0.0009927999999490567, 'population': 373, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': 27.82332216259, 'perf_time': 0.04810200000019904, 'population': 373, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': 4.2151181125486316e-08, 'perf_time': 0.017306600000210892, 'population': 88, 'numerosity': 102}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 1 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 35.7983724569229, 'perf_time': 0.11599139999998442, 'population': 371, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': 43.81638993697309, 'perf_time': 0.11050509999995484, 'population': 385, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 13, 'reward': 175.30348058996384, 'perf_time': 0.03250900000011825, 'population': 373, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 39, 'reward': 143.69729302755982, 'perf_time': 0.08199519999971017, 'population': 391, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 15, 'reward': 166.01969532597656, 'perf_time': 0.023764999999912106, 'population': 397, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': 55.61636929895589, 'perf_time': 0.1070423999999548, 'population': 384, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 11, 'reward': 218.7142949527523, 'perf_time': 0.02857929999981934, 'population': 382, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 33, 'reward': 134.26137441307606, 'perf_time': 0.08158169999978782, 'population': 398, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': 36.25071258697875, 'perf_time': 0.08964030000015555, 'population': 380, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': 18.343478753371752, 'perf_time': 0.05073790000005829, 'population': 410, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 20, 'reward': 122.67361777408897, 'perf_time': 0.020991899999899033, 'population': 410, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': 39.92494609718779, 'perf_time': 0.05391809999991892, 'population': 410, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 7, 'reward': 250.99885597122216, 'perf_time': 0.007160300000123243, 'population': 410, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 7, 'reward': 293.9978682056785, 'perf_time': 0.006588400000055117, 'population': 410, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 1, 'reward': 318.08284070659323, 'perf_time': 0.0009839999997893756, 'population': 410, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 8, 'reward': 214.08179064895288, 'perf_time': 0.008222599999953673, 'population': 410, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 7, 'reward': 112.52416602465873, 'perf_time': 0.0075252999999975145, 'population': 410, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 1, 'reward': 424.83529866916206, 'perf_time': 0.001187500000014552, 'population': 410, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 2, 'reward': 306.7245382460153, 'perf_time': 0.00195369999983086, 'population': 410, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': 2.4293729966038372e-08, 'perf_time': 0.024666199999956007, 'population': 88, 'numerosity': 96}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 2 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 6, 'reward': 135.2940711674394, 'perf_time': 0.018111100000169245, 'population': 352, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': 58.83380999700142, 'perf_time': 0.0998250999996344, 'population': 368, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 29, 'reward': 137.2699576079391, 'perf_time': 0.05710640000006606, 'population': 357, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': 43.403271940079634, 'perf_time': 0.11672990000033678, 'population': 392, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': 81.59417480567711, 'perf_time': 0.09254610000016328, 'population': 383, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': 49.14376504934001, 'perf_time': 0.10022939999998925, 'population': 365, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 5, 'reward': 142.5669611533451, 'perf_time': 0.012644899999941117, 'population': 395, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': 58.810024903192115, 'perf_time': 0.10689409999940835, 'population': 375, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 30, 'reward': 160.9409830365716, 'perf_time': 0.051764400000138266, 'population': 371, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': 78.91725123446618, 'perf_time': 0.048241699999380216, 'population': 393, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': 88.28771398393697, 'perf_time': 0.050940000000082364, 'population': 394, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': 73.55492357215425, 'perf_time': 0.05138689999967028, 'population': 394, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': 74.56135545499446, 'perf_time': 0.050239500000316184, 'population': 394, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 94.89759860985188, 'perf_time': 0.04962410000007367, 'population': 394, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': 82.14628859097839, 'perf_time': 0.048996900000020105, 'population': 394, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': 81.68392134786502, 'perf_time': 0.05561050000051182, 'population': 394, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': 107.10616326070786, 'perf_time': 0.04760269999951561, 'population': 394, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': 92.74596267439142, 'perf_time': 0.04953939999995782, 'population': 394, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': 97.93958623646687, 'perf_time': 0.05075630000010278, 'population': 394, 'numerosity': 1600}\n" - ] - } - ], - "source": [ - "from lcs.agents.xcs import XCS\n", - "\n", - "\n", - "agent = XCS(cfg)\n", - "my_metrics = avg_experiment(scenario,\n", - " cfg,\n", - " number_of_tests=3,\n", - " explore_trials=exploration_cycles,\n", - " exploit_metrics=exploitation_cycles)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialrewardperf_timepopulationnumerosity
trial
050.0000003.691939e-080.02019790.66666798.0
10036.0000008.742608e+010.051775271.3333331600.0
20050.0000004.416682e+010.082134295.6666671600.0
30050.0000003.232690e+010.088942341.0000001600.0
40035.3333338.051939e+010.078194357.6666671600.0
50039.3333338.721886e+010.072669364.0000001600.0
60050.0000003.492624e+010.091932371.6666671600.0
70050.0000004.188258e+010.105311379.6666671600.0
80050.0000004.920165e+010.108392376.6666671600.0
90050.0000006.580749e+010.108600381.0000001600.0
100029.0000001.371982e+020.061451376.6666671600.0
110050.0000007.211707e+010.096011370.0000001600.0
120030.6666671.146626e+020.062376368.6666671600.0
130050.0000005.711729e+010.080208369.3333331600.0
140048.3333337.978028e+010.109958383.3333331600.0
150050.0000004.636590e+010.106711381.3333331600.0
160046.3333337.407564e+010.104721389.3333331600.0
170041.3333337.685133e+010.090241390.0000001600.0
180046.3333338.892854e+010.104484404.3333331600.0
190050.0000004.386886e+010.098089375.3333331600.0
200038.3333331.016385e+020.073112393.0000001600.0
210050.0000004.544545e+010.109866381.0000001600.0
220046.0000007.629289e+010.110658392.6666671600.0
230036.6666678.964435e+010.085987381.0000001600.0
240050.0000006.649579e+010.099938369.3333331600.0
250050.0000003.916368e+010.114972385.0000001600.0
260035.3333338.605671e+010.072742378.0000001600.0
270036.6666677.516993e+010.081021381.3333331600.0
280022.0000001.366026e+020.045672388.6666671600.0
290030.6666671.181348e+020.076756382.0000001600.0
300037.6666677.558769e+010.084385384.0000001600.0
310028.3333331.500782e+020.057727380.0000001600.0
320044.3333337.455316e+010.097820384.3333331600.0
330047.3333336.502648e+010.097283384.0000001600.0
340050.0000005.783332e+010.102816380.6666671600.0
350050.0000003.981019e+010.114001378.3333331600.0
360043.3333338.110613e+010.087097379.0000001600.0
370035.0000007.921723e+010.085809383.3333331600.0
380033.6666671.133730e+020.081279388.6666671600.0
390041.0000001.040294e+020.093595368.0000001600.0
400050.0000004.463973e+010.048052390.6666671600.0
410040.0000009.453177e+010.039936392.3333331600.0
420050.0000006.399734e+010.053555392.3333331600.0
430035.6666671.196525e+020.035356392.3333331600.0
440035.6666671.615709e+020.034145392.3333331600.0
450033.6666671.653592e+020.032889392.3333331600.0
460036.0000001.301677e+020.036364392.3333331600.0
470035.6666671.047078e+020.034219392.3333331600.0
480017.3333332.353031e+020.017240392.3333331600.0
490034.0000001.441625e+020.033604392.3333331600.0
\n", - "
" - ], - "text/plain": [ - " steps_in_trial reward perf_time population numerosity\n", - "trial \n", - "0 50.000000 3.691939e-08 0.020197 90.666667 98.0\n", - "100 36.000000 8.742608e+01 0.051775 271.333333 1600.0\n", - "200 50.000000 4.416682e+01 0.082134 295.666667 1600.0\n", - "300 50.000000 3.232690e+01 0.088942 341.000000 1600.0\n", - "400 35.333333 8.051939e+01 0.078194 357.666667 1600.0\n", - "500 39.333333 8.721886e+01 0.072669 364.000000 1600.0\n", - "600 50.000000 3.492624e+01 0.091932 371.666667 1600.0\n", - "700 50.000000 4.188258e+01 0.105311 379.666667 1600.0\n", - "800 50.000000 4.920165e+01 0.108392 376.666667 1600.0\n", - "900 50.000000 6.580749e+01 0.108600 381.000000 1600.0\n", - "1000 29.000000 1.371982e+02 0.061451 376.666667 1600.0\n", - "1100 50.000000 7.211707e+01 0.096011 370.000000 1600.0\n", - "1200 30.666667 1.146626e+02 0.062376 368.666667 1600.0\n", - "1300 50.000000 5.711729e+01 0.080208 369.333333 1600.0\n", - "1400 48.333333 7.978028e+01 0.109958 383.333333 1600.0\n", - "1500 50.000000 4.636590e+01 0.106711 381.333333 1600.0\n", - "1600 46.333333 7.407564e+01 0.104721 389.333333 1600.0\n", - "1700 41.333333 7.685133e+01 0.090241 390.000000 1600.0\n", - "1800 46.333333 8.892854e+01 0.104484 404.333333 1600.0\n", - "1900 50.000000 4.386886e+01 0.098089 375.333333 1600.0\n", - "2000 38.333333 1.016385e+02 0.073112 393.000000 1600.0\n", - "2100 50.000000 4.544545e+01 0.109866 381.000000 1600.0\n", - "2200 46.000000 7.629289e+01 0.110658 392.666667 1600.0\n", - "2300 36.666667 8.964435e+01 0.085987 381.000000 1600.0\n", - "2400 50.000000 6.649579e+01 0.099938 369.333333 1600.0\n", - "2500 50.000000 3.916368e+01 0.114972 385.000000 1600.0\n", - "2600 35.333333 8.605671e+01 0.072742 378.000000 1600.0\n", - "2700 36.666667 7.516993e+01 0.081021 381.333333 1600.0\n", - "2800 22.000000 1.366026e+02 0.045672 388.666667 1600.0\n", - "2900 30.666667 1.181348e+02 0.076756 382.000000 1600.0\n", - "3000 37.666667 7.558769e+01 0.084385 384.000000 1600.0\n", - "3100 28.333333 1.500782e+02 0.057727 380.000000 1600.0\n", - "3200 44.333333 7.455316e+01 0.097820 384.333333 1600.0\n", - "3300 47.333333 6.502648e+01 0.097283 384.000000 1600.0\n", - "3400 50.000000 5.783332e+01 0.102816 380.666667 1600.0\n", - "3500 50.000000 3.981019e+01 0.114001 378.333333 1600.0\n", - "3600 43.333333 8.110613e+01 0.087097 379.000000 1600.0\n", - "3700 35.000000 7.921723e+01 0.085809 383.333333 1600.0\n", - "3800 33.666667 1.133730e+02 0.081279 388.666667 1600.0\n", - "3900 41.000000 1.040294e+02 0.093595 368.000000 1600.0\n", - "4000 50.000000 4.463973e+01 0.048052 390.666667 1600.0\n", - "4100 40.000000 9.453177e+01 0.039936 392.333333 1600.0\n", - "4200 50.000000 6.399734e+01 0.053555 392.333333 1600.0\n", - "4300 35.666667 1.196525e+02 0.035356 392.333333 1600.0\n", - "4400 35.666667 1.615709e+02 0.034145 392.333333 1600.0\n", - "4500 33.666667 1.653592e+02 0.032889 392.333333 1600.0\n", - "4600 36.000000 1.301677e+02 0.036364 392.333333 1600.0\n", - "4700 35.666667 1.047078e+02 0.034219 392.333333 1600.0\n", - "4800 17.333333 2.353031e+02 0.017240 392.333333 1600.0\n", - "4900 34.000000 1.441625e+02 0.033604 392.333333 1600.0" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(my_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 27, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "ax = my_metrics['steps_in_trial'].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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9NCu3PzNYXVus379es4991xOO+003njjDfr378/s2bM599xzmTp1KsXFxWzZsoXi4mLWr1/PzJkzeeqpp6ioqGD58uX89Kc/Ze/evTz00EPk5+fz7LPP0rNnT9atW8ekSZMoLS2lY8eO/OEPf+Doo4/m8ssvp2fPnixevJgTTzyR7373u3z/+99nz549DB48mOnTp9OjRw/uuusu7rvvPtq2bcvQoUOZNWsWM2fOZOHChXznO99hzpw5vPLKK9x666088cQTXHjhhbz9dngk7po1axg/fjyLFi1q0p9nNqnmkaK6zyOp2er9V6Df8WHKdBHJuTVr1jBp0iRWrFhB9+7deeKJJ+rcfvny5TzyyCMsWLCAG2+8kY4dO7J48WJOPvlkHnwwPHZ44sSJ3H333SxatIipU6fygx/8oGr/9957jxdffJHf/OY3XHbZZdx+++0sXbqU4447jltuuQWA2267jcWLF7N06VLuu+++fb7/lFNO4fzzz+eOO+5gyZIlDB48mG7durFkyRIAZsyYweWXX950P6BmoJpHirLKZqvKO8xju0Kz1SnX5DBXIi1PfTWEbCoqKuL4448HYMSIEaxfv77O7c8880y6dOlCly5d6NatG9/85jcBOO6441i6dCm7du3ijTfe4MILL6zaJxaLVS1feOGF5OXlsX37drZt28YZZ4Qm7AkTJlTtM3z4cC655BLGjRvHuHHj6j2Hq666ihkzZnDnnXfy5z//mQULFjTgJ5B7zV7zMLMBZvaSma0ysxVm9uMovaeZvWBma6L3Hkn73GBma81stZmNyWb+aoy2+vCN8ACnIvV3iLQU+fn5Vct5eXnE43Hatm1LIhH+f1PvgE/evk2bNlWf27RpQzweJ5FI0L17d5YsWVL1WrVqVdU+nTrV8SjnyDPPPMOkSZNYtGgRI0aMqLd/5Nvf/jZz587l6aefZsSIEfTq1av+E29BctFsFQd+6u7HAKOASWY2FJgMzHP3IcC86DPRuvHAMOAc4B4z288nNdWuusM8+ooPXoG8fBg4KltfKSJNYNCgQVV9Bo8//niD9u3atStFRUX85S9/AcId2O+8806N7bp160aPHj147bXXAHjooYc444wzSCQSfPTRR5x55pn8+te/Ztu2bezatWuffbt06cLOnTurPhcUFDBmzBiuvvpqvve97zUovy1BswcPd9/k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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = my_metrics[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Conclusions\n", - "None so far." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_compared_no_GA.ipynb b/XCS_Experiments/XCS_compared_no_GA.ipynb deleted file mode 100644 index 3fbd75d..0000000 --- a/XCS_Experiments/XCS_compared_no_GA.ipynb +++ /dev/null @@ -1,774 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "logging.root.setLevel(logging.INFO)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 56, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "import random\n", - "\n", - "from xcs import XCSAlgorithm\n", - "from xcs.scenarios import Scenario" - ] - }, - { - "cell_type": "code", - "execution_count": 57, - "metadata": {}, - "outputs": [], - "source": [ - "from utils.xcs_utils import *" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[31mA\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" - ] - } - ], - "source": [ - "exploration_cycles = 1000\n", - "exploitation_cycles = 500\n", - "input_size = 8\n", - "logging.root.setLevel(logging.INFO)\n", - "scenario = MazeScenario(input_size)\n", - "scenario.maze.reset()\n", - "scenario.maze.render()" - ] - }, - { - "cell_type": "code", - "execution_count": 59, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "algorithm = XCSAlgorithm()\n", - "algorithm.max_population_size = 1600\n", - "algorithm.learning_rate = .1\n", - "algorithm.error_threshold = .01 # epsilon_0\n", - "algorithm.ga_threshold = 99999999999999999999999999999999999# 25\n", - "algorithm.crossover_probability = 0.5\n", - "algorithm.mutation_probability = 0.01\n", - "algorithm.initial_prediction = float(np.finfo(np.float32).tiny) # p_I\n", - "algorithm.initial_error = float(np.finfo(np.float32).tiny) # epsilon_I\n", - "algorithm.initial_fitness = float(np.finfo(np.float32).tiny) # F_I\n", - "algorithm.wildcard_probability = 0.0" - ] - }, - { - "cell_type": "code", - "execution_count": 60, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n", - "Executing 1 experiment\n", - "Executing 2 experiment\n" - ] - } - ], - "source": [ - "other_metrics = other_avg_experiment(\n", - " maze=scenario,\n", - " algorithm=algorithm,\n", - " number_of_tests=3,\n", - " explore_trials=exploration_cycles,\n", - " exploit_trials=exploitation_cycles\n", - " )\n" - ] - }, - { - "cell_type": "code", - "execution_count": 61, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialpopulationnumerosity
trial
019.66666718.33333318.333333
10050.000000200.000000200.000000
20037.666667200.000000200.000000
30016.333333200.000000200.000000
40047.000000200.000000200.000000
50045.000000200.000000200.000000
60014.333333200.000000200.000000
70038.333333200.000000200.000000
80035.000000200.000000200.000000
90050.000000200.000000200.000000
100016.666667200.000000200.000000
110017.333333200.000000200.000000
120039.000000200.000000200.000000
130040.666667200.000000200.000000
140010.666667200.000000200.000000
\n", - "
" - ], - "text/plain": [ - " steps_in_trial population numerosity\n", - "trial \n", - "0 19.666667 18.333333 18.333333\n", - "100 50.000000 200.000000 200.000000\n", - "200 37.666667 200.000000 200.000000\n", - "300 16.333333 200.000000 200.000000\n", - "400 47.000000 200.000000 200.000000\n", - "500 45.000000 200.000000 200.000000\n", - "600 14.333333 200.000000 200.000000\n", - "700 38.333333 200.000000 200.000000\n", - "800 35.000000 200.000000 200.000000\n", - "900 50.000000 200.000000 200.000000\n", - "1000 16.666667 200.000000 200.000000\n", - "1100 17.333333 200.000000 200.000000\n", - "1200 39.000000 200.000000 200.000000\n", - "1300 40.666667 200.000000 200.000000\n", - "1400 10.666667 200.000000 200.000000" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(other_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 62, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 62, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEGCAYAAACNaZVuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABJ10lEQVR4nO29eXxbd5X3/z6SV8mrJCfxFstJ06RpnJg2hC5MaekUSsu08AwwdAamwMzT+Q2UKcxQWl7MAgXm6RSmMDzPPPCUtTMs04EBWlIKpSWhy5SWpGRrbGez3HiLbTle5U3S9/eHdB3FkW3J1pWupO/79dJL1pV075EsHZ17zud7jiil0Gg0Gk1+Ycu0ARqNRqNJP9r5azQaTR6inb9Go9HkIdr5azQaTR6inb9Go9HkIQWZNiBRPB6P8nq9mTZDo9Fosor9+/cPKaVqFm7PGufv9XrZt29fps3QaDSarEJEuuJt12kfjUajyUO089doNJo8RDt/jUajyUOyJuev0WjMYW5uju7ubqanpzNtimYVlJSU0NDQQGFhYUKP185fo8lzuru7KS8vx+v1IiKZNkezApRS+P1+uru7aW5uTug5pqd9RMQnIodF5ICI7Ituc4nIL0XkePS62mw7NBpNfKanp3G73drxZzEigtvtTursLV05/+uUUq1KqZ3R2/cCTyulNgFPR29rNJoMoR1/9pPs/zBTBd9bgYejfz8MvC1DdqyYp46ewTc0mWkzNJqkePxQH2fGdG5fkx7nr4AnRWS/iNwR3bZWKdUHEL1eE++JInKHiOwTkX2Dg4NpMDUxQmHFB7/3Mp/ZfTTTpmg0CXN6OMCHvvcy//aCL9OmJMSXvvQlAoFA2o/r8/n43ve+N3/729/+NnfeeWfK9v9Xf/VXfOYzn5m//bnPfY4PfehDADzxxBPs3LmTSy65hC1btvCxj30MgI6ODq699lpaW1u55JJLuOOOO+LuOxnS4fyvVkpdBrwF+JCIXJPoE5VSDymldiqldtbUXLA6OWP0jkwxGwzz62ODnJ2czbQ5Gk1C7D0WCaC6/Ol3qCvBKs5/tYRCofNuf/azn+Vb3/oWp06dorOzk69//et87nOf48iRI9x555185zvfoa2tjSNHjrBhwwYg8oPx0Y9+lAMHDtDW1saHP/zhVdtluvNXSvVGrweAHwO7gDMiUgsQvR4w245U4vNH0j3BsOKJI/0ZtkajSYy97ZGv2emzUxm25HwmJye5+eab2bFjB9u2beORRx7hy1/+Mr29vVx33XVcd911ADz55JNceeWVXHbZZbzzne9kYmICiLR+ueeee9i1axe7du3ixIkTAPzgBz9g27Zt7Nixg2uuuTDmVEpx9913s23bNlpaWnjkkUcAuPfee3n22WdpbW3li1/8IgC9vb3ceOONbNq0iY9//OPz+1jKpvvuu4/Xv/71/OAHPzjvuBUVFXzuc5/jzjvv5EMf+hD33XcfVVVVPPDAA3zyk59ky5YtABQUFPDBD34QgL6+PhoaGub30dLSsur33VSpp4g4AZtSajz695uA+4DHgNuB+6PXj5ppR6oxcv2esiIePdDDH79ufYYt0miWZnouxH+f9APQPbx4NP3pn77C0d6xlB57a10F//AHly56/89//nPq6up4/PHHARgdHaWyspIHH3yQPXv24PF4GBoa4rOf/SxPPfUUTqeTf/qnf+LBBx/k7//+74GIQ33ppZf4t3/7Nz7ykY+we/du7rvvPn7xi19QX1/PyMjIBcf90Y9+xIEDBzh48CBDQ0O89rWv5ZprruH+++/nC1/4Art37wYiaZ8DBw7wu9/9juLiYjZv3syHP/xhSktLl7SppKSE5557Lu5rvu222/jyl7+M3W7nve99LwBHjhzhb/7mb+I+/qMf/ShvfOMbueqqq3jTm97E+9//fqqqqhJ6/xfD7Mh/LfCciBwEXgIeV0r9nIjTv0FEjgM3RG9nDT5/gJJCG++5oomXfMP0jlgrktJoFvJS5zBTcyF2eV34J2eZnAlm2qR5WlpaeOqpp7jnnnt49tlnqaysvOAxv/nNbzh69ChXX301ra2tPPzww3R1netXdtttt81fv/DCCwBcffXVvO997+NrX/vaBakXgOeee47bbrsNu93O2rVrecMb3sBvf/vbuDZef/31VFZWUlJSwtatW+nq6lrWpj/6oz9a9DV3d3fT399Pb2/v/NnCUrz//e+nra2Nd77znezdu5crrriCmZmZZZ+3FKZG/kqpU8COONv9wPVmHttMfEOTNLmcvK21ni89dZzdh3q545qNmTZLo1mUPR0DFBfYeMfOBl7yDXP6bIAt6youeNxSEbpZXHzxxezfv5+f/exnfOITn+BNb3rTfPRsoJTihhtu4Pvf/37cfcTK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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "ax = other_metrics[\"steps_in_trial\"].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps_in_trial\")\n", - "ax.legend([\"steps other XCS\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 63, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 63, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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W9DMxplZYe9z4CRgDbAMOC9Y7Tzg8VRlGttey7b8fs9WiYhklShOH00GHjWz3vd/wN3/n5m9AjxiZhcCG4CzUhVoQlc9mwoPTdXbiYikrZQXBXd/F/h4P+0NwKdTnaenu5uyni28P25qqt9aRCTtZP1J9Mb6TYyybnKKVRRERKK6+yhtbN1cRRkwSh3XRPrs3LmT6upq2tvbo44iw1BQUMC0adPIz89PeJusLwrb69RxTWRX1dXVFBYWUlFRQXD9T0YYd6ehoYHq6mqmT098RsmsP33UO+NayRRNwynSq729ndLSUhWEEczMKC0tHfTRXtYXhZ6mjXR6LhPLdU1BJJ4Kwsg3lP+GWV8U8rdvYktOKTm5uVFHERGJXNYXhTHttTTlacY1ERmaZcuWcf311wPw2GOP8eabb0acaHiyvigU76ynrUAzrolITFdX16DWnzt3LldeGRvpPxOKQlbffeQ9PZT3NFCtGddEBnTN797gzU3NSd3nwVOL+PFnDxlweVVVFaeeeiqf+MQneP7559l33315/PHHOfXUU1m4cCGVlZVs2bKFyspKqqqqWLJkCY899hjd3d2sWbOG7373u3R2dnLfffcxevRonnrqKSZOnMj69eu59NJLqa+vZ+zYsdx11138y7/8C+effz4TJ05k5cqVHHbYYZx77rlccskltLW1MWPGDBYvXkxJSQm33HILd955J3l5eRx88ME89NBDLFmyhOXLl/OFL3yBZcuW8ec//5lrr72WpUuXctZZZ/Hqq68C8M477zB//nxWrFiR1N9lsmX1kcK2hlpG204o0kVmkXTzzjvvcOmll/LGG28wYcIEli5dusf116xZwwMPPMDLL7/MVVddxdixY1m5ciVHHXUUv/zlLwG4+OKLufXWW1mxYgULFy7ka1/7Wt/2b7/9Nn/4wx+48cYb+dKXvsTPfvYzVq9ezaGHHso111wDwPXXX8/KlStZvXo1d95554fe/+ijj2bu3LnccMMNrFq1ihkzZlBcXMyqVasAuOeeezj//POT9wsKSVYfKTTWvEcJMLpUHddEBrKnv+jDNH36dGbPng3A4YcfTlVV1R7XP/744yksLKSwsJDi4mI++9nPAnDooYeyevVqtm/fzvPPP89ZZ/1zWLWOjo6+52eddRa5ubk0NTWxbds2PvWpTwFw3nnn9W0za9YszjnnHM44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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = other_metrics[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from lcs.agents.xcs import Configuration\n", - "from utils.xcs_utils import *\n", - " \n", - "\n", - "cfg = Configuration(number_of_actions=8,\n", - " max_population=1600,\n", - " covering_wildcard_chance = 1,\n", - " ga_threshold = 9999999999999999999999999,\n", - " metrics_trial_frequency=100,\n", - " mutation_chance=0.01,\n", - " user_metrics_collector_fcn=xcs_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [5.753183395709529e-41, 2.159292778582813e-40, 1.253515642280712e-40, 2.5209629782634306e-40, 7.569508869886019e-41, 2.1873884048928495e-40, 1.6565574643280677e-40, 1.0842949299188363e-40], 'perf_time': 0.013000199999993356, 'population': 80, 'numerosity': 80}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 29, 'reward': [31.364722236947603, 115.30520592778899, 9.886847369331884, 5.45662672155003, 4.638095391004085, 3.4042051167905645, 5.294142650228229, 5.7713915871528], 'perf_time': 0.015804799999997954, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 17, 'reward': [194.2522502058606, 53.94857650381515, 98.73732628256941, 4.368861674886088, 7.243342732776246, 4.462264673335366, 4.9651884079276165, 6.027256527488662], 'perf_time': 0.008661399999994046, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 4, 'reward': [55.90099092140596, 9.347028821258352, 112.84972165016924, 8.526653060070778, 13.479242086186956, 8.738785085541329, 7.3312894571345035, 9.303370669253274], 'perf_time': 0.00219750000000829, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 27, 'reward': [151.6573397791832, 28.17872398602944, 103.51928164110005, 11.330155009397526, 11.291253128344799, 10.237645782316164, 8.273109409730461, 17.387805821544706], 'perf_time': 0.01506219999998848, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 15, 'reward': [15.599542578943028, 22.1861740674874, 236.8621778331525, 6.424903512612943, 5.0259242985816694, 4.8404267865916175, 3.724898089171485, 6.320602759558719], 'perf_time': 0.008211399999993318, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 14, 'reward': [11.209393057033436, 88.22111335382773, 185.41848984281881, 9.8373846384005, 9.58355448760817, 7.628260706513267, 12.879400190949491, 8.71539547107655], 'perf_time': 0.007842699999997649, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [7.525738278691067, 12.632074761532518, 4.210015221535248, 2.2115655865632053, 4.885847941612, 5.044572320720668, 11.124657255686525, 4.224092710433779], 'perf_time': 0.02821760000000495, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 9, 'reward': [103.44798306939396, 2.7211216907873217, 65.85805674895983, 2.276595330659599, 3.2341602473693705, 1.9933841629412652, 2.037225041880077, 3.8124875898816253], 'perf_time': 0.004918500000002268, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [27.986658320848814, 16.26295763054417, 42.27279847246655, 14.535470614459436, 16.693948902787675, 11.808278960599793, 10.647436491402914, 11.065018155295887], 'perf_time': 0.0282418999999976, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [56.022621610967406, 27.000597030354022, 11.864429225321373, 10.948703227912096, 0, 0, 0, 0], 'perf_time': 0.027835500000009006, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [191.67374485997752, 16.921110324451234, 15.734373769969213, 21.878858214481596, 12.635835834994806, 29.75579313740069, 6.455431621529097, 24.650768960781686], 'perf_time': 0.027835500000009006, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 5, 'reward': [56.0774141060445, 8.46236281911499, 152.73144894347047, 25.07775286658447, 11.435510805875317, 23.667745701801838, 12.259068256488588, 27.643694120440706], 'perf_time': 0.0027528000000103248, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 5, 'reward': [58.36296071651075, 5.295290766332977, 85.31748526979484, 25.07775286658447, 9.552093766498263, 23.667745701801838, 12.259068256488588, 27.643694120440706], 'perf_time': 0.0027528000000103248, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 1, 'reward': [49.696312202764474, 7.2760616593231155, 314.60100746471704, 25.48396388685908, 3.359636808097791, 11.055467037958111, 14.199533745986693, 10.447537620813701], 'perf_time': 0.0005548999999973603, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 1, 'reward': [50.56259104092342, 7.2760616593231155, 222.4272290685879, 22.10240595247263, 3.1455297008982703, 9.186455790605562, 14.199533745986693, 8.721007099008311], 'perf_time': 0.0005548999999973603, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [58.03930792978751, 7.2760616593231155, 123.84596740973069, 20.705821524626867, 3.1455297008982703, 9.186455790605562, 14.199533745986693, 8.721007099008311], 'perf_time': 0.027547900000001846, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [53.2930824783776, 7.2760616593231155, 269.45554141570375, 19.760250290342853, 3.1455297008982703, 9.186455790605562, 14.199533745986693, 8.721007099008311], 'perf_time': 0.027547900000001846, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 6, 'reward': [125.89987799071011, 7.2760616593231155, 276.1513759680013, 24.268467670522405, 3.1455297008982703, 9.186455790605562, 14.199533745986693, 8.721007099008311], 'perf_time': 0.003318399999997723, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 6, 'reward': [49.467221263936864, 7.2760616593231155, 337.85372217618635, 21.804490012092852, 3.1455297008982703, 9.186455790605562, 14.199533745986693, 8.721007099008311], 'perf_time': 0.003318399999997723, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [9.810687478587288e-78, 2.9767119848712097e-41, 5.131258768708651e-41, 1.7885796513748394e-40, 1.2722269414413771e-40, 1.091619466991612e-40, 2.435934752768197e-40, 1.049485495042346e-40], 'perf_time': 0.020887799999997014, 'population': 120, 'numerosity': 120}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 1 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 8, 'reward': [50.62112069002153, 37.2796344090185, 332.3640542103291, 5.9946725851409814, 14.01427660976799, 6.1540185773130744, 7.664914993193679, 4.598023885727767], 'perf_time': 0.00420629999999278, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 6, 'reward': [12.172643499434448, 47.80255296024599, 136.5314784792791, 10.83206409367851, 8.062748948580936, 12.764469862838915, 10.288269584059329, 6.428567186673897], 'perf_time': 0.0032070000000032906, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 18, 'reward': [21.916594546083946, 58.643480059403416, 122.2556922402514, 9.706457628799665, 7.0950670587329006, 9.16453251173892, 16.164172237475412, 10.43615245091545], 'perf_time': 0.009965400000012892, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 16, 'reward': [58.1536098170657, 21.324106165579984, 255.87153551235855, 7.056051330126887, 20.96004755203102, 15.442462094757891, 4.217911073483579, 15.428718602939739], 'perf_time': 0.008747900000003028, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [21.42799538892951, 33.424855640741555, 38.04643951979606, 15.004759256666617, 10.764197097831449, 9.933301762968549, 10.075061456930067, 12.898988483887523], 'perf_time': 0.027856600000006893, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 2, 'reward': [244.96953291501816, 13.408722389494631, 178.7067007983331, 22.10444927765198, 20.061339456387604, 19.26412090987238, 15.010230300102913, 17.904793278439353], 'perf_time': 0.0010192000000017742, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 16, 'reward': [97.73632347254465, 20.312234978339312, 157.4947064748884, 21.071675095077918, 20.765110874657584, 28.961819561054252, 25.61253345439657, 24.532203453851036], 'perf_time': 0.008646199999986948, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [5.585121834706401, 5.1003023984174884, 5.729591424838499, 6.33754826032045, 5.506206738458305, 6.378996675118023, 5.571139682794123, 7.307202174847787], 'perf_time': 0.02841590000001304, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [18.908844504856255, 44.64263979613175, 4.91203082690008, 2.364819629767965, 1.8826200366613932, 1.95939515491611, 3.3086318794764304, 2.1785186236959078], 'perf_time': 0.025997300000000223, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 32, 'reward': [100.76476828967576, 0.5426650948314187, 11.618062603905283, 5.885287793813143, 3.1448171666758045, 8.395214272244726, 3.008477975568314, 0], 'perf_time': 0.017576300000001766, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 32, 'reward': [8.678908344184443, 1.4171270204317943, 350.7436346563678, 3.4631368081877936, 8.215517262727232, 5.1007760971355385, 1.8140856365809752, 1.4668136443763409], 'perf_time': 0.017576300000001766, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 5, 'reward': [347.8209513314059, 3.016352818531976, 260.19077253463246, 3.4631368081877936, 11.098048405774037, 11.439044825999778, 1.8140856365809752, 1.4668136443763409], 'perf_time': 0.002724000000000615, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 5, 'reward': [188.28052716017862, 1.895402468514706, 329.0412695403945, 3.4631368081877936, 15.617130087717435, 13.890109898111886, 1.8140856365809752, 1.4668136443763409], 'perf_time': 0.002724000000000615, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': [374.67185747949816, 24.63591627446231, 243.03756065622628, 3.4631368081877936, 18.755160884876396, 15.239094945804318, 1.8140856365809752, 1.4668136443763409], 'perf_time': 0.0016377000000034059, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': [325.8406534054887, 12.969102728939502, 390.71657048987925, 3.4631368081877936, 17.641068893037875, 13.576024197472533, 1.8140856365809752, 1.4668136443763409], 'perf_time': 0.0016377000000034059, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 5, 'reward': [336.54717285846027, 33.26667377001794, 281.40484286288256, 3.4631368081877936, 16.613931412099042, 10.23476805674419, 1.8140856365809752, 1.4668136443763409], 'perf_time': 0.003030600000002437, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 5, 'reward': [443.51622855554155, 37.095254598381494, 296.18184098738084, 3.4631368081877936, 15.393918384860779, 8.007655066780517, 1.8140856365809752, 1.4668136443763409], 'perf_time': 0.003030600000002437, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 3, 'reward': [306.5389051818823, 62.066226423499245, 388.12211863705664, 3.4631368081877936, 13.376966270085813, 7.551478592368678, 1.8140856365809752, 1.4668136443763409], 'perf_time': 0.0015985000000000582, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 3, 'reward': [281.857691065857, 45.33123166585428, 347.5314827642799, 3.4631368081877936, 9.461430699061712, 7.318323598011542, 1.8140856365809752, 1.4668136443763409], 'perf_time': 0.0015985000000000582, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1.7684016252953148e-40, 1.972456282562577e-40, 2.1998314076017012e-40, 3.824975183200267e-40, 3.0752086070970204e-40, 2.8580774887091197e-40, 2.5342352393797694e-40, 1.1097887802859766e-40], 'perf_time': 0.00962660000000426, 'population': 48, 'numerosity': 48}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 2 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 22, 'reward': [109.15030975967807, 79.59897791868903, 80.67760263777848, 13.051723820716713, 7.097621149328505, 9.33045525741245, 12.423194081712918, 9.787867990618608], 'perf_time': 0.012282599999991817, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 20, 'reward': [12.73437126053744, 176.9636515906899, 107.46146814796813, 4.768230165806335, 7.607955254373438, 5.317102313974156, 8.244984291997962, 4.610614153840894], 'perf_time': 0.010749599999996917, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [42.88104190128752, 6.927136792226988, 12.10883647657914, 10.164255337415021, 9.425965373523391, 6.951358572555523, 6.4318359726778525, 7.564658162456427], 'perf_time': 0.028391799999994305, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 36, 'reward': [31.274764584371937, 116.51877393780256, 27.461719396226933, 4.390500881685782, 4.5295845198368525, 15.226537085885662, 11.451720156887452, 18.565726520519128], 'perf_time': 0.02047770000000071, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 36, 'reward': [33.61504434804696, 20.127709524520398, 151.72308544728827, 19.69467127267048, 16.840215955401945, 17.914072814494254, 15.37485733309765, 14.885316870697286], 'perf_time': 0.018956700000003934, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 18, 'reward': [119.1756088241732, 33.72879798208478, 262.3953764453017, 19.782617560233856, 16.576785365104804, 12.607503952108212, 18.04711314596429, 21.13124314313495], 'perf_time': 0.00997780000000148, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 11, 'reward': [101.5853153076191, 17.123314065208348, 163.759355414238, 22.115905709990194, 20.429385011913734, 20.26764897541594, 13.731884573886894, 21.88814859036496], 'perf_time': 0.0061801000000087924, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 24, 'reward': [17.762020614811934, 120.41750699384824, 62.031153004323784, 10.89282142051817, 17.68299520964935, 11.284444943011325, 9.999110002094808, 17.77912112460275], 'perf_time': 0.013354500000005487, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 12, 'reward': [313.1452194213769, 105.00091495460072, 117.24352723399231, 19.613680298605942, 15.146910668467164, 24.682137581818843, 31.518643576189252, 23.68507943252762], 'perf_time': 0.006204099999990831, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [11.57716218784354, 0.650164514819176, 6.179722774320887, 4.777770043260996, 0.6714603369138, 0.5510026104622945, 2.310685609452138, 3.17438985728963], 'perf_time': 0.02749040000000491, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [104.09462935814433, 77.86902257359742, 5.16524128009921, 5.372490135400434, 4.667527648297662, 5.771550442346223, 4.50173168673136, 6.611102206203423], 'perf_time': 0.02749040000000491, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 9, 'reward': [6.906524903048193, 8.42896350689133, 110.10921543073236, 4.747502521961093, 9.011182252480575, 5.1445077263811125, 11.46997964676963, 8.615974517198296], 'perf_time': 0.005215599999985443, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 9, 'reward': [3.341561219454855, 4.537732112279718, 19.716563800600866, 5.580362439939835, 4.942773299125746, 16.471180162193985, 3.7873935888366823, 10.150398388497457], 'perf_time': 0.005215599999985443, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': [8.902292783373671, 15.073682644947697, 205.52226604963556, 8.797146268694025, 14.146506645149836, 10.597535530539902, 3.7360501925222738, 5.168134975555163], 'perf_time': 0.0016213000000107058, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': [19.812982172052063, 22.99770681166704, 325.8105553124543, 4.7282341191127415, 11.515561686666803, 6.093455053583607, 27.90257100580612, 0.3827331986493938], 'perf_time': 0.0016213000000107058, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 1, 'reward': [28.52264266507555, 23.940863742820717, 407.30756330551225, 4.7282341191127415, 15.821534727659571, 3.569919701823005, 8.478879389910816, 8.62016343066536], 'perf_time': 0.0005673000000001593, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 1, 'reward': [44.21333465637062, 38.88407488970557, 525.0207327939197, 4.7282341191127415, 18.504180233314997, 2.8054760435937025, 12.592577568514232, 9.533022550381862], 'perf_time': 0.0005673000000001593, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 4, 'reward': [50.23965532520499, 37.828162799537324, 452.79195660082746, 4.7282341191127415, 19.834461572036385, 2.8054760435937025, 19.519488191744802, 16.431702533693223], 'perf_time': 0.002166100000010829, 'population': 208, 'numerosity': 208}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 4, 'reward': [59.97680181340553, 47.7864940835952, 401.19358085764844, 4.7282341191127415, 20.70725915837149, 1.6704078840644785, 21.788399511333587, 7.2877031826921765], 'perf_time': 0.002166100000010829, 'population': 208, 'numerosity': 208}\n" - ] - } - ], - "source": [ - "from lcs.agents.xcs import XCS\n", - "\n", - "\n", - "agent = XCS(cfg)\n", - "my_metrics = avg_experiment(scenario,\n", - " cfg,\n", - " number_of_tests=3,\n", - " explore_trials=exploration_cycles,\n", - " exploit_metrics=exploitation_cycles)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialperf_timepopulationnumerosity
trial
050.0000000.01450582.66666782.666667
10019.6666670.010765208.000000208.000000
20014.3333330.007539208.000000208.000000
30024.0000000.013518208.000000208.000000
40026.3333330.014763208.000000208.000000
50033.6666670.018342208.000000208.000000
60011.3333330.006280208.000000208.000000
70025.6666670.014348208.000000208.000000
80027.6666670.015563208.000000208.000000
90037.3333330.020148208.000000208.000000
100044.0000000.024301208.000000208.000000
11006.3333330.003564208.000000208.000000
12002.3333330.001271208.000000208.000000
130018.6666670.010382208.000000208.000000
14004.3333330.002361208.000000208.000000
\n", - "
" - ], - "text/plain": [ - " steps_in_trial perf_time population numerosity\n", - "trial \n", - "0 50.000000 0.014505 82.666667 82.666667\n", - "100 19.666667 0.010765 208.000000 208.000000\n", - "200 14.333333 0.007539 208.000000 208.000000\n", - "300 24.000000 0.013518 208.000000 208.000000\n", - "400 26.333333 0.014763 208.000000 208.000000\n", - "500 33.666667 0.018342 208.000000 208.000000\n", - "600 11.333333 0.006280 208.000000 208.000000\n", - "700 25.666667 0.014348 208.000000 208.000000\n", - "800 27.666667 0.015563 208.000000 208.000000\n", - "900 37.333333 0.020148 208.000000 208.000000\n", - "1000 44.000000 0.024301 208.000000 208.000000\n", - "1100 6.333333 0.003564 208.000000 208.000000\n", - "1200 2.333333 0.001271 208.000000 208.000000\n", - "1300 18.666667 0.010382 208.000000 208.000000\n", - "1400 4.333333 0.002361 208.000000 208.000000" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(my_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "ax = my_metrics['steps_in_trial'].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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J5100kGvP3zuc5/j2Wef5emnn+akk06irKzs4N94xLK6KHQ0bgWg9JDKaIOISEIqKyv7zsn/8pe/HNRri4uLmT59Or/4xS+AWMfva6+99oH9SkpKKC0t5Y9//CMADz30EB//+Mfp6elh69atnHHGGdx6663s3r2bPXv2vO+1RUVFtLS09D0vLCxkzpw5fPWrX+XLX/7yoPJGJauLQk/TNro8hwkTp0UdRUQScM011/DTn/6UU089lfr6+kG//uGHH+a+++7jwx/+MMceeyxPPfVUv/s98MADXHvttcyaNYs1a9Zwww030N3dzRe+8AWOO+44TjjhBK6++mrGjx//vtfNnz+f2267jRNOOIFNmzYBcPHFF2NmnH322YPOGwVz73eKoRGhqqrKV65cOeTX//VHF3Jo0yoO+d6mJKYSGfneeOMNjjnmmKhjZITFixfT1NTE97///Ug+v7//lma2yt2r+ts/qy80j27fye68Cg6JOoiIZKTPfOYzbNq0id/97ndRR0lYVheFks5aasceFXUMEclQTz75ZNQRBi1rryl4Tw9lPQ3sU+OaiEifrC0KzbvqGGMdalwTEYmTtUWhoWYLAPmlalwTEemVtUXh741rKgoiIr2ytii0N8Qa18arcU0kq5x++ukM51b2RN1xxx0cc8wxXHzxxUN+j1RljZe1dx950za63Sg/RGszi0hieqfaSMRdd93Fs88+e8D1kQfzfqmSXmlSKGdPDQ1WysT8UVFHEUlvzy6EHa8n9z0POQ7OvWXAzQNNnT169GhOP/30YU2fDfCzn/2Mb37zmzQ3N7NkyRJmz55Na2sr3/jGN3j99dfp6urie9/7HvPmzWPp0qU888wztLe309ra+oGeg9tvv50lS5YAsQnwrrrqKq688kreeecd5s6dy2WXXcbVV1/dt//+73fDDTewePFinn76aQC+/vWvU1VV9YEZVZ977jluvPFGOjo6OPLII7n//vsZN24cCxcuZPny5eTl5XH22WezePHiYf2nydrTR6P31rArryLqGCIygMFOnQ2JTZ8N0NrayksvvcRdd93FZZddBsCiRYs488wz+etf/8qLL77ItddeS2trKwB/+ctfeOCBBz5QEFatWsX999/PK6+8wssvv8y9997L6tWrufvuu5kyZQovvvji+wpCr4HebyD19fXcfPPNPP/887z66qtU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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = my_metrics[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Conclusions\n", - "None so far." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_compared_only_exploit.ipynb b/XCS_Experiments/XCS_compared_only_exploit.ipynb deleted file mode 100644 index 1ef93ef..0000000 --- a/XCS_Experiments/XCS_compared_only_exploit.ipynb +++ /dev/null @@ -1,1225 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import logging\n", - "logging.root.setLevel(logging.INFO)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "import random\n", - "\n", - "from xcs import XCSAlgorithm\n", - "from xcs.scenarios import Scenario" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "from utils.xcs_utils import *" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" - ] - } - ], - "source": [ - "exploration_cycles = 0\n", - "exploitation_cycles = 5000\n", - "input_size = 8\n", - "logging.root.setLevel(logging.INFO)\n", - "scenario = MazeScenario(input_size)\n", - "scenario.maze.reset()\n", - "scenario.maze.render()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "algorithm = XCSAlgorithm()\n", - "algorithm.max_population_size = 1600\n", - "algorithm.learning_rate = .1\n", - "algorithm.error_threshold = .01 # epsilon_0\n", - "algorithm.ga_threshold = 25\n", - "algorithm.crossover_probability = 1\n", - "algorithm.mutation_probability = 0.01\n", - "algorithm.initial_prediction = 0.000001 # p_I\n", - "algorithm.initial_error = 0.000001 # epsilon_I\n", - "algorithm.initial_fitness = 0.000001 # F_I\n", - "algorithm.wildcard_probability = 0.0" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - } - ], - "source": [ - "other_metrics = other_avg_experiment(\n", - " maze=scenario,\n", - " algorithm=algorithm,\n", - " number_of_tests=1,\n", - " explore_trials=exploration_cycles,\n", - " exploit_trials=exploitation_cycles\n", - " )\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialpopulationnumerosity
trial
0505050
100213341600
200133921600
300504281600
400404501600
500504241600
600504241600
700504351600
800504471600
900504531600
1000504571600
1100504691600
1200504661600
1300504811600
1400504761600
1500504741600
1600504651600
1700504721600
1800504691600
1900504711600
2000504681600
2100504611600
2200504601600
2300504671600
240014611600
2500504541600
2600504641600
2700504681600
2800504661600
290014671600
3000504661600
3100504631600
3200504561600
330014531600
340024501600
3500504521600
3600504431600
3700504471600
380024521600
3900504491600
4000504531600
4100504521600
4200504541600
4300504661600
4400504661600
450024651600
4600504621600
4700504621600
4800504521600
490024501600
\n", - "
" - ], - "text/plain": [ - " steps_in_trial population numerosity\n", - "trial \n", - "0 50 50 50\n", - "100 21 334 1600\n", - "200 13 392 1600\n", - "300 50 428 1600\n", - "400 40 450 1600\n", - "500 50 424 1600\n", - "600 50 424 1600\n", - "700 50 435 1600\n", - "800 50 447 1600\n", - "900 50 453 1600\n", - "1000 50 457 1600\n", - "1100 50 469 1600\n", - "1200 50 466 1600\n", - "1300 50 481 1600\n", - "1400 50 476 1600\n", - "1500 50 474 1600\n", - "1600 50 465 1600\n", - "1700 50 472 1600\n", - "1800 50 469 1600\n", - "1900 50 471 1600\n", - "2000 50 468 1600\n", - "2100 50 461 1600\n", - "2200 50 460 1600\n", - "2300 50 467 1600\n", - "2400 1 461 1600\n", - "2500 50 454 1600\n", - "2600 50 464 1600\n", - "2700 50 468 1600\n", - "2800 50 466 1600\n", - "2900 1 467 1600\n", - "3000 50 466 1600\n", - "3100 50 463 1600\n", - "3200 50 456 1600\n", - "3300 1 453 1600\n", - "3400 2 450 1600\n", - "3500 50 452 1600\n", - "3600 50 443 1600\n", - "3700 50 447 1600\n", - "3800 2 452 1600\n", - "3900 50 449 1600\n", - "4000 50 453 1600\n", - "4100 50 452 1600\n", - "4200 50 454 1600\n", - "4300 50 466 1600\n", - "4400 50 466 1600\n", - "4500 2 465 1600\n", - "4600 50 462 1600\n", - "4700 50 462 1600\n", - "4800 50 452 1600\n", - "4900 2 450 1600" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(other_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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45ndB7W+5zFLZuNLf3us5/+PjY3hvPPOw65du1CpVPCFL3wBr7zyCnbv3o13vOMdWLBgATZs2ID7778fX/rSl1AsFrFy5UrcfPPNGBgYwNDQEM4//3xs2LABAHDbbbfhjW98I3784x/jyiuvRDqdxpw5c/Dwww9PWZeZcfnll+Oee+4BEeHzn/88zj//fFxxxRXYtm0bVq1ahbVr12Lu3LnYvXs3zj77bGzfvh0f+MAHcO211wJAy2O64IILcP/992P9+vX40Ic+VFt39uzZuPrqq2vexle+8hUccsghuPDCC/G5z30ORx11FAAgk8ngk5/8JABgz549WLZsWe09jj/+eA2fTLzUteI4YgYR6NRZ9344ThzBaAA5k+qI6mMgGsPsGJoo+hN1hglOKPfeey+WLFmCLVu2YOvWrTj77LNx4YUXYsmSJdiwYQM2bNiAffv24aqrrsKvfvUrPPHEE1i9ejWuv/762nvMnj0bjz32GNavX4+LL74YgLXJ3nfffdiyZQvuvPPOaev+7Gc/w+bNm7Flyxb86le/wmWXXYY9e/bgmmuuwWmnnYbNmzfjkksuAQBs3rwZt99+O5566incfvvt+NOf/tT2mPL5PB555JEphsBhzZo1eO2113Dw4EF85CMfAQBs3boVJ554ous1uuSSS3DGGWfgnHPOwTe+8Q28/vrrQS93YoiiW2Wca7vJRIVSBb9/6fUpx2CCfDbdEfECoO4ZmP4sgGhkoq7xDFrdwZvi+OOPx6WXXorPfOYzeO9734vTTjtt2nN++9vf4plnnsGpp54KAJicnMQpp5xS+/81a9bUvjob+KmnnoqPfexjOO+88/DBD35w2ns+8sgjWLNmDdLpNBYtWoS3v/3tePzxxzF79uxpzz3zzDMxZ84cAMAxxxyDF198Ea+//nrLYzr//PM9z3nXrl14+eWXQUQYHR3FwMBAy2v08Y9/HO9+97tx77334o477sB3vvMdbNmyBblcruXrkoyzWTmtEyJdO2veK2mWiTbufBWX//RJ7Bgew8feOmR07bVvPQzvPGaRsffXycrBAVz8ziNw+pELja3xhrkz8cE3L8XMPvPeUtcYgzg48sgjsWnTJtx999347Gc/i3e961344he/OOU5zIyzzjoLP/jBD1zfozFQ5nz/7W9/G7/73e9w1113YdWqVdi8eTPmz58/5T1V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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "ax = other_metrics[\"steps_in_trial\"].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps_in_trial\")\n", - "ax.legend([\"steps other XCS\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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OyxevJh4PM5Pf/pTxo8fz4wZM3jyySepqKhg165d9a7XuP3225k+fToQFkG85ppruPLKK3n33XcZN24cl19+Oddee23t/qmf95Of/IRp06bxxBNPAHD11VdTVlZWb/Xdp59+mhtvvJFYLMbw4cO599576d69O1OmTGHOnDkUFBRwxhlnMG3atNb4F6ql4JGiqHILPX2HBstF2qkVK1bw4IMP8rvf/Y4LL7yQRx99lEsuuaTRY5YsWcKCBQuoqKjgkEMO4dZbb2XBggVce+213HfffVxzzTUA7Nq1i1deeYUXX3yRyy+/nCVLljB16lROPfVUpk+fztatWxkzZgxf+MIXAHj11VdZtGhRbfBJmD9/Pvfeey+vv/467s5nP/tZTjrpJO6++27+/ve/8/zzz9OvX796+Uz+vBdeeKHJ32Lz5s3cfPPNPPvss3Tr1o1bb72V22+/nauvvprHHnuMt956CzNj69atGf22zaHgkaL0k3ejjU/lNiMi7V0jLYRsau5y7ND0kuwJF110EQAnnngi27dvZ+vWrTz99NPMmTOn9sy9oqKCtWvXAnD66afXCxwAL7/8Mueff37tarxf/vKXeemllzjmmGMazWdDn9eQ1157jWXLlnHCCScAUFlZyXHHHUePHj0oLi7miiuu4Itf/CLnnntuxp+ZKQWPFAdUrA4banmItEupy7F/8sknAHu1JHuCpYxzmhnuzqOPPsphhx22x3uvv/56g0u1t3TNwOTPSy4P1C9T4ntOP/10HnzwwXrvzZ07l+eee45Zs2bxm9/8ptWXQdFsqxQDK1ezI68HdO/f9M4i0m7szZLsCQ899BAQWg49e/akZ8+enHnmmfz617+uDQgLFixo8nNOPPFEHn/8cXbv3s2uXbt47LHH+PznP9+svBx00EEsW7aMWCzGtm3beO655+rtM3bsWP71r3+xcuVKAHbv3s0777zDzp072bZtG+eccw6/+tWvau9Y2JrU8kgxKP4e67sM4zDNtBLpUK677jouvPBC7r//fk499dQWfUbv3r05/vjjawfMAX784x9zzTXXMGrUKNydoUOH1g5iN+TYY4/lsssuY8yYcMfsK664oskuq1SDBw/mwgsvZNSoUYwYMSLt8aWlpcyYMYOLLrqo9s6HN998MyUlJYwfP56KigrcnV/+8pfN+u5MtPmS7G2lpUuyv3bX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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = other_metrics[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [], - "source": [ - "from lcs.agents.xcs import Configuration\n", - "from utils.xcs_utils import *\n", - " \n", - "\n", - "cfg = Configuration(number_of_actions=8,\n", - " max_population=1600,\n", - " covering_wildcard_chance = 1,\n", - " ga_threshold = 25,\n", - " metrics_trial_frequency=100,\n", - " mutation_chance=0.03,\n", - " chi=1, # crossover\n", - " initial_prediction = 0.000001, # p_I\n", - " initial_error = 0.000001, # epsilon_I\n", - " initial_fitness = 0.000001, # F_I\n", - " user_metrics_collector_fcn=xcs_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 9.339685532844034e-09, 9.339685532844034e-09, 1.335901139763139e-08, 2.547931123661034e-08, 2.988954611581355e-08, 2.151936563468136e-08, 5.638172962127993e-13], 'perf_time': 0.014018700000008266, 'population': 72, 'numerosity': 74}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [45.50452934853669, 11.733219116960623, 2.4382839340538234, 32.14658608623825, 13.284752022932295, 25.961349881478032, 57.276824948606524, 6.970439174217054e-13], 'perf_time': 0.044748500000025615, 'population': 293, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 50, 'reward': [56.268744384172045, 40.40867330401268, 24.70076065694415, 37.374856633974055, 13.284752022932295, 5.571761807579601, 46.51414117918814, 8.581018846811654], 'perf_time': 0.044003500000030726, 'population': 315, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 1, 'reward': [169.8706013641221, 45.386980184579784, 43.353540543526854, 72.09663794626833, 11.800584374962842, 45.0159384065631, 27.893706695942846, 23.29059758684236], 'perf_time': 0.0026578999999742337, 'population': 345, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [25.813594805322197, 47.10171232159088, 125.42293453351655, 17.964280311902346, 17.773894766809917, 31.018524791599294, 10.19575284565603, 31.955098596074347], 'perf_time': 0.049107100000014725, 'population': 383, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2500, 'steps_in_trial': 50, 'reward': [25.497794554186598, 15.248290786852781, 71.88517575185776, 33.654458462994555, 35.84952122904353, 21.899102837862223, 20.413800236666457, 97.34201322507454], 'perf_time': 0.0550429999999551, 'population': 402, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3000, 'steps_in_trial': 50, 'reward': [40.74851181449875, 68.69241188892474, 24.91616771359776, 72.99405094957865, 74.37168132180497, 37.484376082212506, 70.69589268405976, 171.96527788686436], 'perf_time': 0.06455819999996493, 'population': 432, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3500, 'steps_in_trial': 50, 'reward': [59.317410974023566, 67.08962300797158, 45.536973613314494, 102.6277070669639, 112.40284800391417, 57.38332613135417, 76.62371177219008, 62.74140010946658], 'perf_time': 0.07726740000009613, 'population': 437, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 4000, 'steps_in_trial': 50, 'reward': [20.018084357519772, 18.939302625391885, 35.24975248875095, 28.10729027463833, 85.70990731671719, 29.57022375539224, 29.814563196621123, 13.62658157625745], 'perf_time': 0.0727706999999782, 'population': 452, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 4500, 'steps_in_trial': 50, 'reward': [89.67933884765844, 57.529092876389726, 58.20596881611598, 82.85273575013208, 100.07473510460402, 52.47408483437317, 36.84138945649649, 38.500112687782035], 'perf_time': 0.06377049999991868, 'population': 440, 'numerosity': 1600}\n" - ] - } - ], - "source": [ - "from lcs.agents.xcs import XCS\n", - "\n", - "\n", - "agent = XCS(cfg)\n", - "my_metrics = avg_experiment(scenario,\n", - " cfg,\n", - " number_of_tests=1,\n", - " explore_trials=exploration_cycles,\n", - " exploit_metrics=exploitation_cycles)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialperf_timepopulationnumerosity
trial
0500.0140197274
100500.030024222998
200500.0310272401514
300500.0401352621600
400500.0419942811600
500500.0447492931600
60020.0051473011600
700500.0453203131600
800500.0444273101600
900500.0429313141600
1000500.0440043151600
1100500.0420283101600
1200500.0423103141600
1300500.0426813271600
1400500.0466013431600
150010.0026583451600
1600500.0525133521600
1700500.0474893631600
1800500.0543183641600
1900500.0597783761600
2000500.0491073831600
2100500.0566523981600
2200500.0591293921600
2300500.0638453841600
2400500.0557863861600
2500500.0550434021600
2600500.0642834011600
2700500.0574714061600
2800500.0630674101600
2900500.0545614191600
3000500.0645584321600
3100500.0632204381600
3200260.0432144371600
3300500.0575554361600
3400500.0603234331600
3500500.0772674371600
3600500.0701144361600
3700500.0679244411600
3800500.0706254481600
3900500.0800984501600
4000500.0727714521600
4100500.0750434491600
4200500.0612024431600
4300500.0598674401600
4400500.0732914491600
4500500.0637704401600
4600500.0577214501600
4700500.0695794651600
4800500.0634704571600
4900500.0589564481600
\n", - "
" - ], - "text/plain": [ - " steps_in_trial perf_time population numerosity\n", - "trial \n", - "0 50 0.014019 72 74\n", - "100 50 0.030024 222 998\n", - "200 50 0.031027 240 1514\n", - "300 50 0.040135 262 1600\n", - "400 50 0.041994 281 1600\n", - "500 50 0.044749 293 1600\n", - "600 2 0.005147 301 1600\n", - "700 50 0.045320 313 1600\n", - "800 50 0.044427 310 1600\n", - "900 50 0.042931 314 1600\n", - "1000 50 0.044004 315 1600\n", - "1100 50 0.042028 310 1600\n", - "1200 50 0.042310 314 1600\n", - "1300 50 0.042681 327 1600\n", - "1400 50 0.046601 343 1600\n", - "1500 1 0.002658 345 1600\n", - "1600 50 0.052513 352 1600\n", - "1700 50 0.047489 363 1600\n", - "1800 50 0.054318 364 1600\n", - "1900 50 0.059778 376 1600\n", - "2000 50 0.049107 383 1600\n", - "2100 50 0.056652 398 1600\n", - "2200 50 0.059129 392 1600\n", - "2300 50 0.063845 384 1600\n", - "2400 50 0.055786 386 1600\n", - "2500 50 0.055043 402 1600\n", - "2600 50 0.064283 401 1600\n", - "2700 50 0.057471 406 1600\n", - "2800 50 0.063067 410 1600\n", - "2900 50 0.054561 419 1600\n", - "3000 50 0.064558 432 1600\n", - "3100 50 0.063220 438 1600\n", - "3200 26 0.043214 437 1600\n", - "3300 50 0.057555 436 1600\n", - "3400 50 0.060323 433 1600\n", - "3500 50 0.077267 437 1600\n", - "3600 50 0.070114 436 1600\n", - "3700 50 0.067924 441 1600\n", - "3800 50 0.070625 448 1600\n", - "3900 50 0.080098 450 1600\n", - "4000 50 0.072771 452 1600\n", - "4100 50 0.075043 449 1600\n", - "4200 50 0.061202 443 1600\n", - "4300 50 0.059867 440 1600\n", - "4400 50 0.073291 449 1600\n", - "4500 50 0.063770 440 1600\n", - "4600 50 0.057721 450 1600\n", - "4700 50 0.069579 465 1600\n", - "4800 50 0.063470 457 1600\n", - "4900 50 0.058956 448 1600" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(my_metrics)" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import pandas as pd\n", - "\n", - "ax = my_metrics['steps_in_trial'].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])\n" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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6J0H9fWhldWRZ4XZ90REOskTTzyR6Sx0SNqDh7v/jcT1GAAJf967+2xgdsoyFWe/KWg/WArlW+Fova4SEYmX0dZWXdF+r63WLgwz+41Neb9EEZFuRcGjiYbgUdA7N9R3jDoN+g7KbKZERLoYBY8mGl5bDSh/Bz7ZCEd/OcM5EhHpehQ8mqiIhbr4wo3PAgZHfSmzGRKRtDj99NNpT/P+trrzzjs5+uijueSSS9p9jnTltSUaVbeJylgtOQa93nkKDjsJ+g9t/SARyWptGar9rrvu4plnnmlx7vC2Dv2eCV07dxlQEavlqPzt2Eer4Zx/y3R2RLquZ2bBhys795yfmgDn3drs5uaGY+/bty+nn356h4ZkB/jd737Hd7/7XXbv3s3cuXOZPHkylZWVfOc732HlypXU1tby05/+lGnTpjFv3jyefvppqqqqqKysPKC/xh133MHcuXOBMAjiddddx7e+9S3effddpk6dypVXXsn111+/b/+m5/vxj3/MnDlzeOqppwC49tprKSkpOWD03eeee46f/OQnxGIxRo8ezX333Uf//v2ZNWsWCxcuJC8vjy984QvMmTOnM/6F9lHwaKIiVssXc5dAHXD0+ZnOjog0sW7dOh555BF+/etfc9FFF/H4449z6aWXtnjMqlWrWLZsGVVVVRx55JHcdtttLFu2jOuvv54HHniA6667DoDKykpeeeUVXn75Za688kpWrVrF7NmzOfPMM5k7dy47d+5k8uTJfP7znwfg1VdfZcWKFfuCT4OlS5dy33338frrr+PunHjiiZx22mncc889PPvss7z44osUFRUdkM/487300kut/i22b9/OLbfcwgsvvEBBQQG33XYbd9xxB9deey1PPPEEb731FmbGzp07k/rbtoWCRxOVsVrO5HUYdpymkhVpSQslhFRq63Ds0PqQ7A0uvvhiAE499VR2797Nzp07ee6551i4cOG+X+5VVVVs3rwZgLPPPvuAwAHwt7/9ja985Sv7RuP96le/yl//+leOP/74FvPZ3Pma89prr7FmzRpOOeUUAKqrqznppJMYMGAAffr04eqrr+ZLX/oS55/f+T+EFTya6FX5IePr3oajf5TprIhIAk2HY9+7dy9Ah4ZkbxBGT2K/7+7O448/zrhx4/bb9vrrrzc7VHt7xwyMP1/8/cCB99RwnbPPPptHHnnkgG2L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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = my_metrics[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "#### Conclusions\n", - "None so far." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_maze5.ipynb b/XCS_Experiments/XCS_maze5.ipynb deleted file mode 100644 index 5c37bc6..0000000 --- a/XCS_Experiments/XCS_maze5.ipynb +++ /dev/null @@ -1,827 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### XCS in Maze 5\n", - "This experiment is meant to replicate An Analysis of Generalization in the XCS Classifier System Maze5 experiment. \n", - "Due to differences in implementation I decided to run this experiment with my default values in hopes of that it will yield similar results this way. " - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "# logging \n", - "import logging\n", - "logging.basicConfig(level=logging.INFO)\n", - "logger = logging.getLogger(__name__)\n", - "\n", - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "# environment setup\n", - "import gym\n", - "# noinspection PyUnresolvedReferences\n", - "import gym_maze\n", - "\n", - "from lcs.agents.xcs import XCS, Configuration\n", - "from utils.xcs_utils import *" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "This is how maze looks like\n", - "\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" - ] - } - ], - "source": [ - "maze = gym.make('Maze4-v0')\n", - "print(\"This is how maze looks like\")\n", - "situation = maze.reset()\n", - "maze.render()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [2.4786035893814066e-08, 2.103715185466775e-08, 3.933899037348334e-08, 2.8035119847182056e-08, 2.0106829085699827e-08, 3.168486574625643e-08, 3.72801533812359e-08, 2.2195475247048022e-08], 'perf_time': 0.009912399999990384, 'population': 31, 'numerosity': 55}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 11, 'reward': [192.249892874772, 26.931986152892236, 22.190624535826586, 20.981276831711654, 16.31917897337844, 13.662676650425665, 31.952498163145627, 19.987772937524518], 'perf_time': 0.0082487000000242, 'population': 129, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 13, 'reward': [133.86926587417383, 252.60969653413588, 111.08589510751257, 27.14766120357823, 24.811219183234048, 33.05493123906132, 36.22602763109328, 26.191831848518063], 'perf_time': 0.012212000000005219, 'population': 177, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 23, 'reward': [202.15500169263512, 69.32414588368329, 28.732562971834348, 34.839076938464935, 40.49706742931872, 39.62085778532757, 35.87329514714048, 41.652567059059216], 'perf_time': 0.03006560000000036, 'population': 217, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [17.385558720493844, 7.259722479475583, 4.181280638273523, 6.554732434636562, 4.7148670652991305, 7.942508161027174, 8.14367268903134, 20.342532207230622], 'perf_time': 0.07322769999996126, 'population': 235, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 15, 'reward': [67.43004140498363, 62.92705494400509, 163.48453783294156, 63.5936852667624, 58.935104747061445, 46.40117727683138, 73.59202092585616, 49.886982937242195], 'perf_time': 0.02999229999994668, 'population': 254, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 48, 'reward': [133.57566133771837, 19.25117170379007, 48.04793446962558, 25.438739304102864, 24.166485326506578, 17.90232318483771, 17.910287921107265, 18.777149273685946], 'perf_time': 0.06905499999999165, 'population': 270, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 14, 'reward': [290.1310465173458, 70.95462660752747, 25.15931455002641, 47.24914207644388, 36.67198569183896, 35.49515084780444, 33.50971439062103, 23.77302940908314], 'perf_time': 0.01135229999999865, 'population': 257, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 3, 'reward': [122.43382078801, 267.9803403288335, 53.739040277455466, 54.910826572630505, 58.45444129386732, 67.64604253483076, 62.73103213328288, 51.94969944780014], 'perf_time': 0.0032487999999943895, 'population': 244, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [43.79871344727405, 74.58861874130534, 50.74540081741836, 41.96739045558935, 43.507349562417275, 49.65299506150686, 28.60643440296422, 41.96100501449158], 'perf_time': 0.054834599999992406, 'population': 262, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [22.964194323607153, 19.590488646735487, 17.821273263975726, 37.64537252996056, 38.58276128734491, 19.96282696926985, 9.294564015261882, 23.592956377061093], 'perf_time': 0.03425539999994953, 'population': 268, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [41.96012242527661, 35.93517664032958, 11.860882935995082, 12.939697671494693, 13.068752574502904, 11.125460782596411, 22.41016710020909, 21.45383931185263], 'perf_time': 0.031599399999947764, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [43.2783459663675, 90.75857957387746, 11.860882935995082, 12.939697671494693, 13.068752574502904, 11.125460782596411, 58.202826141189966, 43.033221732350086], 'perf_time': 0.033915200000024015, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [43.16773690795854, 124.05087071991682, 11.860882935995082, 12.939697671494693, 13.068752574502904, 11.125460782596411, 84.9861471935618, 60.9081080435192], 'perf_time': 0.036603299999967476, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [41.96211072262627, 168.70652617850854, 11.860882935995082, 12.939697671494693, 13.068752574502904, 11.125460782596411, 123.62661420964007, 76.01526204892393], 'perf_time': 0.03156979999999976, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [43.2783459663675, 224.86796718043567, 11.860882935995082, 12.939697671494693, 13.068752574502904, 11.125460782596411, 145.10087786849732, 88.42719510213168], 'perf_time': 0.043965300000024854, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [43.16773690795854, 248.176389135676, 11.860882935995082, 12.939697671494693, 13.068752574502904, 11.125460782596411, 204.85426024627517, 99.95364920370247], 'perf_time': 0.03321809999999914, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [41.96211072262627, 262.98137261930543, 11.860882935995082, 12.939697671494693, 13.068752574502904, 11.125460782596411, 253.27813320351902, 111.28103995075587], 'perf_time': 0.0334231999999588, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [43.2783459663675, 318.550939741451, 11.860882935995082, 12.939697671494693, 13.068752574502904, 11.125460782596411, 290.8125425353441, 124.34559977146385], 'perf_time': 0.035920399999952224, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [43.16773690795854, 342.1853542117973, 11.860882935995082, 12.939697671494693, 13.068752574502904, 11.125460782596411, 323.643774443642, 136.77661047776843], 'perf_time': 0.035716999999976906, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 46, 'reward': [1.6548022247499014e-08, 100.00000003128785, 2.847751161083169e-08, 1.839999941468484e-08, 2.8493697759591003e-08, 9.213413595652578e-09, 4.0175001158005735e-08, 3.2022614663140636e-08], 'perf_time': 0.00920450000000983, 'population': 34, 'numerosity': 50}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 1 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [49.00961778467261, 64.50762644085759, 29.47468536645948, 54.73970761685219, 58.4310494016315, 52.10349059120672, 53.455571627787855, 57.184789203382394], 'perf_time': 0.0340820999999778, 'population': 140, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [95.66607826369977, 99.25735272070943, 86.08740198905025, 100.03968078143936, 95.17013302170523, 71.25877744650279, 91.65480830220858, 93.95127218176061], 'perf_time': 0.041144299999984923, 'population': 198, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [38.463824310839165, 113.6670271081694, 41.124174848646284, 40.054776219961646, 36.40078163999772, 41.96335616417129, 32.884863751189165, 37.357518675413004], 'perf_time': 0.06874570000002223, 'population': 220, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 29, 'reward': [164.35178429882404, 47.57054176904981, 45.475022657577306, 47.20882821819073, 54.13333994351864, 66.61056453333255, 58.63475392814412, 63.50235989731425], 'perf_time': 0.0410837000000015, 'population': 238, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 38, 'reward': [144.61674089546204, 108.93549885267885, 48.83293475284978, 31.776397463019837, 32.625703726951706, 43.861776369017065, 27.631086356004634, 42.64518643796308], 'perf_time': 0.04907580000002554, 'population': 251, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 11, 'reward': [38.66246547014015, 38.21531880232136, 136.31834200105538, 32.79136759906458, 36.38301804916878, 35.09720321927145, 35.29757254237806, 32.746668340913786], 'perf_time': 0.020472199999971963, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [6.471563101414737, 2.9923599917052983, 3.3576745026186865, 1.5280261035948985, 3.4897989228568185, 1.7354023743017455, 4.427308189348445, 14.216995370700657], 'perf_time': 0.04996289999996861, 'population': 267, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 38, 'reward': [171.03317481737776, 77.61015516013919, 144.8573225105397, 57.804942469601734, 57.52921041807283, 55.38538071834971, 64.14106598525274, 49.80024277999519], 'perf_time': 0.05387729999995372, 'population': 263, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [88.91078503980904, 83.40080624275967, 124.97448672474947, 48.76336263368567, 50.914103194671966, 57.93531033919993, 49.66371108075291, 56.31407802490018], 'perf_time': 0.0765039999999999, 'population': 300, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [10.876160746288562, 12.421130285176602, 17.552683852856713, 15.670669947093877, 10.640782105877207, 5.630188136502136, 1.3976353949517855, 9.066697749271258], 'perf_time': 0.03419459999997798, 'population': 275, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [48.90125288849559, 6.904800105777069, 19.002404398017802, 12.746442482741415, 80.20514108414474, 40.82603958252742, 26.612755549327325, 14.353675053469976], 'perf_time': 0.03606950000005327, 'population': 275, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [47.49859635187388, 6.904800105777069, 19.002404398017802, 12.746442482741415, 92.86591835751952, 40.82603958252742, 26.612755549327325, 14.353675053469976], 'perf_time': 0.04058579999991707, 'population': 275, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [47.23249982997278, 6.904800105777069, 19.002404398017802, 12.746442482741415, 97.04261015792775, 40.82603958252742, 26.612755549327325, 14.353675053469976], 'perf_time': 0.03547229999992396, 'population': 275, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [47.213396814212295, 6.904800105777069, 19.002404398017802, 12.746442482741415, 111.6792039253462, 40.82603958252742, 26.612755549327325, 14.353675053469976], 'perf_time': 0.03990169999997306, 'population': 275, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [47.212025412554965, 6.904800105777069, 19.002404398017802, 12.746442482741415, 109.5946437348438, 40.82603958252742, 26.612755549327325, 14.353675053469976], 'perf_time': 0.03621080000004895, 'population': 275, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [47.21192695990594, 6.904800105777069, 19.002404398017802, 12.746442482741415, 126.91449949922608, 40.82603958252742, 26.612755549327325, 14.353675053469976], 'perf_time': 0.055119900000022426, 'population': 275, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [47.211919892010094, 6.904800105777069, 19.002404398017802, 12.746442482741415, 96.02883042561409, 40.82603958252742, 26.612755549327325, 14.353675053469976], 'perf_time': 0.03591349999999238, 'population': 275, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [47.21191938460727, 6.904800105777069, 19.002404398017802, 12.746442482741415, 50.716475568348024, 40.82603958252742, 26.612755549327325, 14.353675053469976], 'perf_time': 0.03640490000009322, 'population': 275, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [47.21191934818093, 6.904800105777069, 19.002404398017802, 12.746442482741415, 47.46351073138699, 40.82603958252742, 26.612755549327325, 14.353675053469976], 'perf_time': 0.03584369999998671, 'population': 275, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 43, 'reward': [1.4698038764122936e-08, 100.00000003340615, 1.1972775321371993e-08, 3.103763400468129e-08, 1.8716889780254748e-08, 7.88990682456302e-09, 1.9196449151887155e-08, 7.1719316673371326e-09], 'perf_time': 0.007698000000004868, 'population': 29, 'numerosity': 41}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 2 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [133.7996189129713, 47.973032459405935, 45.447683222016884, 46.74760497837577, 38.5098971025024, 46.06877768546307, 45.06557636959899, 35.462351552089224], 'perf_time': 0.043370399999957954, 'population': 170, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 17, 'reward': [93.16510139357176, 158.54219067148617, 56.77234543436286, 31.29052639758666, 40.890993904933, 33.085763902250065, 39.33076142113749, 36.09778250834841], 'perf_time': 0.020786300000054325, 'population': 208, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 12, 'reward': [29.694281376972043, 17.002294104076707, 122.9005784390147, 13.482770247679545, 14.685230141879485, 12.566152338789994, 19.80740130653421, 12.9186205181667], 'perf_time': 0.015276800000037838, 'population': 225, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 11, 'reward': [29.08969590308703, 170.84452886638593, 53.36500336510805, 32.87736730946297, 34.85323432273628, 37.09350514133978, 23.920490700709657, 35.869346047177245], 'perf_time': 0.013749200000006567, 'population': 230, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [73.08061576609077, 55.07181785127997, 72.9200091557745, 58.21927582687477, 69.98627472143164, 82.30940942660268, 57.1337596213986, 56.21587704886265], 'perf_time': 0.06954849999999624, 'population': 255, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 5, 'reward': [221.80311235763986, 134.0380828328639, 142.87361011231496, 35.14886042490954, 50.186817949920815, 40.8821209096631, 38.41177906837382, 52.61067082174361], 'perf_time': 0.004535099999998238, 'population': 256, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [43.48457575859103, 59.87330579147406, 76.6216222069663, 90.542582220527, 78.19365878153472, 42.278592251571425, 42.77956683783183, 52.92107328076834], 'perf_time': 0.056932899999992514, 'population': 263, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 35, 'reward': [45.038454493165084, 131.05362608569627, 128.11514072372674, 37.00208793718265, 34.39309777316051, 34.24700251448614, 31.08237801161367, 48.138971894365824], 'perf_time': 0.05391090000000531, 'population': 278, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 16, 'reward': [77.78493646338542, 126.6373081507731, 129.40631431513793, 27.226956166377224, 32.7800091578352, 17.791500339633004, 33.13136800879297, 21.83316457897589], 'perf_time': 0.016536599999994905, 'population': 266, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 7.935437939967491, 39.32666574566197, 29.16929828947663, 36.641250187672725, 39.599911070163756, 19.16365658397643, 34.129346930919844], 'perf_time': 0.03807440000002771, 'population': 277, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 4, 'reward': [18.79729363886293, 437.71738487544417, 7.796414237618071, 16.400578639488558, 10.579479432667432, 10.320602146923138, 18.27014251081137, 22.897538426502045], 'perf_time': 0.0027982999999949243, 'population': 277, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 4, 'reward': [18.79729363886293, 394.1442786662953, 7.796414237618071, 16.400578639488558, 10.579479432667432, 10.320602146923138, 28.711823237925575, 22.897538426502045], 'perf_time': 0.0027914999999438805, 'population': 277, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 4, 'reward': [18.79729363886293, 394.03228018386307, 7.796414237618071, 16.400578639488558, 10.579479432667432, 10.320602146923138, 20.98195882540104, 22.897538426502045], 'perf_time': 0.0026734000000487868, 'population': 277, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 4, 'reward': [18.79729363886293, 394.8374951291781, 7.796414237618071, 16.400578639488558, 10.579479432667432, 10.320602146923138, 47.612973712357274, 22.897538426502045], 'perf_time': 0.0028141000000232452, 'population': 277, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 4, 'reward': [18.79729363886293, 435.1995485444507, 7.796414237618071, 16.400578639488558, 10.579479432667432, 10.320602146923138, 69.0922032232651, 22.897538426502045], 'perf_time': 0.0029746000000159256, 'population': 277, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 4, 'reward': [18.79729363886293, 448.3983931789241, 7.796414237618071, 16.400578639488558, 10.579479432667432, 10.320602146923138, 40.46800410943401, 22.897538426502045], 'perf_time': 0.002999899999963418, 'population': 277, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 4, 'reward': [18.79729363886293, 452.56574952268824, 7.796414237618071, 16.400578639488558, 10.579479432667432, 10.320602146923138, 71.76927132923092, 22.897538426502045], 'perf_time': 0.0029978999999684675, 'population': 277, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 4, 'reward': [18.79729363886293, 451.19739816377967, 7.796414237618071, 16.400578639488558, 10.579479432667432, 10.320602146923138, 42.04885285333053, 22.897538426502045], 'perf_time': 0.0031390000000328655, 'population': 277, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 4, 'reward': [18.79729363886293, 394.00003331108013, 7.796414237618071, 16.400578639488558, 10.579479432667432, 10.320602146923138, 46.11927144996678, 22.897538426502045], 'perf_time': 0.0028088999999908992, 'population': 277, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1.702606745942226e-08, 3.337702575715843e-08, 4.022228310506651e-08, 1.7081412632690127e-08, 3.052601161189198e-08, 9.228668074526546e-09, 2.4874363702785293e-08, 3.8671892994462025e-08], 'perf_time': 0.01183770000000095, 'population': 43, 'numerosity': 55}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 3 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 14, 'reward': [20.388608711146162, 142.21346623438637, 101.31224687961449, 23.565721377892125, 27.548862370785894, 24.055166560652864, 15.626725533276113, 22.107131001927584], 'perf_time': 0.014004599999907441, 'population': 144, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [124.48236409551029, 66.94232826569865, 59.90385096883716, 64.34524332257867, 73.9936587356448, 73.57131059875344, 62.769132772832464, 58.68775027227248], 'perf_time': 0.04527949999999237, 'population': 192, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 19, 'reward': [56.71827826015375, 196.60825075091694, 61.378263352272995, 58.1477390279744, 55.863434426750246, 50.62048060421538, 46.89601145752426, 58.02365866433595], 'perf_time': 0.025555299999950876, 'population': 224, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 19, 'reward': [41.982580952278084, 239.0638931627788, 39.40875465732016, 44.69249895871119, 39.18506609452847, 47.84127323643807, 31.746732719196967, 44.462488154178395], 'perf_time': 0.018707199999994373, 'population': 227, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [69.75610676974844, 63.043526620181446, 61.83792203657703, 61.857266737105476, 78.35856194657273, 59.12787337328712, 55.180073276392044, 71.69174636831293], 'perf_time': 0.06751250000002074, 'population': 256, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [48.35465884241882, 34.538336531972, 28.907939412733374, 43.15804028531008, 63.863294511468965, 39.52408859298028, 47.294922323933626, 39.39822594526861], 'perf_time': 0.0680657999999994, 'population': 261, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 22, 'reward': [29.89374214388964, 19.005686841441022, 563.9511472581387, 26.714288092588927, 32.317576602629984, 33.73991337599275, 27.781154996687693, 35.46705205232614], 'perf_time': 0.020844000000010965, 'population': 274, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [60.389938606724726, 163.1231811385494, 71.92221037033572, 65.22207201113575, 57.943004448843645, 61.50451889019013, 68.73745926642329, 44.32308662079949], 'perf_time': 0.06472550000000865, 'population': 273, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 13, 'reward': [177.10190870465266, 55.60253767626497, 24.234579792580945, 17.945730808098446, 15.742800623511453, 20.762216039707297, 19.74332075863749, 21.05820165333263], 'perf_time': 0.01914800000008654, 'population': 279, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [10.132921886706379, 10.570514516728403, 18.593008656618903, 7.572813891634311, 11.325776918595421, 13.26162361121859, 14.558398160587123, 16.087797104209898], 'perf_time': 0.039285599999971055, 'population': 251, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [23.314975250138403, 65.14259696038712, 16.21979907619884, 33.13775336973347, 12.54116307112888, 13.22485921548294, 17.68765285270435, 31.57355647277657], 'perf_time': 0.03476639999996678, 'population': 251, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [23.314975250138403, 53.107722500532596, 16.21979907619884, 33.13775336973347, 12.54116307112888, 13.22485921548294, 17.68765285270435, 31.57355647277657], 'perf_time': 0.033799600000065766, 'population': 251, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [23.314975250138403, 69.05303706201211, 16.21979907619884, 33.13775336973347, 12.54116307112888, 13.22485921548294, 17.68765285270435, 31.57355647277657], 'perf_time': 0.03156290000003992, 'population': 251, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [23.314975250138403, 65.13546406120048, 16.21979907619884, 33.13775336973347, 12.54116307112888, 13.22485921548294, 17.68765285270435, 31.57355647277657], 'perf_time': 0.03248180000002776, 'population': 251, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [23.314975250138403, 53.10772225073497, 16.21979907619884, 33.13775336973347, 12.54116307112888, 13.22485921548294, 17.68765285270435, 31.57355647277657], 'perf_time': 0.03180720000000292, 'population': 251, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [23.314975250138403, 69.05303706197189, 16.21979907619884, 33.13775336973347, 12.54116307112888, 13.22485921548294, 17.68765285270435, 31.57355647277657], 'perf_time': 0.03722620000007737, 'population': 251, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [23.314975250138403, 65.13546406120048, 16.21979907619884, 33.13775336973347, 12.54116307112888, 13.22485921548294, 17.68765285270435, 31.57355647277657], 'perf_time': 0.033311499999967964, 'population': 251, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [23.314975250138403, 53.10772225073497, 16.21979907619884, 33.13775336973347, 12.54116307112888, 13.22485921548294, 17.68765285270435, 31.57355647277657], 'perf_time': 0.03837010000006558, 'population': 251, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [23.314975250138403, 69.05303706197189, 16.21979907619884, 33.13775336973347, 12.54116307112888, 13.22485921548294, 17.68765285270435, 31.57355647277657], 'perf_time': 0.034794499999975415, 'population': 251, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [2.7293731277514354e-08, 2.9145162635450294e-08, 2.691839809634338e-08, 2.0573677461960416e-08, 5.336936225039312e-08, 3.658419324029175e-08, 2.4166062013286972e-08, 3.9015934625321394e-08], 'perf_time': 0.014218400000004294, 'population': 39, 'numerosity': 63}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 4 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 49, 'reward': [220.38262385360872, 21.198940210966207, 12.657740825553168, 10.583220403166186, 10.706828644888901, 29.663808500597202, 13.039804647658482, 25.70014032316859], 'perf_time': 0.030226599999991777, 'population': 131, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [112.39602674754661, 34.95496379742707, 43.97103747929562, 44.26482590325977, 47.43020693445715, 40.34614633981285, 50.98214542941025, 34.5041527824887], 'perf_time': 0.04808900000000449, 'population': 188, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 36, 'reward': [60.77666303059567, 81.64779362883667, 200.46600902699444, 51.86158739098585, 40.833823500254766, 35.34016461611583, 49.98398438140457, 58.49117568771261], 'perf_time': 0.03764990000001944, 'population': 214, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [51.154145415111444, 39.17739916392958, 36.08499157732464, 39.65408719422858, 64.71777431554207, 48.39531212255991, 41.90504912343571, 39.63169462189046], 'perf_time': 0.070057499999848, 'population': 240, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [17.30105103182993, 18.489326427818842, 19.48311319848976, 20.800884017473777, 14.955206589264149, 16.048350653444825, 13.873020354640866, 17.777040090130924], 'perf_time': 0.08274920000008024, 'population': 263, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 47, 'reward': [216.33632620844804, 38.47431652950688, 62.96531179644565, 35.99135577873798, 46.32138648531296, 48.02675797232942, 46.81987773782946, 36.23679823486306], 'perf_time': 0.056289800000058676, 'population': 248, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [29.796302503040096, 12.81758665936368, 17.049150898324804, 13.97616945316853, 13.568688002360714, 16.54048140506074, 16.185478313909865, 50.44592322927109], 'perf_time': 0.05269980000002761, 'population': 245, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [150.83473273671552, 65.20875546322742, 27.366210225263174, 23.411749815978865, 25.22493726316218, 20.567306022927326, 19.752424956137144, 24.40874904700699], 'perf_time': 0.06906100000014703, 'population': 259, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 8, 'reward': [245.11795002205798, 155.70990456561933, 72.29568416494982, 30.46619216609684, 40.3782157806389, 36.784332657735746, 39.000240570976686, 40.305535253332835], 'perf_time': 0.013915100000076563, 'population': 268, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [97.01259205356708, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.037389500000017506, 'population': 266, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [106.41238739001632, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03627599999981612, 'population': 266, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [106.41238739001632, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03757919999998194, 'population': 266, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [106.41238739001632, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03654310000001715, 'population': 266, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [106.41238739001632, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03767040000002453, 'population': 266, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [106.41238739001632, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.037464499999941836, 'population': 266, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [106.41238739001632, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03526380000016616, 'population': 266, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [106.41238739001632, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.037461200000052486, 'population': 266, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [106.41238739001632, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03669450000006691, 'population': 266, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [106.41238739001632, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03672890000007101, 'population': 266, 'numerosity': 1600}\n" - ] - } - ], - "source": [ - "cfg = Configuration(number_of_actions=8,\n", - " max_population=1600,\n", - " metrics_trial_frequency=100,\n", - " user_metrics_collector_fcn=xcs_metrics)\n", - "\n", - "explore_trials = 4000\n", - "\n", - "df = avg_experiment(maze,\n", - " cfg,\n", - " number_of_tests=5,\n", - " explore_trials=4000,\n", - " exploit_metrics=1000)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialperf_timepopulationnumerosity
trial
047.80.01057435.252.8
10011.20.00474879.41500.8
20035.00.021365103.61600.0
30020.80.012909126.21600.0
40034.80.025986142.81600.0
50046.00.039345155.41600.0
60034.80.030813170.21600.0
70043.40.036726180.41600.0
80036.00.033502192.61600.0
90044.00.047701200.81600.0
100035.00.043058215.81600.0
110014.00.015578219.81600.0
120028.00.035459220.01600.0
130020.20.024177224.21600.0
140038.00.047346227.61600.0
150029.80.041776237.01600.0
160031.80.043365234.01600.0
170039.60.054749240.41600.0
180029.00.036766239.41600.0
190026.40.037730250.61600.0
200040.60.059776255.81600.0
210024.00.040871254.61600.0
220017.00.027526257.61600.0
230039.60.053207253.41600.0
240032.20.043684260.81600.0
250033.40.039735262.81600.0
260036.20.046306265.61600.0
270037.80.049161257.61600.0
280037.20.038358261.21600.0
290045.60.060217265.81600.0
300029.00.046759260.01600.0
310046.40.060122262.61600.0
320035.20.048965263.41600.0
330018.60.027317268.21600.0
340023.80.028769268.21600.0
350046.40.059816268.21600.0
360027.40.036188275.01600.0
370034.40.049033273.01600.0
380032.80.049048269.81600.0
390043.80.060122276.01600.0
400050.00.036640267.41600.0
410040.80.028302267.61600.0
420040.80.029734267.61600.0
430040.80.028571267.61600.0
440040.80.028888267.61600.0
450040.80.030484267.61600.0
460040.80.032766267.61600.0
470040.80.028621267.61600.0
480040.80.030106267.61600.0
490040.80.029179267.61600.0
\n", - "
" - ], - "text/plain": [ - " steps_in_trial perf_time population numerosity\n", - "trial \n", - "0 47.8 0.010574 35.2 52.8\n", - "100 11.2 0.004748 79.4 1500.8\n", - "200 35.0 0.021365 103.6 1600.0\n", - "300 20.8 0.012909 126.2 1600.0\n", - "400 34.8 0.025986 142.8 1600.0\n", - "500 46.0 0.039345 155.4 1600.0\n", - "600 34.8 0.030813 170.2 1600.0\n", - "700 43.4 0.036726 180.4 1600.0\n", - "800 36.0 0.033502 192.6 1600.0\n", - "900 44.0 0.047701 200.8 1600.0\n", - "1000 35.0 0.043058 215.8 1600.0\n", - "1100 14.0 0.015578 219.8 1600.0\n", - "1200 28.0 0.035459 220.0 1600.0\n", - "1300 20.2 0.024177 224.2 1600.0\n", - "1400 38.0 0.047346 227.6 1600.0\n", - "1500 29.8 0.041776 237.0 1600.0\n", - "1600 31.8 0.043365 234.0 1600.0\n", - "1700 39.6 0.054749 240.4 1600.0\n", - "1800 29.0 0.036766 239.4 1600.0\n", - "1900 26.4 0.037730 250.6 1600.0\n", - "2000 40.6 0.059776 255.8 1600.0\n", - "2100 24.0 0.040871 254.6 1600.0\n", - "2200 17.0 0.027526 257.6 1600.0\n", - "2300 39.6 0.053207 253.4 1600.0\n", - "2400 32.2 0.043684 260.8 1600.0\n", - "2500 33.4 0.039735 262.8 1600.0\n", - "2600 36.2 0.046306 265.6 1600.0\n", - "2700 37.8 0.049161 257.6 1600.0\n", - "2800 37.2 0.038358 261.2 1600.0\n", - "2900 45.6 0.060217 265.8 1600.0\n", - "3000 29.0 0.046759 260.0 1600.0\n", - "3100 46.4 0.060122 262.6 1600.0\n", - "3200 35.2 0.048965 263.4 1600.0\n", - "3300 18.6 0.027317 268.2 1600.0\n", - "3400 23.8 0.028769 268.2 1600.0\n", - "3500 46.4 0.059816 268.2 1600.0\n", - "3600 27.4 0.036188 275.0 1600.0\n", - "3700 34.4 0.049033 273.0 1600.0\n", - "3800 32.8 0.049048 269.8 1600.0\n", - "3900 43.8 0.060122 276.0 1600.0\n", - "4000 50.0 0.036640 267.4 1600.0\n", - "4100 40.8 0.028302 267.6 1600.0\n", - "4200 40.8 0.029734 267.6 1600.0\n", - "4300 40.8 0.028571 267.6 1600.0\n", - "4400 40.8 0.028888 267.6 1600.0\n", - "4500 40.8 0.030484 267.6 1600.0\n", - "4600 40.8 0.032766 267.6 1600.0\n", - "4700 40.8 0.028621 267.6 1600.0\n", - "4800 40.8 0.030106 267.6 1600.0\n", - "4900 40.8 0.029179 267.6 1600.0" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(df)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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o9dg9Wvw8fzaZxn6HRY8INZ/EvQ/PBim2ntI0+YKEmll3n//fR555BHuv/9+LrjgAh5//PF691+6dCmLFy8mEonwuc99jttuu43Fixdz/fXX8+CDD3LdddcxefJk7rvvPoYPH878+fP57ne/y5///GcA3nvvPV588UWKi4sZOXIkd999N2PGjOFnP/sZN910E3feeSe33norq1atorS0lC1btuz1+8cffzzjxo3j3HPP5Zvf/CYAPXv25K233uKoo45ixowZXHrppfn4U+VNQYKHmXUiCBwPu/sTYfJ6MxsQ1joGABvC9CpgUMrh5cDafOUtEq/u82hlzVaJeND0tPZN+OTN4H39stphrPuPgKMvCmoTB58A+/UvbH6l3WuohpBPQ4cO5aijjgLg2GOPZfXq1fXuf8opp9C9e3e6d+9Oz549+drXvgbAF77wBZYsWcKOHTuYN28eEyZMqDkmGo3WbE+YMIHi4mK2bt3Kli1bGDNmDACTJk2qOWbkyJFcdNFFnHfeeZx33nkNXsMVV1zBjBkzuOOOO3j00UdZsGBBI/4ChVeI0VYGPAC84+53pHxVCUwCbg3fn05J/62Z3UHQYT4cyNtfOdqahupuWQPv/TF4fTQPYruC9NKecNBRcPy1wVw+g4/vEM8YiFQrLa0drl1cXMzu3bspKSkhmQxaDvZ6Aj5t/6KioprPRUVFxONxkskkvXr14q233sr4e926NTz9yjPPPMMrr7xCZWUlN998M8uWLat3/2984xvcdNNNnHrqqRx77LH07du2/h8uRM3jBOAS4G0zeytM+3eCoDHHzC4HPgYmALj7MjObAywnGKl1db5GWkGBh+rWDJt9LggY65cG6X2GwdGXQHlF8NBbn0PyPmOmSFszZMgQFi1axKhRo3jssccadWyPHj0YOnQov/vd75gwYQLuzpIlS/jiF7+41349e/akd+/evPrqq5x00kk89NBDjBkzhmQyyZo1azjllFM48cQT+e1vf8uOHXvPIda9e3e2b6+dTLKsrIyzzjqLq666igceeKDpF14ghRht9RqZ+zEATstyzFRgat4ylaJFh+q6B09cr34FVr0Cq14NnsK24qC/4oyb4bBzgnmSRKReP/zhD7ngggt46KGHOPXUUxt9/MMPP8xVV13FLbfcQiwWY+LEiXWCB8CsWbNqOswPOeQQZsyYQSKR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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is hard to say but oking at amount of times algorithm reaches top steps (50) the steps might actually go down over trials. need to somehow smooth it to see it better" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df['steps_in_trial'].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Conclusion\n", - "The results of my implementation of the XCS aredifferent compared to An Analysis of Generalization in the XCS\n", - "Classifier System. \n", - "Unfortunately from 10 experiments my algorithm managed to fail to solve the maze as well as the one presented in An Analysis of Generalization in the XCS Classifier System. With exploitation not really going down below 50 steps, where it should be easily below 50.\n", - "It can be caused by differences in implementation or envirement I am unaware of.\n", - "
\n", - "Unfortunately I cannot find metrics or issues that could showcase what causes what said diffrences are." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_maze5_XNCS_metrics.ipynb b/XCS_Experiments/XCS_maze5_XNCS_metrics.ipynb new file mode 100644 index 0000000..790d13a --- /dev/null +++ b/XCS_Experiments/XCS_maze5_XNCS_metrics.ipynb @@ -0,0 +1,547 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "('0', '1', '0', '1', '0', '1', '1', '1')\n", + "\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" + ] + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_maze\n", + "\n", + "maze = gym.make('Maze5-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS, Configuration\n", + "from utils.xcs_utils import *\n", + "\n", + "cfg = Configuration(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.01,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_metrics)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.06490789999998015, 'population': 118, 'numerosity': 167, 'average_specificity': 7.251497005988024, 'fraction_accuracy': 1.0}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 30, 'reward': 1000.0345501267201, 'perf_time': 0.10261690000015733, 'population': 389, 'numerosity': 1600, 'average_specificity': 6.7275, 'fraction_accuracy': 2.6545478371694405e-16}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 9, 'reward': 1000.0000000000001, 'perf_time': 0.04221030000007886, 'population': 427, 'numerosity': 1600, 'average_specificity': 6.305, 'fraction_accuracy': 7.133214498104759e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 19, 'reward': 1001.4924803628722, 'perf_time': 0.07440409999981057, 'population': 417, 'numerosity': 1602, 'average_specificity': 6.504369538077404, 'fraction_accuracy': 2.1510520454084546e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 58, 'reward': 1000.0000024149464, 'perf_time': 0.22334860000000845, 'population': 418, 'numerosity': 1600, 'average_specificity': 6.29125, 'fraction_accuracy': 2.073694525858471e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 100, 'reward': 1.675609681536095e-12, 'perf_time': 0.40097160000004806, 'population': 414, 'numerosity': 1600, 'average_specificity': 6.56875, 'fraction_accuracy': 6.395394106590811e-13}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 2, 'reward': 1504.1000000098427, 'perf_time': 0.007696799999848736, 'population': 408, 'numerosity': 1610, 'average_specificity': 7.822360248447205, 'fraction_accuracy': 3.0104455562010197e-13}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 23, 'reward': 1000.0, 'perf_time': 0.08154340000010052, 'population': 438, 'numerosity': 1600, 'average_specificity': 6.03125, 'fraction_accuracy': 3.797291047644312e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 17, 'reward': 1002.9606831241265, 'perf_time': 0.06626740000001519, 'population': 385, 'numerosity': 1618, 'average_specificity': 6.177379480840544, 'fraction_accuracy': 2.2127582131626325e-13}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 99, 'reward': 1000.0, 'perf_time': 0.3405913999999939, 'population': 411, 'numerosity': 1610, 'average_specificity': 6.719875776397515, 'fraction_accuracy': 5.4687322008958656e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 53, 'reward': 1000.0, 'perf_time': 0.13541850000001432, 'population': 434, 'numerosity': 1600, 'average_specificity': 5.989375, 'fraction_accuracy': 2.0454617467649185e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 53, 'reward': 1000.0, 'perf_time': 0.13541850000001432, 'population': 434, 'numerosity': 1600, 'average_specificity': 5.989375, 'fraction_accuracy': 2.0454617467649185e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 2, 'reward': 1762.8384355046353, 'perf_time': 0.004093699999884848, 'population': 436, 'numerosity': 1600, 'average_specificity': 5.98875, 'fraction_accuracy': 1.6879632850454125e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 2, 'reward': 1762.8384355046353, 'perf_time': 0.004093699999884848, 'population': 436, 'numerosity': 1600, 'average_specificity': 5.98875, 'fraction_accuracy': 1.6879632850454125e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 5, 'reward': 1196.2871582235587, 'perf_time': 0.010165700000015931, 'population': 436, 'numerosity': 1600, 'average_specificity': 5.98875, 'fraction_accuracy': 1.6852274143598479e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 5, 'reward': 1196.2871582235587, 'perf_time': 0.010165700000015931, 'population': 436, 'numerosity': 1600, 'average_specificity': 5.98875, 'fraction_accuracy': 1.6852274143598479e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 11, 'reward': 1026.1106184795624, 'perf_time': 0.021779000000151427, 'population': 436, 'numerosity': 1600, 'average_specificity': 5.98875, 'fraction_accuracy': 1.83519028097717e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 11, 'reward': 1026.1106184795624, 'perf_time': 0.021779000000151427, 'population': 436, 'numerosity': 1600, 'average_specificity': 5.98875, 'fraction_accuracy': 1.83519028097717e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 7, 'reward': 1206.7188092770646, 'perf_time': 0.014286399999946298, 'population': 436, 'numerosity': 1600, 'average_specificity': 5.98875, 'fraction_accuracy': 1.694373250286204e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 7, 'reward': 1206.7188092770646, 'perf_time': 0.014286399999946298, 'population': 436, 'numerosity': 1600, 'average_specificity': 5.98875, 'fraction_accuracy': 1.694373250286204e-15}\n" + ] + } + ], + "source": [ + "\n", + "df = avg_experiment(maze=maze,\n", + " cfg=cfg,\n", + " number_of_tests=1,\n", + " explore_trials=1000,\n", + " exploit_trials=500)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificityfraction_accuracy
trial
01000.000000e+000.0649081181677.2514971.000000e+00
100301.000035e+030.10261738916006.7275002.654548e-16
20091.000000e+030.04221042716006.3050007.133214e-15
300191.001492e+030.07440441716026.5043702.151052e-15
400581.000000e+030.22334941816006.2912502.073695e-15
5001001.675610e-120.40097241416006.5687506.395394e-13
60021.504100e+030.00769740816107.8223603.010446e-13
700231.000000e+030.08154343816006.0312503.797291e-15
800171.002961e+030.06626738516186.1773792.212758e-13
900991.000000e+030.34059141116106.7198765.468732e-15
1000531.000000e+030.13541943416005.9893752.045462e-15
110021.762838e+030.00409443616005.9887501.687963e-15
120051.196287e+030.01016643616005.9887501.685227e-15
1300111.026111e+030.02177943616005.9887501.835190e-15
140071.206719e+030.01428643616005.9887501.694373e-15
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 100 0.000000e+00 0.064908 118 167 \n", + "100 30 1.000035e+03 0.102617 389 1600 \n", + "200 9 1.000000e+03 0.042210 427 1600 \n", + "300 19 1.001492e+03 0.074404 417 1602 \n", + "400 58 1.000000e+03 0.223349 418 1600 \n", + "500 100 1.675610e-12 0.400972 414 1600 \n", + "600 2 1.504100e+03 0.007697 408 1610 \n", + "700 23 1.000000e+03 0.081543 438 1600 \n", + "800 17 1.002961e+03 0.066267 385 1618 \n", + "900 99 1.000000e+03 0.340591 411 1610 \n", + "1000 53 1.000000e+03 0.135419 434 1600 \n", + "1100 2 1.762838e+03 0.004094 436 1600 \n", + "1200 5 1.196287e+03 0.010166 436 1600 \n", + "1300 11 1.026111e+03 0.021779 436 1600 \n", + "1400 7 1.206719e+03 0.014286 436 1600 \n", + "\n", + " average_specificity fraction_accuracy \n", + "trial \n", + "0 7.251497 1.000000e+00 \n", + "100 6.727500 2.654548e-16 \n", + "200 6.305000 7.133214e-15 \n", + "300 6.504370 2.151052e-15 \n", + "400 6.291250 2.073695e-15 \n", + "500 6.568750 6.395394e-13 \n", + "600 7.822360 3.010446e-13 \n", + "700 6.031250 3.797291e-15 \n", + "800 6.177379 2.212758e-13 \n", + "900 6.719876 5.468732e-15 \n", + "1000 5.989375 2.045462e-15 \n", + "1100 5.988750 1.687963e-15 \n", + "1200 5.988750 1.685227e-15 \n", + "1300 5.988750 1.835190e-15 \n", + "1400 5.988750 1.694373e-15 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df['average_specificity'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"specificity\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAiAUlEQVR4nO3de5hU9Z3n8fe3b1Rz6ULkUsUt4KwbQRHFRgluIk6UqKOgjztPdIi3hLCM4iabx1USE2PMZjIxJmaMJjzEMRjHgDNqlLioUUfjJmoEvIs3vETbBkGQa9vQl+/+cU43RdvdVFf36bqcz+t5+qHOpao+3UB9+5zf+Z2vuTsiIhJfZfkOICIi+aVCICIScyoEIiIxp0IgIhJzKgQiIjFXke8APTV8+HCfMGFCvmOIiBSVtWvXfujuIzrbVnSFYMKECaxZsybfMUREioqZ/bWrbTo1JCIScyoEIiIxp0IgIhJzRTdGICK5aWpqoq6ujsbGxnxHkQglEgnGjh1LZWVl1s9RIRCJibq6OoYMGcKECRMws3zHkQi4O1u2bKGuro6JEydm/bzITg2Z2S1mtsnMXupiu5nZDWa23sxeMLNpUWUREWhsbOTggw9WEShhZsbBBx/c46O+KMcIlgGndLP9VODQ8GsB8MsIs4gIqAjEQC5/x5EVAnd/HNjazS5zgd944ClgqJmlo8rz6sYd/PjBV9ne0BTVW4iIFKV8XjU0BngvY7kuXPcJZrbAzNaY2ZrNmzfn9GZ/3dLATY++ybtbG3J6voj03g033MCkSZOYN29er19r2bJl1NfXty/Pnz+fdevW9fp14yifhaCz45dOu+S4+1J3r3X32hEjOp0hfUDpZAKADds/zun5ItJ7v/jFL1i1ahW33377fuubm5t7/FodC8HNN9/M5MmTe52xP7W0tOQ7ApDfQlAHjMtYHgvUd7Fvr6WT1QBs3KFL50TyYeHChbz11lvMmTOH66+/nquvvpoFCxYwe/Zszj//fN555x0++9nPMm3aNKZNm8YTTzzR/txrr72WKVOmMHXqVBYvXsydd97JmjVrmDdvHkcddRQff/wxs2bNar/9zPLly5kyZQpHHHEEV1xxRfvrDB48mCuvvJKpU6cyY8YMPvjgg0/kfPrpp5k5cyZHH300M2fO5LXXXgOCD+3LLruMKVOmcOSRR/Lzn/8cgNWrVzNz5kymTp3Ksccey86dO1m2bBmLFi1qf83TTz+dxx57rD3DVVddxXHHHceTTz7JNddcw/Tp0zniiCNYsGABbV0j169fz0knncTUqVOZNm0ab775Jueddx733ntv++vOmzePlStX9vrvJp+Xj64EFpnZCuA4YLu7b4jqzQ4eVEVluVG/TYVA5Hu/f5l19Tv69DUnj67hu2cc3uX2JUuW8MADD/Doo48yfPhwrr76atauXcuf/vQnqquraWho4KGHHiKRSPDGG29w7rnnsmbNGu6//37uuece/vKXvzBw4EC2bt3KsGHDuPHGG7nuuuuora3d733q6+u54oorWLt2LQcddBCzZ8/mnnvu4cwzz2T37t3MmDGDH/zgB1x++eX86le/4tvf/vZ+zz/ssMN4/PHHqaio4OGHH+Zb3/oWd911F0uXLuXtt9/m2WefpaKigq1bt7J3716++MUvcscddzB9+nR27NhBdXV1tz+n3bt3c8QRR3DNNdcEP7fJk7nqqqsAOO+887jvvvs444wzmDdvHosXL+ass86isbGR1tZW5s+fz/XXX8/cuXPZvn07TzzxBLfeemsuf137iawQmNlyYBYw3MzqgO8ClQDuvgRYBZwGrAcagIuiygJQVmaMqkmwUaeGRArGnDlz2j84m5qaWLRoEc899xzl5eW8/vrrADz88MNcdNFFDBw4EIBhw4Z1+5qrV69m1qxZtJ1GnjdvHo8//jhnnnkmVVVVnH766QAcc8wxPPTQQ594/vbt27ngggt44403MDOampracyxcuJCKior2HC+++CLpdJrp06cDUFNTc8Dvuby8nLPPPrt9+dFHH+Xaa6+loaGBrVu3cvjhhzNr1izef/99zjrrLCCYJAZwwgkncMkll7Bp0ybuvvtuzj777PY8vRFZIXD3cw+w3YFLonr/zqSTCTZs1xGBSHe/ufenQYMGtT++/vrrGTVqFM8//zytra3tH37u3qNLIttOrXSmsrKy/bXKy8s7HZv4zne+w4knnsjvfvc73nnnHWbNmtVljq6yVVRU0Nra2r6ceV1/IpGgvLy8ff3FF1/MmjVrGDduHFdffTWNjY3dfg/nnXcet99+OytWrOCWW27pcr+eiNW9hlLJao0RiBSo7du3k06nKSsr47bbbmsfSJ09eza33HILDQ3BFX9btwZXpQ8ZMoSdO3d+4nWOO+44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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['fraction_accuracy'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"fraction accuracy\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEGCAYAAACUzrmNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAvcElEQVR4nO3deZhcZZnH/e/de5buzkrIBh0wLGGRpQ2Lyr6DBJ2BCQMSBN68OiCC4hCGUYaR+IJEdNALGNQQQARRhEQQBaKIypJJSAghARIgJJ1uskF1tq5OL/f7xzndqXSqU9Wd2vv3ua666tRzzqm6q5e66znPZu6OiIjI7hRlOwAREcl9ShYiIpKQkoWIiCSkZCEiIgkpWYiISEIl2Q4gXYYNG+Y1NTXZDkNEJK8sWLBgg7sP71pesMmipqaG+fPnZzsMEZG8YmYfxivXZSgREUlIyUJERBJSshARkYSULEREJCElCxERSUjJQkREElKyEBGRhNI2zsLMZgLnAevc/dCY8q8D1wCtwDPu/u9h+U3AlUAbcK27/yksPxqYBfQD/gB8wzWvuvRxTdvbaGhs4qPGKB9titLQGAWgf1kxA8pLGFBWwoDynbf7l5UwsLyEitIizCzL70DyTToH5c0Cfgo81FFgZicDk4DD3b3ZzPYKyycAk4FDgFHAC2Z2gLu3AfcCU4FXCZLFWcCzaYxb+gh3J9rSzqZoC5ujLTQ2tbI52sKmaHAfbWlnYHkxVRWlVFaUUtWvJLivCO7LSlJfMXd3Nje3BkkgvDU0RvloU1NwHz5ubGrp9WsUGQwoK6F/eXGYSEroX1bMwPIS+peXMDBMLAPCxFNZUUplRQlV/cL78GdQ1a+U8hIlnr4ibcnC3V8ys5ouxV8Dbnf35vCYdWH5JOCxsPwDM1sBTDSzlUCVu78CYGYPAReQh8kism07m5paU/68jtPWHt48uG9vZ8e2x+wPj2lvj93XcWw7be0E+9xxh+IiKDKjpNgoMqO4yCg2oyi8Ly4KtkuKYvaH5xTHlJUU7TinKA0fLO3ubGluZXO0Nfzgb2VTU0vM4xY2NbWyuTm8j0kILW29r6RWlBbtlDzifZh2PI79sG1rd9aGtYHOZNAY7awpbN3etstrDRtYzsjqCsYO6c/EcUPYu7qCkdUV7F3Vj5HVFYyoqqCoCLY1t7F1eytbO+/D7eZWtm1vZev2tp3Ktm5vZdv2NrY0t7J2c5StGzqODc5PVIcvKy7aJZHEe89dHw8oK0nL34IExgzuR1FRan++mZ7u4wDg82Y2HYgCN7j7/wGjCWoOHerCspZwu2t5XmlsauGY78+lubU926H0OQPKineqFQwbWMa4YQNiagndf2uuKClmy/aYxNPUEjfhbGoKklJjUwt1n2zr3J/M77vIYERVBXtXV3Dg3pWceMBeQRLouFUFiSDZWkx5STGDB5Tt6Y8NCL44NLW0sbnjfYbveedEHDze8bNoYe2maOe+bXESn6Tf2987i4qi4pQ+Z6aTRQkwGDgW+AzwuJntB8RLgb6b8rjMbCrBJSv22WefPQ42VVZt3EZzaztXfm4cE0ZWpfz5g2/0O3+bj/2GX9ylJlBsXY+NrTUEz2fYTrWQ1i61lHbfuXbS2t7eWaNp71KLiT03Ha1NZoSXSzo+7IPkMLC8hJLiPbtUVN2/lNGD+vXq3ObWtji1nFYMwppBP4YNLNvjGNOlqMiCNo/yEvaurujVc7S0tbMlTmLZ2pz6WrbsUJqGv6lMJ4s64HdhA/U8M2sHhoXlY2OOGwPUh+Vj4pTH5e73A/cD1NbW5kwj+JpIEwBfPHI0h46uznI0kinlJcWUDyxm2MDybIeSNaXFRQweUJay2o5kT6a/0jwFnAJgZgcAZcAGYA4w2czKzWwcMB6Y5+4NwGYzO9aCVrTLgNkZjnmPNTQGyWJkL7+diYhkWzq7zj4KnAQMM7M64BZgJjDTzJYA24EpYS3jLTN7HFhK0KX26rAnFASN4rMIus4+Sx42btdHmigvKWKIvl2JSJ5KZ2+oi7vZdWk3x08Hpscpnw8cuusZ+aO+McqoQf3UxVBE8lZutqwVmPpIE6MG6RKUiOQvJYsMaIhEGVndux41IiK5QMkizVra2lm7OcooNW6LSB5TskiztZuiuMOoXvbVFxHJBUoWaVYfCSZ4G6lkISJ5TMkizTrGWIxWA7eI5DElizTrGL2tBm4RyWdKFmnWEIlS3a+UAeWZnllFRCR1lCzSrKGxSdN8iEjeU7JIszWRaK9nLRURyRVKFmnW0NjESDVui0ieU7JIo23bW4lsa9EYCxHJe0oWadQxxmKUekKJSJ5Tskij+rDbrGoWIpLvlCzSSIseiUihULJIozWRKGb0ev1iEZFcoWSRRg2RJvaqLE/L4ukiIpmkT7E0qm9sUnuFiBSEtCULM5tpZuvC9ba77rvBzNzMhsWU3WRmK8zsHTM7M6b8aDN7M9x3t+XR2qQNkah6QolIQUhnzWIWcFbXQjMbC5wOrIopmwBMBg4Jz7nHzIrD3fcCU4Hx4W2X58xF7s6aiKb6EJHCkLZk4e4vAR/H2fUj4N8BjymbBDzm7s3u/gGwAphoZiOBKnd/xd0deAi4IF0xp9In21pobm3XZSgRKQgZbbMws/OBNe7+Rpddo4HVMY/rwrLR4XbX8u6ef6qZzTez+evXr09R1L2zY4yFahYikv8ylizMrD9wM/DdeLvjlPluyuNy9/vdvdbda4cPH967QFNEA/JEpJBkcpGF/YFxwBthG/UY4HUzm0hQYxgbc+wYoD4sHxOnPOfVa9EjESkgGatZuPub7r6Xu9e4ew1BIjjK3T8C5gCTzazczMYRNGTPc/cGYLOZHRv2groMmJ2pmPdEQ2OUspIihg4oy3YoIiJ7LJ1dZx8FXgEONLM6M7uyu2Pd/S3gcWAp8EfgandvC3d/Dfg5QaP3e8Cz6Yo5lTp6QhUV5U1PXxGRbqXtMpS7X5xgf02Xx9OB6XGOmw8cmtLgMqChUWMsRKRwaAR3mtRHtOiRiBQOJYs0aG1rZ+0mLacqIoVDySIN1m1upt3VE0pECoeSRRpoQJ6IFBolizSobwyXU9VlKBEpEEoWabBjQJ5qFiJSGJQs0qAh0kRlRQmVFaXZDkVEJCWULNJgTUQ9oUSksChZpEFDo9axEJHComSRBvURLacqIoVFySLFmra38cm2FiULESkoShYpVt+onlAiUniULFKsIaIxFiJSeJQsUqxz9Lam+hCRAqJkkWL1jU2YwYjq8myHIiKSMkoWKVYfaWLYwHLKS4qzHYqISMooWaRYQ2NU7RUiUnDSuazqTDNbZ2ZLYsruNLO3zWyxmT1pZoNi9t1kZivM7B0zOzOm/GgzezPcd3e4FnfOWhNpYpR6QolIgUlnzWIWcFaXsueBQ939cOBd4CYAM5sATAYOCc+5x8w6ruPcC0wFxoe3rs+ZM9ydhohqFiJSeNKWLNz9JeDjLmXPuXtr+PBVYEy4PQl4zN2b3f0DYAUw0cxGAlXu/oq7O/AQcEG6Yt5TkW0tNLW0aYyFiBScbLZZXAE8G26PBlbH7KsLy0aH213L4zKzqWY238zmr1+/PsXhJtYxIE+TCIpIoclKsjCzm4FW4JGOojiH+W7K43L3+9291t1rhw8fvueB9lDHgLyRShYiUmBKMv2CZjYFOA84Nby0BEGNYWzMYWOA+rB8TJzynNRRs9ByqiJSaDJaszCzs4AbgfPdfVvMrjnAZDMrN7NxBA3Z89y9AdhsZseGvaAuA2ZnMuaeqI9EKS02hg3QgDwRKSxpq1mY2aPAScAwM6sDbiHo/VQOPB/2gH3V3b/q7m+Z2ePAUoLLU1e7e1v4VF8j6FnVj6CN41lyVH2kiZHV/SgqyunevSIiPZa2ZOHuF8cp/sVujp8OTI9TPh84NIWhpY0WPRKRQqUR3ClUr+VURaRAKVmkSFu789GmKCPVuC0iBUjJIkXWbY7S1u4avS0iBUnJIkXqOxY90joWIlKAlCxSpGPRI12GEpFCpGSRIg2dA/JUsxCRwqNkkSL1kSgDy0uoqijNdigiIimnZJEi9ZEmTfMhIgVLySJF6huD0dsiIoVIySJFtOiRiBQyJYsUiLa0sXHrdi2nKiIFS8kiBRoawzEWqlmISIFSskgBjbEQkUKnZJECHclCkwiKSKFKeopyMysGRsSe4+6r0hFUvum4DLW32ixEpEAllSzM7OsEixetBdrDYgcOT1NceaU+0sSwgeWUlxRnOxQRkbRItmbxDeBAd9+YzmDyVX1jVAPyRKSgJdtmsRpoTGcg+aw+0qTZZkWkoCWbLN4HXjSzm8zsmx233Z1gZjPNbJ2ZLYkpG2Jmz5vZ8vB+cMy+m8xshZm9Y2ZnxpQfbWZvhvvutnDx7lzh7jREmtQTSkQKWrLJYhXwPFAGVMbcdmcWcFaXsmnAXHcfD8wNH2NmE4DJwCHhOfeEDeoA9wJTgfHhretzZtWmpla2bm9TTygRKWhJtVm4+60AZlYZPPQtSZzzkpnVdCmeBJwUbj8IvAjcGJY/5u7NwAdmtgKYaGYrgSp3fyV8/YeAC4Bnk4k7E+rDqck1L5SIFLKkahZmdqiZLQSWAG+Z2QIzO6QXrzfC3RsAwvu9wvLRBO0iHerCstHhdtfy7uKcambzzWz++vXrexFez2lAnoj0Bclehrof+Ka77+vu+wLfAn6WwjjitUP4bsrjcvf73b3W3WuHDx+esuB2pz4cY6HLUCJSyJJNFgPc/S8dD9z9RWBAL15vrZmNBAjv14XldcDYmOPGAPVh+Zg45TmjPtJESZExbGB5tkMREUmbpHtDmdl3zKwmvP0n8EEvXm8OMCXcngLMjimfbGblZjaOoCF7XniparOZHRv2gros5pyc0BBpYu/qCoqLcqqTlohISiWbLK4AhgO/A54Mt7+yuxPM7FHgFeBAM6szsyuB24HTzWw5cHr4GHd/C3gcWAr8Ebja3dvCp/oa8HNgBfAeOdS4DcFyqhpjISKFLtneUJ8A1/bkid394m52ndrN8dOB6XHK5wOH9uS1M6m+sYnafQcnPlBEJI/tNlmY2Y/d/Toz+z1xGpbd/fy0RZYH2tqdjxqjjFTjtogUuEQ1i4fD+xnpDiQfbdjSTGu7a9EjESl4u00W7r4g3DzC3f8ndp+ZfQP4a7oCywdrwjEWWk5VRApdsg3cU+KUXZ7COPJSQ0TLqYpI35CozeJi4F+BcWY2J2ZXJdDnpyuv76xZKFmISGFL1GbxMtAADAN+GFO+GVicrqDyRX1jEwPKiqnql/SCgyIieSlRm8WHwIfAcZkJJ7/UR5oYOagfOTZruohIyiU7keCxZvZ/ZrbFzLabWZuZbUp3cLmuoTGq9goR6ROSbeD+KXAxsBzoB1wF/CRdQeWLYPS2ekKJSOFL+mK7u68ws+JwGo4HzOzlNMaV85pb29iwpVk1CxHpE5JNFtvMrAxYZGY/IGj07s2sswXjo3Bq8pGqWYhIH5DsZagvA8XANcBWgunE/yldQeWDjgF5WsdCRPqCZCcS/DDcbAJuTV84+aNjQJ7mhRKRviDRoLw32f3KdIenPKI80bmcqi5DiUgfkKhmcV5GoshD9Y1Rhg4oo6K0ONuhiIikXTKD8iSOYECeahUi0jck1WZhZpvZcTmqDCgFtrp7VboCy3UNjU3UDO3THcJEpA9JqjeUu1e6e1V4qyDoCfXT3r6omV1vZm+Z2RIze9TMKsxsiJk9b2bLw/vBMcffZGYrzOwdMzuzt6+bSvURjd4Wkb4j2a6zO3H3p4BTenOumY0mWKK11t0PJeiSOxmYBsx19/HA3PAxZjYh3H8IcBZwj5lltaFgU7SFLc2tjNJlKBHpI5K9DPWlmIdFQC276SWV5Ov2M7MWoD9QD9wEnBTufxB4EbgRmAQ85u7NwAdmtgKYCLyyB6+/R3b0hFLNQkT6hmRHcH8hZrsVWEnwId5j7r7GzGYAqwjGbTzn7s+Z2Qh3bwiPaTCzvcJTRgOvxjxFXVi2CzObCkwF2GeffXoTXlK06JGI9DXJDsr7SqpeMGyLmASMAyLAb8zs0t2dEi+keAe6+/3A/QC1tbV7UvPZrc7lVHUZSkT6iGSnKN/PzH5vZuvNbJ2ZzTaz/Xr5mqcBH7j7endvAX4HHA+sNbOR4euNBNaFx9cRTC/SYQzBZausaWhsorjI2KtSyUJE+oZkG7h/BTwOjARGAb8BHu3la64CjjWz/hasGnQqsAyYw461vqcAs8PtOcBkMys3s3HAeGBeL187JeojUfauqqC4SIseiUjfkGybhbn7wzGPf2lm1/TmBd39NTP7LfA6QfvHQoJLRwOBx83sSoKEcmF4/Ftm9jiwNDz+6nCa9KypjzTpEpSI9CnJJou/mNk04DGC9oJ/AZ4xsyEA7v5xT17U3W8BbulS3ExQy4h3/HRgek9eI53qG5s4cuzgxAeKiBSIZJPFv4T3/2+X8isIkkdv2y/yTnu781FjlFGHqSeUiPQdyfaGGpfuQPLFhq3NtLS5LkOJSJ+S7KC8UuBrwAlh0YvA/4a9mfqU+o4xFhqQJyJ9SLKXoe4lmDzwnvDxl8Oyq9IRVC5r6Bi9rZqFiPQhySaLz7j7p2Me/9nM3khHQLmuc0CeahYi0ockO86izcz273gQDsjLavfVbGlojNKvtJhB/UuzHYqISMYkW7P4NkH32ffDxzVAyqYAyScdix4F4wlFRPqGZGsW/wD+F2gPb/9LFmd9zab6xiijNYGgiPQxySaLhwgm/vteeBsHPLzbMwpUfaSJkdVq3BaRviXZy1AHdmng/ktfbOBubm1j/eZmTU0uIn1OsjWLhWZ2bMcDMzuG4NJUn7K2sRlQTygR6XuSrVkcA1xmZqvCx/sAy8zsTcDd/fC0RJdj6hs71rFQshCRviXZZHFWWqPIE/UakCcifVSyc0N9mO5A8kFDo6b6EJG+Kdk2CyEYvT24fyn9yoqzHYqISEYpWfRAQ6RJ7RUi0icpWfRAfSTKSF2CEpE+KCvJwswGmdlvzextM1tmZseZ2RAze97Mlof3g2OOv8nMVpjZO2Z2ZjZihqA31Gg1botIH5StmsX/AH9094OATwPLgGnAXHcfD8wNH2NmE4DJwCEEvbLuMbOMNxpsjrawOdrKSF2GEpE+KOPJwsyqCBZR+gWAu2939wgwCXgwPOxB4IJwexLwmLs3u/sHwApgYiZjhpieUEoWItIHZaNmsR+wHnjAzBaa2c/NbAAwwt0bAML7vcLjRwOrY86vC8t2YWZTzWy+mc1fv359SoPesY6FLkOJSN+TjWRRAhwF3OvuRwJbCS85dSPeXOAe70B3v9/da929dvjw4XseaYyGiGoWItJ3ZSNZ1AF17v5a+Pi3BMljrZmNBAjv18UcPzbm/DFAfYZi7dTQ2ESRwV6V5Zl+aRGRrMt4snD3j4DVZnZgWHQqsBSYA0wJy6YAs8PtOcBkMys3s3HAeGBeBkMGgstQI6oqKClWb2MR6XuSnRsq1b4OPGJmZcD7BKvuFQGPm9mVwCrgQgB3f8vMHidIKK3A1e6e8SVdGyJRXYISkT4rK8nC3RcBtXF2ndrN8dOB6emMKZH6xiYOG12dzRBERLJG11SS0N7uNGg5VRHpw5QskrBx63a2t7ZrOVUR6bOULJLQoEWPRKSPU7JIQseiR0oWItJXKVkkoV4D8kSkj1OySEJ9pInykiIG9y/NdigiIlmhZJGEjp5QZvFmHhERKXxKFklYE2lipNaxEJE+TMkiCQ2NTYzSCnki0ocpWSSwvbWddZubteiRiPRpShYJrN0UxR0tpyoifZqSRQIdYyxG6jKUiPRhShYJaDlVEREli4Q6l1PVZSgR6cOULBJoaGyiul8p/cuytfSHiEj26RMwAS16JL3Wuh02vAMfLYG1Hbe3wIrgwHPg4C/AuBOguA/MDOAOW9bBJx/Ax+/Dpnpob4X2NvC2mPv28L41TlnMse2t4O27nu+e7XeaGy79HZSUpfQplSwSWBNpyr11LNyDf7jVr8H6t6F0AFRUQUU1lIf3XR8XFWc76sK2ee3OCeGjJUGiaG8N9heXw14HwfgzYftmWPw4LHgg+N10JI79T4HSHPtb64n2dti0Jvjb7EgKH78PH68M7lu2xj/PioO/z673u5QVxewr2bXMioNELEDqk6aSRQINjVE+UzMku0G0boeGN2D1q7DqVVg9D7auC/YVlUJ7S+LnKBu4+2Sy0+NBUFoRfkvz4Buch/d4uB37OGb/LmVdnqOoOPgmXVwOxWXhdllwKynbtSz2VlQM2Z5ypbvawtb1O46pHAV7HwoHnAEjDg1uQz8FxTH/bi1N8N5fYNkceOcP8MajQdIffxocfD6MPyP4neSathaIrIKPP9g1KXzyIbQ17zi2uAwG18DgcVDzORiyHwwZF9xXjQ5/p/pwzxdZSxZmVgzMB9a4+3lmNgT4NVADrAQucvdPwmNvAq4E2oBr3f1PmYhxa3MrjU0tmZ/qY9vHQUJY/Sqseg3qX4fWoFcWg2uCb6D7HANjj4XhBwUfxM2bINoY3Dq3N3V5HHPbshY2vLvjmMwva94LBiVdk0yYeEoqggRX2g9K+oXb/cPyfuF9/6C8oyzRse2tsG5pcrWFvQ+FEYcEiaF/El8uSvvBQecEt7YWWPk3WPZ7WPY0LJ0dvLf9Tg5qHAeeAwOGpvdHG6u9DRpXw/p3YePymBrC+xBZvfPfSmn/4MN/2AFwwFlhQgiTQtVo1WgLSDZrFt8AlgEdX5+mAXPd/XYzmxY+vtHMJgCTgUOAUcALZnaAe/o/3ToWPUrrZSh32PhekBhWvxYkhw3vBPuKSmDkEfCZq2DsMcGtckScJykKPqCS+ZDqLoaWbTHJZBO0NgEWVOutKPhGb0UxZdZNWZzHHZcGzIJLFW3bw1tLeN8csx2WtzZ3OWb7rue1dpzXHGy3bIOWaPAeWqLBt/fWpnB7254lxGRqC71VXBp8Adj/FDhnRvBFYdnvg9vyPwWXV2o+G9Q4DjoXqkbt+WtC8PPZuALWvwMblgdfHja8G5R1fDmBoMY5ZD8YfTQc+s87J4SBI7Jf25OMyEqyMLMxwLnAdOCbYfEk4KRw+0HgReDGsPwxd28GPjCzFcBE4JV0x7kmXMcipQPyWpuhftGOWsPq12DbhmBfxaAgIXz6X4Jaw+ijMnMN2wzKBgS3VH0Q5aK2ljCBRHckltamoKyzPGYbYPiBydcWUqGoGPY9LridOT24/LhsDiydA3+4IbiNmRjUOA7+QvCBvTvusG1jkAR2SgrvBLWEzmvbBoP3DWoI+50U3HfcMlmrkZyVrZrFj4F/Bypjyka4ewOAuzeY2V5h+Wjg1Zjj6sKyXZjZVGAqwD777LPHQTakaoxFezv840fw7nNQv3DHdd0h+wXXpjsuKQ07QNdw06m4NOx5lINtAfGYwagjgtup3w0+7DsSx/PfCW4jDtuROEorgmSw/p0wISwPkkLTJzues6QfDPsUjPkMHHEpDBsf/N0N3T+/G9cl7TKeLMzsPGCduy8ws5OSOSVOWdymfne/H7gfoLa2do+7A9RHmjCDEVV7mCxenwVz/xtGHQUT/x/Y59igBjFwr4SninQafiAM/zac8G34ZGXQvrHs9/Di/wcvfn/nY/sPC46fMCmsIRwYJIbqsfpCIr2SjZrFZ4HzzewcoAKoMrNfAmvNbGRYqxgJhN19qAPGxpw/BqjPRKD1jVFGVFZQWrwH/1xbN8ALt0LN52HK73V9V1JjcA0cf01w2/wRvPun4G+rIylk6rKZ9BkZ/4rh7je5+xh3ryFouP6zu18KzAGmhIdNAWaH23OAyWZWbmbjgPHAvEzEWp+KRY+evwW2b4Vzf6hEIelRuTccPQWOuiy4pKlEIWmQS+MsbgceN7MrgVXAhQDu/paZPQ4sBVqBqzPREwqCMRYTRu3B9e0PX4FFv4TPXR9cEhARyVNZTRbu/iJBryfcfSNwajfHTSfoOZUx7k59pInTDu5lu0JbCzzzzeAa8QnfTm1wIiIZlks1i5zy8dbtNLe2935eqNf+NxjQNflXQZdUEZE8pm4R3ajfkzEWjWuCHioHnBWMvhURyXNKFt2o35PR23/6j2BKiLPvUKO2iBQEXYbqRudyqj3tDbViLix9Ck75z6B7o0gBaWlpoa6ujmg0mvhgyWkVFRWMGTOG0tLkpshXsuhGQ2OUspIihg7owZzwLdFgOoahn4Ljr01fcCJZUldXR2VlJTU1NZhqzXnL3dm4cSN1dXWMG5dgypiQLkN1Y02kiVHVFT37h3j57mBmznPuDGZHFSkw0WiUoUOHKlHkOTNj6NChPaohKll0oyHS1LPG7Y/fh5dmwCFfCmYPFSlQShSFoae/RyWLbtT3ZDlVd3j2xmANgjO/n/h4EZE8o2QRR2tbO+s2R5Ofbfbtp2H5c3Dyf0DVyPQGJyJ5Y86cOdx+++0APPXUUyxdujTLEfWekkUcazc30+4kV7PYvhWenRaseTBxavqDE5GsaW1t7dHx559/PtOmTQPyP1moN1Qcnd1mq5OoWfz1B7CpDv55ZmpWTRPJE7f+/i2W1m9K6XNOGFXFLV84ZLfHrFy5krPPPpvPfe5zvPzyy4wePZrZs2dz9tlnM2PGDGpra9mwYQO1tbWsXLmSWbNm8dRTT9HW1saSJUv41re+xfbt23n44YcpLy/nD3/4A0OGDOG9997j6quvZv369fTv35+f/exnHHTQQVx++eUMGTKEhQsXctRRR/HlL3+Zr371q2zbto3999+fmTNnMnjwYO6++27uu+8+SkpKmDBhAo899hizZs1i/vz5/Ou//itz5szhr3/9K7fddhtPPPEEF154Ia+//joAy5cvZ/LkySxYsCClP89UUs0ijo5kkXBA3rq34ZWfwpGXBrN9ikhGLF++nKuvvpq33nqLQYMG8cQTT+z2+CVLlvCrX/2KefPmcfPNN9O/f38WLlzIcccdx0MPPQTA1KlT+clPfsKCBQuYMWMG//Zv/9Z5/rvvvssLL7zAD3/4Qy677DLuuOMOFi9ezGGHHcatt94KwO23387ChQtZvHgx9913306vf/zxx3P++edz5513smjRIvbff3+qq6tZtGgRAA888ACXX3556n5AaaCvwnF0TvWxu2ThDs98C8or4bT/zlBkIrkjUQ0gncaNG8cRRxwBwNFHH83KlSt3e/zJJ59MZWUllZWVVFdX84UvfAGAww47jMWLF7NlyxZefvllLrzwws5zmpubO7cvvPBCiouLaWxsJBKJcOKJJwIwZcqUznMOP/xwLrnkEi644AIuuOCChO/hqquu4oEHHuCuu+7i17/+NfPmZWTlhV5TzSKOhsYmqipKGFi+m1y6+HH48O9w2n9pjWKRDCsv3zGOqbi4mNbWVkpKSmhvbwfYZfxA7PFFRUWdj4uKimhtbaW9vZ1BgwaxaNGiztuyZcs6zxkwIPFkoM888wxXX301CxYs4Oijj07YvvFP//RPPPvsszz99NMcffTRDB2a258jShZx1Eeadt+43RSB526G0bVw5GUZi0tEuldTU9N5zf+3v/1tj86tqqpi3Lhx/OY3vwGCEc5vvPHGLsdVV1czePBg/va3vwHw8MMPc+KJJ9Le3s7q1as5+eST+cEPfkAkEmHLli07nVtZWcnmzZs7H1dUVHDmmWfyta99ja985Ss9ijcblCziSDjG4s+3wbaNcN5dWs9YJEfccMMN3HvvvRx//PFs2LChx+c/8sgj/OIXv+DTn/40hxxyCLNnz4573IMPPsi3v/1tDj/8cBYtWsR3v/td2trauPTSSznssMM48sgjuf766xk0aNBO502ePJk777yTI488kvfeew+ASy65BDPjjDPO6HG8mWbunu0Y0qK2ttbnz5/fq3OP+O/nOPewkUz/4mG77qxfCPefHHSTPecHexilSH5ZtmwZBx98cLbDKBgzZsygsbGR733ve1l5/Xi/TzNb4O61XY/NeAO3mY0FHgL2BtqB+939f8xsCPBroAZYCVzk7p+E59wEXAm0Ade6+5/SFd+27a1EtrXEr1m0t8HT34QBw+GUm9MVgoj0AV/84hd57733+POf/5ztUJKSjd5QrcC33P11M6sEFpjZ88DlwFx3v93MpgHTgBvNbAIwGTgEGAW8YGYHpGsd7o6eUHFHb7/+INS/Dl/6OVRUp+PlRaSPePLJJ7MdQo9k/IK7uze4++vh9mZgGTAamAQ8GB72IHBBuD0JeMzdm939A2AFMDFd8TWEix6N6jqJ4Jb18MKtUPN5OOyf0/XyIiI5Kauts2ZWAxwJvAaMcPcGCBIKsFd42GhgdcxpdWFZvOebambzzWz++vXrexVTx4C8XS5DvXBLMLXHuT/U6nci0udkLVmY2UDgCeA6d9/dnAHxPpnjtsq7+/3uXuvutcOHD+9VXPWRKGYwoirmMtSHL8OiR+D4r8PwA3v1vCIi+SwrycLMSgkSxSPu/ruweK2ZjQz3jwTWheV1wNiY08cA9emKrT7SxPCB5ZSVhD+atpZgpHb1WDjhhnS9rIhITst4srBgxY1fAMvc/a6YXXOAKeH2FGB2TPlkMys3s3HAeCBt4+IbGruMsXjtPli3FM6+A8oSj+IUkfx00kkn0dvu9j1x9913c/DBB3PJJZf0+jkyFWusbPSG+izwZeBNM1sUlv0HcDvwuJldCawCLgRw97fM7HFgKUFPqqvT1RMKgprFQSMrgweNa+DF2+GAs+DAc9L1kiKS5zqmG0nGPffcw7PPPrvbta978nyZkvFo3P3vxG+HADi1m3OmA9PTFlSM+y+r3dF+/af/gPbWoFahRm2RnT07DT56M7XPufdhcPbt3e7ubnryfv36cdJJJ+3RFOUAv/zlL7n22mvZtGkTM2fOZOLEiWzdupWvf/3rvPnmm7S2tvJf//VfTJo0iVmzZvHMM88QjUbZunXrLuMl7rrrLmbOnAkEkwZed911fPWrX+X999/n/PPP54orruD666/vPL7r8333u99lxowZPP300wBcc8011NbW7jI77XPPPcctt9xCc3Mz+++/Pw888AADBw5k2rRpzJkzh5KSEs444wxmzJixR7+a3EpdOeBTew0MNla8AEufglP+EwbXZDMkEYmxfPlyHn30UX72s59x0UUX8cQTT3DppZfu9pwlS5awcOFCotEon/rUp7jjjjtYuHAh119/PQ899BDXXXcdAFu3buXll1/mpZde4oorrmDJkiVMnz6dU045hZkzZxKJRJg4cSKnnXYaAK+88gqLFy/uTDYdFixYwAMPPMBrr72Gu3PMMcdw4oknct999/HHP/6Rv/zlLwwbNmyXOGOf78UXX0z4s9iwYQO33XYbL7zwAgMGDOCOO+7grrvu4pprruHJJ5/k7bffxsyIRCJJ/Wx3R8kinpYo/OHbMPRTcPy12Y5GJDftpgaQTj2dnhwST1He4eKLLwbghBNOYNOmTUQiEZ577jnmzJnT+c08Go2yatUqAE4//fRdEgXA3//+d774xS92zlb7pS99ib/97W8ceeSRu42zu+frzquvvsrSpUv57Gc/C8D27ds57rjjqKqqoqKigquuuopzzz2X8847L+nn7I6SRTz/+B/4+H348lNQUp7wcBHJnK7Tkzc1BWOj9mSK8g7W5XKzmeHuPPHEExx44M7d5l977bVupy7v7Zx7sc8X+35g1/fU8Tqnn346jz766C775s2bx9y5c3nsscf46U9/usfTimjK1K4+fh/+9kM45Euw/8nZjkZEkrQnU5R3+PWvfw0ENYPq6mqqq6s588wz+clPftKZABYuXJjweU444QSeeuoptm3bxtatW3nyySf5/Oc/36NY9t13X5YuXUpzczONjY3MnTt3l2OOPfZY/vGPf7BixQoAtm3bxrvvvsuWLVtobGzknHPO4cc//nHninx7QjWLWO7w7I1QXAZnfj/b0YhID9xwww1cdNFFPPzww5xyyim9eo7Bgwdz/PHHdzZwA3znO9/huuuu4/DDD8fdqamp6Wx07s5RRx3F5ZdfzsSJwcxEV111VcJLUF2NHTuWiy66iMMPP5zx48fHPX/48OHMmjWLiy++uHNlv9tuu43KykomTZpENBrF3fnRj37Uo9eOR1OUx2prhbm3BgPwjpmansBE8pimKC8sOT1FeU4rLoEzsjOvvIhILlObhYiIJKRkISI9UqiXrvuanv4elSxEJGkVFRVs3LhRCSPPuTsbN26koiLOIm/dUJuFiCRtzJgx1NXV0dv1YiR3VFRUMGbMmKSPV7IQkaSVlpbudgI8KVy6DCUiIgkpWYiISEJKFiIiklDBjuA2s/XAh708fRiwIYXhpFM+xQr5FW8+xQr5FW8+xQr5Fe+exrqvuw/vWliwyWJPmNn8eMPdc1E+xQr5FW8+xQr5FW8+xQr5FW+6YtVlKBERSUjJQkREElKyiO/+bAfQA/kUK+RXvPkUK+RXvPkUK+RXvGmJVW0WIiKSkGoWIiKSkJKFiIgkpGQRw8zOMrN3zGyFmU3LdjwAZjbWzP5iZsvM7C0z+0ZYPsTMnjez5eH94JhzbgrfwztmdmYWYi42s4Vm9nQexDrIzH5rZm+HP+PjcjVeM7s+/BtYYmaPmllFLsVqZjPNbJ2ZLYkp63F8Zna0mb0Z7rvbzCxDsd4Z/h0sNrMnzWxQLsTaXbwx+24wMzezYWmN1911C9ptioH3gP2AMuANYEIOxDUSOCrcrgTeBSYAPwCmheXTgDvC7Qlh7OXAuPA9FWc45m8CvwKeDh/ncqwPAleF22XAoFyMFxgNfAD0Cx8/DlyeS7ECJwBHAUtiynocHzAPOA4w4Fng7AzFegZQEm7fkSuxdhdvWD4W+BPBAORh6YxXNYsdJgIr3P19d98OPAZMynJMuHuDu78ebm8GlhF8cEwi+KAjvL8g3J4EPObuze7+AbCC4L1lhJmNAc4Ffh5TnKuxVhH8E/4CwN23u3skV+MlmCW6n5mVAP2B+lyK1d1fAj7uUtyj+MxsJFDl7q948On2UMw5aY3V3Z9z99bw4atAx/zdWY21u3hDPwL+HYjtqZSWeJUsdhgNrI55XBeW5QwzqwGOBF4DRrh7AwQJBdgrPCzb7+PHBH+87TFluRrrfsB64IHwstnPzWxALsbr7muAGcAqoAFodPfncjHWLnoa3+hwu2t5pl1B8M0bcjRWMzsfWOPub3TZlZZ4lSx2iHftLmf6FZvZQOAJ4Dp337S7Q+OUZeR9mNl5wDp3X5DsKXHKMvkzLyGo2t/r7kcCWwkulXQnmz/bwQTfGMcBo4ABZnbp7k6JU5Yzf890H1/W4zazm4FW4JGOojiHZTVWM+sP3Ax8N97uOGV7HK+SxQ51BNf/OowhqOZnnZmVEiSKR9z9d2Hx2rBaSXi/LizP5vv4LHC+ma0kuIx3ipn9Mkdj7Xj9Ond/LXz8W4LkkYvxngZ84O7r3b0F+B1wfI7GGqun8dWx4/JPbHlGmNkU4DzgkvBSDeRmrPsTfHF4I/x/GwO8bmZ7k6Z4lSx2+D9gvJmNM7MyYDIwJ8sxEfZW+AWwzN3vitk1B5gSbk8BZseUTzazcjMbB4wnaNRKO3e/yd3HuHsNwc/vz+5+aS7GGsb7EbDazA4Mi04FluZovKuAY82sf/g3cSpB+1UuxhqrR/GFl6o2m9mx4fu8LOactDKzs4AbgfPdfVuX95BTsbr7m+6+l7vXhP9vdQQdYT5KW7zpaLnP1xtwDkFvo/eAm7MdTxjT5wiqiouBReHtHGAoMBdYHt4PiTnn5vA9vEOaemckEfdJ7OgNlbOxAkcA88Of71PA4FyNF7gVeBtYAjxM0NslZ2IFHiVoT2kJP7yu7E18QG34Ht8Dfko400QGYl1BcK2/4//svlyItbt4u+xfSdgbKl3xaroPERFJSJehREQkISULERFJSMlCREQSUrIQEZGElCxERCQhJQuRFLFgBtt/283+l5N4ji2pjUokNZQsRFJnELBLsjCzYgB3Pz7TAYmkSkm2AxApILcD+5vZIoLBU1sIBlIdAUwwsy3uPjCc52s2wQDAUuA/3T0jI39FekuD8kRSJJwV+Gl3P9TMTgKeAQ71YJpoYpJFCdDf3TeFC9a8Cox3d+84JktvQaRbqlmIpM+8jkTRhQHfN7MTCKZyHw2MAD7KZHAiPaFkIZI+W7spvwQYDhzt7i3hrKEVGYtKpBfUwC2SOpsJlr5NpJpg3Y8WMzsZ2De9YYnsOdUsRFLE3Tea2T/MbAnQBKzt5tBHgN+b2XyC2U3fzlCIIr2mBm4REUlIl6FERCQhJQsREUlIyUJERBJSshARkYSULEREJCElCxERSUjJQkREEvr/AetM8btPZdBlAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['numerosity', 'population']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"numerosity\", \"number of rules\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['steps_in_trial'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"steps\"])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XCS_maze5_avg.ipynb b/XCS_Experiments/XCS_maze5_avg.ipynb new file mode 100644 index 0000000..e59a376 --- /dev/null +++ b/XCS_Experiments/XCS_maze5_avg.ipynb @@ -0,0 +1,483 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_maze\n", + "\n", + "from lcs.agents.xcs import XCS, Configuration\n", + "from utils.xcs_utils import *" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "('0', '0', '0', '1', '0', '1', '1', '1')\n", + "\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" + ] + } + ], + "source": [ + "maze = gym.make('Maze5-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.031224900000097477, 'population': 52, 'numerosity': 102, 'average_specificity': 103.54901960784314, 'knowledge': 97.94520547945206}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 17, 'reward': 1002.9606864486374, 'perf_time': 0.05687790000001769, 'population': 350, 'numerosity': 1600, 'average_specificity': 28.04875, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 23, 'reward': 1000.3792643488007, 'perf_time': 0.08490669999991951, 'population': 334, 'numerosity': 1600, 'average_specificity': 34.48, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 100, 'reward': 1.3360874108178924e-12, 'perf_time': 0.23183819999985644, 'population': 229, 'numerosity': 1600, 'average_specificity': 54.68875, 'knowledge': 97.94520547945206}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 100, 'reward': 9.878432084326981e-206, 'perf_time': 0.26911330000007183, 'population': 246, 'numerosity': 1600, 'average_specificity': 60.8075, 'knowledge': 99.31506849315068}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 1, 'reward': 1710.0, 'perf_time': 0.0013762999999471504, 'population': 321, 'numerosity': 1600, 'average_specificity': 25.565, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 57, 'reward': 1000.0, 'perf_time': 0.1790046999999504, 'population': 295, 'numerosity': 1600, 'average_specificity': 33.2475, 'knowledge': 98.63013698630137}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 2, 'reward': 1507.0696698159047, 'perf_time': 0.002492800000027273, 'population': 285, 'numerosity': 1600, 'average_specificity': 35.60375, 'knowledge': 97.94520547945206}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 100, 'reward': 1.7860831411821753e-27, 'perf_time': 0.3196778000001359, 'population': 296, 'numerosity': 1600, 'average_specificity': 68.7775, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 100, 'reward': 1.3360874108272584e-12, 'perf_time': 0.3191027000000304, 'population': 329, 'numerosity': 1600, 'average_specificity': 31.73375, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 1.3360874108178924e-12, 'perf_time': 0.16431009999996604, 'population': 279, 'numerosity': 1600, 'average_specificity': 63.51, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 1, 'reward': 1710.0000011898737, 'perf_time': 0.0031443000002582266, 'population': 286, 'numerosity': 1600, 'average_specificity': 85.86125, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 100, 'reward': 1.675609681536095e-12, 'perf_time': 0.18465650000007372, 'population': 307, 'numerosity': 1600, 'average_specificity': 74.25375, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 100, 'reward': 5.688650226172007e-87, 'perf_time': 0.2229588000000149, 'population': 303, 'numerosity': 1600, 'average_specificity': 99.14125, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 100, 'reward': 1.3360874108178924e-12, 'perf_time': 0.1667013000001134, 'population': 281, 'numerosity': 1600, 'average_specificity': 86.4475, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 100, 'reward': 1.3360874108178934e-12, 'perf_time': 0.23304109999980938, 'population': 252, 'numerosity': 1600, 'average_specificity': 88.5925, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 5, 'reward': 1205.2566061211637, 'perf_time': 0.006280199999764591, 'population': 289, 'numerosity': 1600, 'average_specificity': 64.9425, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 100, 'reward': 5.688650226172007e-87, 'perf_time': 0.19819280000001527, 'population': 337, 'numerosity': 1600, 'average_specificity': 97.8425, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 100, 'reward': 1.3360874108178924e-12, 'perf_time': 0.14753710000013598, 'population': 283, 'numerosity': 1600, 'average_specificity': 86.1125, 'knowledge': 100.0}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 14, 'reward': 1000.0, 'perf_time': 0.053561700000045676, 'population': 288, 'numerosity': 1600, 'average_specificity': 87.34875, 'knowledge': 100.0}\n" + ] + } + ], + "source": [ + "cfg = Configuration(number_of_actions=8,\n", + " max_population=1600,\n", + " metrics_trial_frequency=100,\n", + " user_metrics_collector_fcn=xcs_maze_metrics)\n", + "\n", + "df = avg_experiment(maze,\n", + " cfg,\n", + " number_of_tests=1,\n", + " explore_trials=4000,\n", + " exploit_trials=4000)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificityknowledge
trial
01000.000000e+000.03122552102103.5490297.945205
1001005.688650e-870.242209222160040.7050099.315068
2001001.790415e-270.314603258160052.1375097.945205
300631.000000e+030.202063326160031.3825099.315068
400171.002961e+030.056878350160028.04875100.000000
........................
7500171.000000e+030.028059282160079.16250100.000000
7600141.000000e+030.053562288160087.34875100.000000
7700451.000000e+030.123023279160091.55625100.000000
7800181.002102e+030.077041249160086.19625100.000000
790041.255062e+030.007113272160069.48125100.000000
\n", + "

80 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 100 0.000000e+00 0.031225 52 102 \n", + "100 100 5.688650e-87 0.242209 222 1600 \n", + "200 100 1.790415e-27 0.314603 258 1600 \n", + "300 63 1.000000e+03 0.202063 326 1600 \n", + "400 17 1.002961e+03 0.056878 350 1600 \n", + "... ... ... ... ... ... \n", + "7500 17 1.000000e+03 0.028059 282 1600 \n", + "7600 14 1.000000e+03 0.053562 288 1600 \n", + "7700 45 1.000000e+03 0.123023 279 1600 \n", + "7800 18 1.002102e+03 0.077041 249 1600 \n", + "7900 4 1.255062e+03 0.007113 272 1600 \n", + "\n", + " average_specificity knowledge \n", + "trial \n", + "0 103.54902 97.945205 \n", + "100 40.70500 99.315068 \n", + "200 52.13750 97.945205 \n", + "300 31.38250 99.315068 \n", + "400 28.04875 100.000000 \n", + "... ... ... \n", + "7500 79.16250 100.000000 \n", + "7600 87.34875 100.000000 \n", + "7700 91.55625 100.000000 \n", + "7800 86.19625 100.000000 \n", + "7900 69.48125 100.000000 \n", + "\n", + "[80 rows x 7 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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wMXuXhAd6iLCSKztgFejR8aF5inVNEREEqVVaJhZV+BRYKfo9WrgbHefXdZ73P20MjYdVcb+o4BRKdLzgK7pxFmTYgVx9WmIiCRJt0/jfuByd38bwMyOAB4A+mYmrOzLj7v6NESS5Ofns3TpUjZv3pztUKSamjZtSrt27WjUqFGl3pduodGssMAAcPfJZtasUmeqZ2IFcU3sE0mydOlSmjdvTocOHailxRkkA9ydb7/9lqVLl9KxY8dKvTfdXPFLM7vWzDpEjz8DCysdaT2SX6CahkiyzZs3s/POO6vAqOfMjJ133rlKNcZ0C41zgVzgWeC56PmvKn22eiQMuVVNQySZCoxtQ1X/jumOnvoe+F2VzlBPxQqcRpoRLiLVMHHiRObMmcPIkSN5/vnn2WeffejcuXO2w6qWcgsNM7vT3S81sxdJMRPb3QdnLLIsi8U1ekpESorFYjRsmG5XMAwePJjBg0M2+fzzzzNo0KB6X2hUlCs+Gv28Dfh7isc2S30aInXTokWL2G+//bjgggvo0qULxx57LJs2beKII44gLy8PgNWrV9OhQwcAxowZw0knncSJJ55Ix44dueeee7j99tvp0aMHffr04bvvwrqqCxYsYODAgfTs2ZPDDjuMuXPnAnDOOedw+eWX079/f66++mpmzpxJnz596NatGyeffDLff/89AHfddRedO3emW7duDBs2rOjcl1xyCVOmTGHixIlceeWVdO/enQULFnDggQcW/U7z5s2jZ8+etfURVku5Raa7T4+ednf3fyRuM7PfA//NVGDZppqGSPlueHE2c5atq9Fjdt69Bdef2KXC/ebNm8e4ceN44IEHOPXUU3nmmWfK3X/WrFnMmDGDzZs3s/fee3PLLbcwY8YMLrvsMh555BEuvfRSRowYwb/+9S86derE1KlT+c1vfsNbb70FwBdffMGbb75JTk4O3bp14+6776Zfv35cd9113HDDDdx5553cfPPNLFy4kCZNmrBmzZoS5+/bty+DBw9m0KBB/OIXvwCgZcuWzJw5k+7duzN69GjOOeecKn1mtS3dXHF4irRzajCOOker3IrUXR07dqR79+4A9OzZk0WLFpW7f//+/WnevDm5ubm0bNmSE088EYD999+fRYsWsWHDBqZMmcLQoUPp3r07v/71r1m+fHnR+4cOHUpOTg5r165lzZo19OvXD4Dh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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['numerosity', 'population']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"numerosity\", \"number of rules\"])\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['steps_in_trial'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"steps\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['population'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"number of rules\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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KCzDCMUEiGG0IW9RWIYRyqDyQAZOuVxm+/btLCwsDHooezWjo6McfPDBZDKZQQ8lkrxFYRlGKHutANm+fTsTExMcdthhOAWAjeVGVdm5cyfbt2/n8MMPH/RwIhnzRWFlLArLMOrstU/DwsICa9euNeExQESEtWvXJl4LHM+ZBmIYYey1AgQw4ZEAVsJ3sKiUiQkQw6izVwsQw4iDPxPdTFiG0cCehgHy9NNPc8wxx/T9PKeddhqbNm2K/f4f//jHvP3tb+/qXMVikbPPPptjjjmGL3/5y/Xtl1xyCT/72c+6OuagSY0IqzKOFmIaiGE0MAFi9JRbbrmFE044gZ///OdceeWVADzwwAPUajVe+9rXDnh03eOF8loYr2E02GujsPx88qaHeHjH7p4e8+gDV/OJ33lV7Pc/+eSTvOtd7+LCCy/knnvuoVAo8MQTT3Deeefxuc99DoBrrrmGz3zmM6gqb3vb27j88su57rrruPfee/niF7/IFVdcwRVXXMGTTz7JE088wUUXXcRdd9216Dy33norn/jEJygWi7ziFa/g6quvZnx8nJtvvpnLLruMdevWcfzxx9ffPzMzw4UXXsjOnTt53etex80338zmzZtZt24d//qv/8qXvvQlSqUSJ510El/+8pfJZDLs2bOHSqXRZPIv/uIv+Md//MclfqKDJZ9L8cKcJRIahh9bTiWARx99lHe9611cffXVTE5OsmXLFq699lp+8YtfcO2117Jt2zZ27NjBRz7yEX74wx+yZcsW7rvvPr7zne+wceNG7rzzTgDuvPNO1q5dy69//WvuuusuTj11cdX8F154gU996lP853/+J/fffz8bNmzgi1/8IgsLC1x88cXcdNNN3HnnnTz33HP1fT75yU/y5je/mfvvv5/zzjuPZ555BoBHHnmEa6+9lrvvvpstW7aQSqX4+te/zplnnslzzz3HSSedxIc//GFuvPFGTjjhBA488MDl+0D7gJcLkjIBYhh1TAOBjjSFXjMzM8O5557L9ddfz6te9Sq2bNnCGWecwZo1awA4+uij+dWvfsXOnTs57bTT8Pq7v+c97+GOO+7gd3/3d5mbm2N2dpZt27Zx4YUXcscdd3DnnXfyzne+c9G57r33Xh5++GHe+MY3AlAqlTj55JPZunUrhx9+OEcccQQA733ve+vmp7vuuosbbrgBgLPPPpt9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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['knowledge'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"knowledge\")\n", + "ax.legend([\"knowledge%\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/XCS_Experiments/XCS_maze5_multiple_variants.ipynb b/XCS_Experiments/XCS_maze5_multiple_variants.ipynb new file mode 100644 index 0000000..123760f --- /dev/null +++ b/XCS_Experiments/XCS_maze5_multiple_variants.ipynb @@ -0,0 +1,1673 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### XCS in Maze 5\n", + "Comparison of XCS in Maze5 enviroment with and without #. The test is supposed to be replication of same test in An Analysis of Generalization in XCS. For the test implementation of XCS in PyAlcs library was used." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_maze\n", + "\n", + "from lcs.agents.xcs import XCS, Configuration\n", + "from utils.xcs_utils import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "('0', '0', '1', '0', '0', '1', '0', '1')\n", + "\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[31mA\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" + ] + } + ], + "source": [ + "maze = gym.make('Maze5-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Test with #" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.03938660000000027, 'population': 87, 'numerosity': 124}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 100, 'reward': 1.3360874108178924e-12, 'perf_time': 0.346679800000004, 'population': 427, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 44, 'reward': 1000.0002853430793, 'perf_time': 0.15536399999999162, 'population': 427, 'numerosity': 1604}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 100, 'reward': 1.7851298261216772e-27, 'perf_time': 0.3565437999999972, 'population': 387, 'numerosity': 1613}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 88, 'reward': 1000.0000000000815, 'perf_time': 0.36683460000000423, 'population': 405, 'numerosity': 1606}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 2, 'reward': 1520.5096827406408, 'perf_time': 0.007271699999989778, 'population': 425, 'numerosity': 1612}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 65, 'reward': 1000.0000002146805, 'perf_time': 0.2334617999999864, 'population': 403, 'numerosity': 1605}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 19, 'reward': 1000.0, 'perf_time': 0.07211169999999356, 'population': 401, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 45, 'reward': 1000.0002025935863, 'perf_time': 0.1713345000000004, 'population': 414, 'numerosity': 1601}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 65, 'reward': 1000.0000002182034, 'perf_time': 0.2233190999999124, 'population': 435, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 20, 'reward': 1000.0, 'perf_time': 0.05440859999998793, 'population': 449, 'numerosity': 1607}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 11, 'reward': 1023.1123448347835, 'perf_time': 0.022904700000026423, 'population': 451, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 6, 'reward': 1152.96780041217, 'perf_time': 0.012759299999970608, 'population': 452, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 6, 'reward': 1128.2094386972763, 'perf_time': 0.011480899999924077, 'population': 452, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 6, 'reward': 1223.9784778069113, 'perf_time': 0.012221100000033402, 'population': 452, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 2, 'reward': 1711.7610407360276, 'perf_time': 0.003949300000044786, 'population': 452, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 8, 'reward': 1064.5897659459672, 'perf_time': 0.015596800000025723, 'population': 452, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 5, 'reward': 1186.6833713616372, 'perf_time': 0.010307900000043446, 'population': 452, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 3, 'reward': 1381.3235471115129, 'perf_time': 0.006172300000002906, 'population': 452, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 7, 'reward': 1116.4103631939581, 'perf_time': 0.013397499999996398, 'population': 452, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.07061119999991661, 'population': 165, 'numerosity': 203}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 1 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 3, 'reward': 1374.3206827406984, 'perf_time': 0.012460499999974672, 'population': 453, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 22, 'reward': 1000.9134395653258, 'perf_time': 0.08041149999996833, 'population': 430, 'numerosity': 1607}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 100, 'reward': 1.379580580777137e-12, 'perf_time': 0.379826200000025, 'population': 411, 'numerosity': 1630}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 68, 'reward': 1000.0, 'perf_time': 0.29677409999999327, 'population': 441, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 100, 'reward': 1.3360874108181955e-12, 'perf_time': 0.31983930000001237, 'population': 408, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 36, 'reward': 1000.0, 'perf_time': 0.1265740999999707, 'population': 413, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 4, 'reward': 1254.650994427768, 'perf_time': 0.015086500000052183, 'population': 417, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 2, 'reward': 1504.1, 'perf_time': 0.009800399999903675, 'population': 427, 'numerosity': 1612}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 10, 'reward': 1032.601070865114, 'perf_time': 0.037568499999906635, 'population': 409, 'numerosity': 1608}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 52, 'reward': 1000.0, 'perf_time': 0.09743000000003121, 'population': 406, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 27, 'reward': 1000.0969019631597, 'perf_time': 0.05020490000015343, 'population': 417, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': 1388.0262496088799, 'perf_time': 0.00570249999987027, 'population': 417, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 5, 'reward': 1212.975937753817, 'perf_time': 0.009356400000115173, 'population': 418, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 3, 'reward': 1465.2906013009954, 'perf_time': 0.005543900000020585, 'population': 418, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 3, 'reward': 1396.746269286797, 'perf_time': 0.005378999999948064, 'population': 418, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 8, 'reward': 1112.5526854479428, 'perf_time': 0.015140599999995175, 'population': 418, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 8, 'reward': 1081.45919772863, 'perf_time': 0.014379100000041944, 'population': 418, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 2, 'reward': 1751.3111905077872, 'perf_time': 0.0037985999999818887, 'population': 418, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 9, 'reward': 1047.0067670510273, 'perf_time': 0.015975600000047052, 'population': 418, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.05237260000012611, 'population': 116, 'numerosity': 164}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 2 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 44, 'reward': 1000.0002853430867, 'perf_time': 0.19128300000011222, 'population': 421, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 24, 'reward': 1000.3037722358898, 'perf_time': 0.10783500000002277, 'population': 432, 'numerosity': 1646}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 43, 'reward': 1000.0004533741048, 'perf_time': 0.20141130000001795, 'population': 444, 'numerosity': 1619}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 78, 'reward': 1000.0000000034781, 'perf_time': 0.276383499999838, 'population': 442, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 100, 'reward': 1.3418402279199682e-12, 'perf_time': 0.346818500000154, 'population': 420, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 27, 'reward': 1000.096377446464, 'perf_time': 0.11376999999993131, 'population': 413, 'numerosity': 1605}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 7, 'reward': 1091.3305384501734, 'perf_time': 0.0341848000000482, 'population': 427, 'numerosity': 1629}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 9, 'reward': 1078.4009363056036, 'perf_time': 0.03662760000020171, 'population': 424, 'numerosity': 1603}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 100, 'reward': 3.186687579353646e-57, 'perf_time': 0.3896273000000292, 'population': 418, 'numerosity': 1607}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 2, 'reward': 1000.0, 'perf_time': 0.005161799999996219, 'population': 429, 'numerosity': 1603}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 3, 'reward': 1448.889137864571, 'perf_time': 0.005640200000016193, 'population': 437, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 24, 'reward': 1000.3377149633855, 'perf_time': 0.0448049000001447, 'population': 437, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 3, 'reward': 1405.252541252964, 'perf_time': 0.005916699999943376, 'population': 437, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 5, 'reward': 1308.6286165800589, 'perf_time': 0.009479499999997643, 'population': 437, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 1, 'reward': 1774.6172697767984, 'perf_time': 0.001947799999925337, 'population': 437, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 2, 'reward': 1613.6220128037962, 'perf_time': 0.0036661999999978434, 'population': 437, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 8, 'reward': 1083.5846896252422, 'perf_time': 0.015289599999960046, 'population': 437, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 5, 'reward': 1196.2736543939113, 'perf_time': 0.009789499999897089, 'population': 437, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 9, 'reward': 1058.3513937593843, 'perf_time': 0.01711089999980686, 'population': 437, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.046963700000105746, 'population': 133, 'numerosity': 166}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 3 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 21, 'reward': 1000.0, 'perf_time': 0.07174080000004324, 'population': 407, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 24, 'reward': 1000.26927768859, 'perf_time': 0.0922166999998808, 'population': 435, 'numerosity': 1611}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 4, 'reward': 1257.0779512577694, 'perf_time': 0.009310800000093877, 'population': 403, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 16, 'reward': 1000.0, 'perf_time': 0.06781670000009399, 'population': 406, 'numerosity': 1609}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 6, 'reward': 1219.0574857899735, 'perf_time': 0.02115559999992911, 'population': 444, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 30, 'reward': 1000.0468405266585, 'perf_time': 0.1277936999999838, 'population': 446, 'numerosity': 1605}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 3, 'reward': 1357.913227517159, 'perf_time': 0.012304599999879429, 'population': 419, 'numerosity': 1612}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 100, 'reward': 5.449235760694737e-57, 'perf_time': 0.3839725000002545, 'population': 407, 'numerosity': 1612}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 23, 'reward': 1000.0, 'perf_time': 0.09547569999995176, 'population': 439, 'numerosity': 1618}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 8, 'reward': 1000.0, 'perf_time': 0.023565599999983533, 'population': 425, 'numerosity': 1628}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 9, 'reward': 1045.8508057272813, 'perf_time': 0.01930770000035409, 'population': 430, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 5, 'reward': 1212.975970689765, 'perf_time': 0.010197000000061962, 'population': 430, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 7, 'reward': 1126.263762485714, 'perf_time': 0.01474869999992734, 'population': 430, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 5, 'reward': 1186.2965580197579, 'perf_time': 0.010272200000144949, 'population': 430, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 11, 'reward': 1024.7097727866153, 'perf_time': 0.02229639999995925, 'population': 430, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 3, 'reward': 1504.6622278815862, 'perf_time': 0.006170299999666895, 'population': 430, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 2, 'reward': 1516.8470575239448, 'perf_time': 0.004519200000231649, 'population': 430, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 10, 'reward': 1034.2408844881952, 'perf_time': 0.02058260000012524, 'population': 430, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 5, 'reward': 1214.431219820739, 'perf_time': 0.011123799999950279, 'population': 430, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.059359800000038376, 'population': 128, 'numerosity': 164}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 4 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 7, 'reward': 1096.8399423245976, 'perf_time': 0.026735400000234222, 'population': 436, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 32, 'reward': 1000.0174252542979, 'perf_time': 0.11813170000004902, 'population': 400, 'numerosity': 1618}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 19, 'reward': 1001.492480362872, 'perf_time': 0.07717699999966499, 'population': 384, 'numerosity': 1613}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 4, 'reward': 1301.0249783759646, 'perf_time': 0.014158299999962765, 'population': 426, 'numerosity': 1607}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 24, 'reward': 1000.2695630852817, 'perf_time': 0.10396170000012717, 'population': 427, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 7, 'reward': 1000.0000000000001, 'perf_time': 0.03595389999964027, 'population': 430, 'numerosity': 1609}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 2, 'reward': 1684.522970340908, 'perf_time': 0.005267099999855418, 'population': 398, 'numerosity': 1613}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 6, 'reward': 1128.1006881730643, 'perf_time': 0.0305223999998816, 'population': 403, 'numerosity': 1610}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 54, 'reward': 1000.0000105059867, 'perf_time': 0.20633799999995972, 'population': 373, 'numerosity': 1612}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 20, 'reward': 1000.0, 'perf_time': 0.04473310000003039, 'population': 422, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 6, 'reward': 1217.240107762636, 'perf_time': 0.01239239999995334, 'population': 426, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 8, 'reward': 1102.2410446036622, 'perf_time': 0.01575959999991028, 'population': 426, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 5, 'reward': 1188.8553203720353, 'perf_time': 0.010434000000259402, 'population': 426, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 8, 'reward': 1067.4678902335713, 'perf_time': 0.015648399999918183, 'population': 426, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 8, 'reward': 1071.9362874631172, 'perf_time': 0.016764799999691604, 'population': 426, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 3, 'reward': 1406.1015211225463, 'perf_time': 0.005696700000044075, 'population': 426, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 5, 'reward': 1189.0945121643313, 'perf_time': 0.010536499999943771, 'population': 426, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 10, 'reward': 1036.8838210333622, 'perf_time': 0.020717599999898084, 'population': 426, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 6, 'reward': 1183.297480526283, 'perf_time': 0.012420600000041304, 'population': 426, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.03598629999987679, 'population': 62, 'numerosity': 113}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 5 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 27, 'reward': 1000.0969434915081, 'perf_time': 0.1005565000000388, 'population': 407, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 30, 'reward': 1000.0520858435974, 'perf_time': 0.13899899999978516, 'population': 425, 'numerosity': 1618}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 5, 'reward': 1180.4229351000206, 'perf_time': 0.017899899999974878, 'population': 407, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 21, 'reward': 1000.752644694003, 'perf_time': 0.08061769999994794, 'population': 409, 'numerosity': 1604}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 70, 'reward': 1000.0000000387333, 'perf_time': 0.29416119999996226, 'population': 419, 'numerosity': 1616}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 36, 'reward': 1000.0044405123717, 'perf_time': 0.15123180000000502, 'population': 435, 'numerosity': 1602}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 18, 'reward': 1002.1020851844211, 'perf_time': 0.0762339000002612, 'population': 401, 'numerosity': 1612}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 100, 'reward': 1.3360875076988529e-12, 'perf_time': 0.42684070000041174, 'population': 421, 'numerosity': 1601}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 29, 'reward': 1000.0486859981896, 'perf_time': 0.12491719999979978, 'population': 405, 'numerosity': 1618}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 27, 'reward': 1000.0, 'perf_time': 0.07417189999978291, 'population': 423, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 27, 'reward': 1000.1146748114423, 'perf_time': 0.05610919999980979, 'population': 427, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 6, 'reward': 1144.522331069561, 'perf_time': 0.01293870000017705, 'population': 427, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 21, 'reward': 1000.8487783503311, 'perf_time': 0.07398839999996198, 'population': 427, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 2, 'reward': 1504.1684292231885, 'perf_time': 0.004029799999898387, 'population': 427, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 8, 'reward': 1065.1111282256875, 'perf_time': 0.01952819999996791, 'population': 427, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 7, 'reward': 1091.0319758221406, 'perf_time': 0.014534799999637471, 'population': 427, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 4, 'reward': 1304.141795902483, 'perf_time': 0.008572199999889563, 'population': 427, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 31, 'reward': 1000.0247145377447, 'perf_time': 0.07080660000019634, 'population': 427, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 2, 'reward': 1549.9705940051458, 'perf_time': 0.004033999999592197, 'population': 427, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.060875600000144914, 'population': 112, 'numerosity': 162}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 6 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 59, 'reward': 1000.0000016759601, 'perf_time': 0.23919169999953738, 'population': 417, 'numerosity': 1607}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 11, 'reward': 1023.1245751904257, 'perf_time': 0.04545179999968241, 'population': 425, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 100, 'reward': 1.9036051062222996e-12, 'perf_time': 0.3721496999996816, 'population': 401, 'numerosity': 1607}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 66, 'reward': 1000.0000001524235, 'perf_time': 0.3029335999999603, 'population': 425, 'numerosity': 1607}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 100, 'reward': 1.3825339563772019e-12, 'perf_time': 0.38729810000040743, 'population': 410, 'numerosity': 1608}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 40, 'reward': 1000.0011228850799, 'perf_time': 0.1581003999999666, 'population': 390, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 66, 'reward': 1000.0000001524231, 'perf_time': 0.33819860000039625, 'population': 382, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 20, 'reward': 1001.0596616574545, 'perf_time': 0.0947214999996504, 'population': 422, 'numerosity': 1627}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 54, 'reward': 1000.0000095032927, 'perf_time': 0.18440659999942, 'population': 401, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 90, 'reward': 1000.0, 'perf_time': 0.19590659999994386, 'population': 419, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 14, 'reward': 1009.7891185358425, 'perf_time': 0.028812599999582744, 'population': 421, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 2, 'reward': 1612.0076359686689, 'perf_time': 0.004178899999715213, 'population': 421, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 5, 'reward': 1237.0915090212516, 'perf_time': 0.01035550000051444, 'population': 421, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 15, 'reward': 1006.6303962225965, 'perf_time': 0.0311083000005965, 'population': 421, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 10, 'reward': 1039.1974114799414, 'perf_time': 0.02094779999970342, 'population': 421, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 8, 'reward': 1078.023671211146, 'perf_time': 0.016779800000222167, 'population': 421, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 5, 'reward': 1189.657784409813, 'perf_time': 0.010641999999279506, 'population': 421, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 6, 'reward': 1166.1583433416447, 'perf_time': 0.012468399999306712, 'population': 421, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 9, 'reward': 1051.931556041515, 'perf_time': 0.01826970000001893, 'population': 421, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.07244020000052842, 'population': 144, 'numerosity': 173}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 7 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 1, 'reward': 1000.0000000000009, 'perf_time': 0.004537200000413577, 'population': 424, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 100, 'reward': 2.385089144282033e-42, 'perf_time': 0.41521409999950265, 'population': 411, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 86, 'reward': 1000.0000000001615, 'perf_time': 0.4567212000001746, 'population': 411, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 19, 'reward': 1001.7791475971031, 'perf_time': 0.10988320000069507, 'population': 413, 'numerosity': 1606}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 76, 'reward': 1000.0000000049617, 'perf_time': 0.37375819999942905, 'population': 445, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 54, 'reward': 1000.0000092886122, 'perf_time': 0.2919554000000062, 'population': 416, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 53, 'reward': 1000.0000139273653, 'perf_time': 0.3465005000007295, 'population': 417, 'numerosity': 1607}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 31, 'reward': 1000.026072652642, 'perf_time': 0.13392879999992147, 'population': 386, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 13, 'reward': 1011.6508748540755, 'perf_time': 0.06629960000009305, 'population': 377, 'numerosity': 1602}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 2, 'reward': 1000.0, 'perf_time': 0.0038037000003896537, 'population': 391, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 3, 'reward': 1403.1948992763062, 'perf_time': 0.0057438000003458, 'population': 398, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 10, 'reward': 1041.9111126648863, 'perf_time': 0.019458700000541285, 'population': 399, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 3, 'reward': 1410.1837709463825, 'perf_time': 0.005983099999866681, 'population': 399, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 10, 'reward': 1035.923405988087, 'perf_time': 0.019602100000156497, 'population': 399, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 4, 'reward': 1332.0236045329214, 'perf_time': 0.008152399999744375, 'population': 399, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 12, 'reward': 1019.9165508669853, 'perf_time': 0.02328880000004574, 'population': 399, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 1, 'reward': 1799.8525241315767, 'perf_time': 0.001906599999529135, 'population': 399, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 3, 'reward': 1545.4959971229143, 'perf_time': 0.0059094000007462455, 'population': 399, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 9, 'reward': 1046.8147090431476, 'perf_time': 0.017236000000593776, 'population': 399, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.062184399999750894, 'population': 106, 'numerosity': 155}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 8 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 44, 'reward': 1000.0002853480411, 'perf_time': 0.1917186999999103, 'population': 411, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 11, 'reward': 1023.1608139277431, 'perf_time': 0.051855300000170246, 'population': 411, 'numerosity': 1613}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 13, 'reward': 1011.6753658751063, 'perf_time': 0.054022299999815004, 'population': 423, 'numerosity': 1606}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 3, 'reward': 1357.911, 'perf_time': 0.013293500000145286, 'population': 397, 'numerosity': 1606}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 30, 'reward': 1000.035617429801, 'perf_time': 0.15044070000021748, 'population': 413, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 100, 'reward': 1.7851295693460595e-27, 'perf_time': 0.4498044000001755, 'population': 427, 'numerosity': 1604}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 100, 'reward': 2.959236354149078e-12, 'perf_time': 0.39099179999993794, 'population': 438, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 65, 'reward': 1000.0000002421813, 'perf_time': 0.24346980000063922, 'population': 426, 'numerosity': 1602}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 26, 'reward': 1000.1357428823436, 'perf_time': 0.10389860000032058, 'population': 409, 'numerosity': 1604}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 7, 'reward': 1000.0, 'perf_time': 0.015668700000787794, 'population': 414, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 8, 'reward': 1087.7144177232278, 'perf_time': 0.017449500000111584, 'population': 416, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 9, 'reward': 1046.1288738911328, 'perf_time': 0.019940799999858427, 'population': 416, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 5, 'reward': 1271.6208052416594, 'perf_time': 0.011081100000410515, 'population': 416, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 10, 'reward': 1033.6132756289248, 'perf_time': 0.020710299999336712, 'population': 416, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 10, 'reward': 1033.6133363371127, 'perf_time': 0.020202200000312587, 'population': 416, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 20, 'reward': 1001.112665494724, 'perf_time': 0.04111689999990631, 'population': 416, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 2, 'reward': 1572.6215617562266, 'perf_time': 0.003991800000221701, 'population': 416, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 13, 'reward': 1012.2172292981912, 'perf_time': 0.02685120000023744, 'population': 416, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 18, 'reward': 1002.9417599451314, 'perf_time': 0.038915799999813316, 'population': 416, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.05370469999979832, 'population': 83, 'numerosity': 149}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 9 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 15, 'reward': 1005.8732059593907, 'perf_time': 0.05966329999955633, 'population': 404, 'numerosity': 1605}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 35, 'reward': 1000.0062236076386, 'perf_time': 0.1541879999995217, 'population': 405, 'numerosity': 1610}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 18, 'reward': 1000.0, 'perf_time': 0.07554629999958706, 'population': 392, 'numerosity': 1616}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 4, 'reward': 1318.6921631520768, 'perf_time': 0.01422889999957988, 'population': 419, 'numerosity': 1611}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 100, 'reward': 1.7851295701063925e-27, 'perf_time': 0.32847080000010465, 'population': 373, 'numerosity': 1604}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 37, 'reward': 1000.0031373255762, 'perf_time': 0.14370099999996455, 'population': 427, 'numerosity': 1615}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 9, 'reward': 1045.8485013182697, 'perf_time': 0.03190549999999348, 'population': 399, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 23, 'reward': 1000.379272090895, 'perf_time': 0.10634550000031595, 'population': 423, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 51, 'reward': 1000.0, 'perf_time': 0.20324520000031043, 'population': 394, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 4, 'reward': 1000.0, 'perf_time': 0.011739599999600614, 'population': 439, 'numerosity': 1603}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 13, 'reward': 1014.821866816689, 'perf_time': 0.02827499999966676, 'population': 447, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 7, 'reward': 1090.9512147051987, 'perf_time': 0.01541090000046097, 'population': 447, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 13, 'reward': 1011.7542039097772, 'perf_time': 0.028209399999468587, 'population': 447, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 5, 'reward': 1186.7634429865655, 'perf_time': 0.010863900000003923, 'population': 447, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 41, 'reward': 1000.0008487298285, 'perf_time': 0.08915609999985463, 'population': 447, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 9, 'reward': 1050.0200785772788, 'perf_time': 0.019271699999990233, 'population': 447, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 4, 'reward': 1255.8075209830047, 'perf_time': 0.008945200000198383, 'population': 447, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 9, 'reward': 1046.6980496023373, 'perf_time': 0.019656299999951443, 'population': 447, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 4, 'reward': 1258.6957806233113, 'perf_time': 0.009097699999983888, 'population': 447, 'numerosity': 1600}\n" + ] + } + ], + "source": [ + "cfg = Configuration(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.01,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_metrics)\n", + "\n", + "df = avg_experiment(maze,\n", + " cfg,\n", + " number_of_tests=10,\n", + " explore_trials=4000,\n", + " exploit_metrics=1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Tests without #" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.062294399999700545, 'population': 88, 'numerosity': 154}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 8, 'reward': 1069.7362843455132, 'perf_time': 0.020595300000422867, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 17, 'reward': 1003.497997986562, 'perf_time': 0.04291319999992993, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 33, 'reward': 1000.0123459880984, 'perf_time': 0.10462439999992057, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 10, 'reward': 1032.6208636593763, 'perf_time': 0.0765161999997872, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 8, 'reward': 1064.5753531245764, 'perf_time': 0.02856419999989157, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 19, 'reward': 1002.0266555032888, 'perf_time': 0.05286040000009962, 'population': 279, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 17, 'reward': 1003.3405135176819, 'perf_time': 0.0447639000003619, 'population': 278, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 4, 'reward': 1254.1653939253165, 'perf_time': 0.013427500000034343, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 2, 'reward': 1506.2020850181295, 'perf_time': 0.00600639999993291, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 18, 'reward': 1000.0, 'perf_time': 0.025685499999781314, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 3, 'reward': 1408.7353066670735, 'perf_time': 0.004793500000232598, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 6, 'reward': 1154.222374537169, 'perf_time': 0.008851999999933469, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 3, 'reward': 1394.193309974045, 'perf_time': 0.0043358999992051395, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 5, 'reward': 1197.9475393286307, 'perf_time': 0.007131200000003446, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 3, 'reward': 1441.19899366333, 'perf_time': 0.0043007000003854046, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 4, 'reward': 1415.240462273819, 'perf_time': 0.005763699999988603, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 7, 'reward': 1116.9919008417658, 'perf_time': 0.01003229999969335, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 5, 'reward': 1199.6299893063601, 'perf_time': 0.007480700000087381, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 5, 'reward': 1207.7466465022012, 'perf_time': 0.007589300000290677, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.06290399999943475, 'population': 96, 'numerosity': 172}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 1 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 1, 'reward': 1710.0000012981145, 'perf_time': 0.0029386000005615642, 'population': 278, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 5, 'reward': 1180.4229351002289, 'perf_time': 0.01265019999937067, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 9, 'reward': 1045.848500718449, 'perf_time': 0.028199299999869254, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 83, 'reward': 1000.0000000004513, 'perf_time': 0.20622400000047492, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 20, 'reward': 1001.0596611220385, 'perf_time': 0.05876379999972414, 'population': 279, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 42, 'reward': 1000.0005666612395, 'perf_time': 0.11281680000047345, 'population': 274, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 8, 'reward': 1064.5754553288393, 'perf_time': 0.01823659999990923, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 14, 'reward': 1008.2737025928768, 'perf_time': 0.03555750000032276, 'population': 280, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 11, 'reward': 1025.2143189126946, 'perf_time': 0.030587999999625026, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 75, 'reward': 1000.0, 'perf_time': 0.10738619999938237, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 6, 'reward': 1135.9012471486851, 'perf_time': 0.009208800000124029, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 9, 'reward': 1062.3271261027714, 'perf_time': 0.014051300000573974, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 7, 'reward': 1103.4646362622877, 'perf_time': 0.010031599999820173, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 9, 'reward': 1064.046095612926, 'perf_time': 0.014865800000734453, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 1, 'reward': 1781.580276820243, 'perf_time': 0.001336500000434171, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 4, 'reward': 1463.039898635458, 'perf_time': 0.006189099999573955, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 7, 'reward': 1100.0372266919285, 'perf_time': 0.01085129999955825, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 4, 'reward': 1345.0929090467826, 'perf_time': 0.0054891999998289975, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 4, 'reward': 1363.5337437496123, 'perf_time': 0.005729800000153773, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.05717949999962002, 'population': 104, 'numerosity': 142}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 2 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 6, 'reward': 1230.7023733333174, 'perf_time': 0.015675699999519566, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 11, 'reward': 1023.1122292890105, 'perf_time': 0.02722260000064125, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 13, 'reward': 1011.6596403904165, 'perf_time': 0.030490300000565185, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 24, 'reward': 1000.2937689742848, 'perf_time': 0.08918879999964702, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 11, 'reward': 1039.5219120610313, 'perf_time': 0.027231900000515452, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 6, 'reward': 1128.1002839755552, 'perf_time': 0.01865060000000085, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 3, 'reward': 1571.0224027696836, 'perf_time': 0.008332599999448576, 'population': 287, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 5, 'reward': 1182.531700424391, 'perf_time': 0.011465600000519771, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 14, 'reward': 1008.2721341521094, 'perf_time': 0.038349899999957415, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 1, 'reward': 1000.0, 'perf_time': 0.0014781999998376705, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 4, 'reward': 1359.0865453030412, 'perf_time': 0.006090300000323623, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 2, 'reward': 1697.03019412774, 'perf_time': 0.0028224999996382394, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 5, 'reward': 1205.8392261327208, 'perf_time': 0.0073050000000876025, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 4, 'reward': 1646.0213989133529, 'perf_time': 0.005791300000055344, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 6, 'reward': 1238.4011605801454, 'perf_time': 0.008897300000171526, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 8, 'reward': 1079.5310681113724, 'perf_time': 0.011544200000571436, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 7, 'reward': 1097.5152387043029, 'perf_time': 0.010138999999981024, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 5, 'reward': 1191.3957406067573, 'perf_time': 0.0071196999997482635, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 6, 'reward': 1150.8563949841352, 'perf_time': 0.008709599999747297, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.08383129999947414, 'population': 160, 'numerosity': 218}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 3 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 2, 'reward': 1862.0230052008246, 'perf_time': 0.004429399999935413, 'population': 281, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 13, 'reward': 1011.6508748004142, 'perf_time': 0.0389151999988826, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 19, 'reward': 1001.5609083551442, 'perf_time': 0.058025000000270666, 'population': 280, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 42, 'reward': 1000.0007099135414, 'perf_time': 0.08982250000008207, 'population': 287, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 16, 'reward': 1005.2790184054709, 'perf_time': 0.030853700000079698, 'population': 287, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 19, 'reward': 1001.492480362872, 'perf_time': 0.08510260000002745, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 35, 'reward': 1000.0063724760975, 'perf_time': 0.09756620000007388, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 89, 'reward': 1000.0000000000584, 'perf_time': 0.2924643999995169, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 9, 'reward': 1062.2581965416425, 'perf_time': 0.030136100000163424, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 60, 'reward': 1000.0, 'perf_time': 0.08542019999913464, 'population': 287, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 5, 'reward': 1204.6014528747346, 'perf_time': 0.007318399999348912, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 10, 'reward': 1041.6971082100613, 'perf_time': 0.01556689999961236, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 3, 'reward': 1420.1557026179194, 'perf_time': 0.004243499999574851, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 6, 'reward': 1143.0278430711573, 'perf_time': 0.008223500000895001, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 7, 'reward': 1142.8855489162665, 'perf_time': 0.012560600000142585, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 3, 'reward': 1504.9905831769975, 'perf_time': 0.0044067999988328665, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 5, 'reward': 1216.7835931749028, 'perf_time': 0.007464799999070237, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 6, 'reward': 1164.413292908423, 'perf_time': 0.009724300000016228, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 4, 'reward': 1289.0878562247542, 'perf_time': 0.005820000000312575, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.06481080000048678, 'population': 112, 'numerosity': 164}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 4 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 20, 'reward': 1001.8465151117286, 'perf_time': 0.052259699999922304, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 31, 'reward': 1000.0245932566783, 'perf_time': 0.08674550000068848, 'population': 281, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 31, 'reward': 1000.0289098906838, 'perf_time': 0.08293419999972684, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 47, 'reward': 1000.0001021274269, 'perf_time': 0.1380710999983421, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 23, 'reward': 1000.3982346013896, 'perf_time': 0.06591300000036426, 'population': 277, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 21, 'reward': 1000.7523593509238, 'perf_time': 0.049099400001068716, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 5, 'reward': 1180.4229351000815, 'perf_time': 0.014796100000239676, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 100, 'reward': 1.8153865487941965e-12, 'perf_time': 0.24191129999962868, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 4, 'reward': 1254.1168230964154, 'perf_time': 0.0071042999989003874, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 3, 'reward': 1000.0, 'perf_time': 0.004057800000737188, 'population': 281, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 7, 'reward': 1101.5456594180644, 'perf_time': 0.010086000000228523, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': 1435.89699853493, 'perf_time': 0.004522499999438878, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 10, 'reward': 1043.1568241791304, 'perf_time': 0.014613900000767899, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 3, 'reward': 1462.009403458957, 'perf_time': 0.004320499998357263, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 6, 'reward': 1151.5190725494458, 'perf_time': 0.008447000000160187, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 2, 'reward': 1573.2866131611931, 'perf_time': 0.0029470000008586794, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 7, 'reward': 1158.526623657164, 'perf_time': 0.009952099999281927, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 5, 'reward': 1193.672697580129, 'perf_time': 0.007063099999868427, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 5, 'reward': 1280.7286346769456, 'perf_time': 0.007440800000040326, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.05573589999949036, 'population': 104, 'numerosity': 170}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 5 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 4, 'reward': 1254.6862769339384, 'perf_time': 0.010087200000270968, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 9, 'reward': 1045.8496236000062, 'perf_time': 0.02877500000067812, 'population': 287, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 17, 'reward': 1000.0, 'perf_time': 0.03946710000127496, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 5, 'reward': 1226.540725155102, 'perf_time': 0.014036399999895366, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 19, 'reward': 1001.4924815802466, 'perf_time': 0.04494359999989683, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 44, 'reward': 1000.0002853529221, 'perf_time': 0.12201949999871431, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 3, 'reward': 1357.9172236132372, 'perf_time': 0.005913799999689218, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 13, 'reward': 1012.2534778861876, 'perf_time': 0.03873869999915769, 'population': 281, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 28, 'reward': 1000.0684279882503, 'perf_time': 0.07311520000075689, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 16, 'reward': 1000.0, 'perf_time': 0.023465799999030423, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 3, 'reward': 1553.0637410735094, 'perf_time': 0.0042983000003005145, 'population': 287, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 6, 'reward': 1148.0598917515902, 'perf_time': 0.008705599999302649, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 10, 'reward': 1036.9500789665535, 'perf_time': 0.015953800000716, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 6, 'reward': 1134.4278399058771, 'perf_time': 0.008629900001324131, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 4, 'reward': 1446.2585079468902, 'perf_time': 0.0057507999990775716, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 6, 'reward': 1133.0412270168117, 'perf_time': 0.00837370000044757, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 5, 'reward': 1190.4323595478797, 'perf_time': 0.007608800000525662, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 8, 'reward': 1088.4876619538313, 'perf_time': 0.011046899999200832, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 8, 'reward': 1077.4604895309424, 'perf_time': 0.011222600000110106, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.09063959999912186, 'population': 176, 'numerosity': 206}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 6 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 19, 'reward': 1002.5521415288931, 'perf_time': 0.0481552000001102, 'population': 280, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 12, 'reward': 1016.4096827408683, 'perf_time': 0.021171899999899324, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 27, 'reward': 1000.1308728395157, 'perf_time': 0.0821165999986988, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 27, 'reward': 1000.0965397140403, 'perf_time': 0.08447899999919173, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 43, 'reward': 1000.00040719621, 'perf_time': 0.14252760000090348, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 46, 'reward': 1000.0001807159497, 'perf_time': 0.12011320000056003, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 7, 'reward': 1090.9512015839114, 'perf_time': 0.01668250000147964, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 8, 'reward': 1000.0000000000001, 'perf_time': 0.025420699999813223, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 1, 'reward': 1000.0, 'perf_time': 0.0032250999993266305, 'population': 278, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 6, 'reward': 1000.0, 'perf_time': 0.00872479999998177, 'population': 287, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 9, 'reward': 1047.9508390668313, 'perf_time': 0.024537299999792594, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 4, 'reward': 1328.3142331489823, 'perf_time': 0.006081000001358916, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 8, 'reward': 1099.0236175712814, 'perf_time': 0.01125299999876006, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 3, 'reward': 1478.6557033323695, 'perf_time': 0.004173899998932029, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 4, 'reward': 1266.4452555823912, 'perf_time': 0.005671999999321997, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 7, 'reward': 1145.927081236905, 'perf_time': 0.010240600000543054, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 4, 'reward': 1274.997126869359, 'perf_time': 0.005794100001367042, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 5, 'reward': 1228.575533593021, 'perf_time': 0.007397800000035204, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 4, 'reward': 1325.6797421903325, 'perf_time': 0.00582609999946726, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.06311819999973522, 'population': 120, 'numerosity': 164}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 7 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 1000.0000365525294, 'perf_time': 0.11585720000039146, 'population': 275, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 8, 'reward': 1064.5775806223933, 'perf_time': 0.02026280000063707, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 2, 'reward': 1648.6099683375196, 'perf_time': 0.00609719999920344, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 46, 'reward': 1000.0001438414463, 'perf_time': 0.11608680000063032, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 65, 'reward': 1000.000000322901, 'perf_time': 0.1782708000009734, 'population': 287, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 100, 'reward': 1.6756126577044936e-12, 'perf_time': 0.24585110000043642, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 80, 'reward': 1000.0000000014223, 'perf_time': 0.20161539999935485, 'population': 278, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 9, 'reward': 1057.547959335987, 'perf_time': 0.025601800000004005, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 7, 'reward': 1093.9119031341666, 'perf_time': 0.014527299999826937, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 14, 'reward': 1000.0, 'perf_time': 0.022765700001400546, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 9, 'reward': 1063.8433091582654, 'perf_time': 0.012567100000524078, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': 1388.1581319350853, 'perf_time': 0.00433820000034757, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 6, 'reward': 1214.087296487858, 'perf_time': 0.00917009999830043, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 3, 'reward': 1490.4006125483886, 'perf_time': 0.004213600001094164, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 6, 'reward': 1165.2640496888264, 'perf_time': 0.00865210000119987, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 8, 'reward': 1076.2185436521688, 'perf_time': 0.011715899998307577, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 8, 'reward': 1075.5410456038153, 'perf_time': 0.011109099999885075, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 10, 'reward': 1036.6437740222116, 'perf_time': 0.014982599999711965, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 3, 'reward': 1395.19708924388, 'perf_time': 0.004434200000105193, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 14, 'reward': 1000.0, 'perf_time': 0.0028872000002593268, 'population': 16, 'numerosity': 16}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 8 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 9, 'reward': 1045.916928720243, 'perf_time': 0.031316299999161856, 'population': 281, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 64, 'reward': 1000.000000302425, 'perf_time': 0.14643439999963448, 'population': 278, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 34, 'reward': 1000.0091675379983, 'perf_time': 0.07864499999959662, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 37, 'reward': 1000.0031420034804, 'perf_time': 0.10210030000052939, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 100, 'reward': 1.3580121835822976e-12, 'perf_time': 0.25038909999966563, 'population': 280, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 37, 'reward': 1000.0037033927096, 'perf_time': 0.09176029999980528, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 46, 'reward': 1000.0002459688732, 'perf_time': 0.11989139999968756, 'population': 280, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 21, 'reward': 1000.7523777770746, 'perf_time': 0.051262400000268826, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 2, 'reward': 1521.0438947347743, 'perf_time': 0.002695799999855808, 'population': 286, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 13, 'reward': 1000.0, 'perf_time': 0.01815340000030119, 'population': 285, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 6, 'reward': 1157.72925089001, 'perf_time': 0.009814700000788434, 'population': 287, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 4, 'reward': 1267.4286543498215, 'perf_time': 0.006414599998606718, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 7, 'reward': 1108.026979495662, 'perf_time': 0.00978680000116583, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 4, 'reward': 1355.2660421909504, 'perf_time': 0.005884300000616349, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 7, 'reward': 1097.517136531461, 'perf_time': 0.0100044999999227, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 9, 'reward': 1050.6140494445972, 'perf_time': 0.013858000000254833, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 10, 'reward': 1039.5827838966466, 'perf_time': 0.01412720000007539, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 8, 'reward': 1071.9394255986938, 'perf_time': 0.011542599999302183, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 7, 'reward': 1096.8041605513174, 'perf_time': 0.010325600000214763, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.06579009999950358, 'population': 120, 'numerosity': 172}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 9 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 11, 'reward': 1031.4330370276778, 'perf_time': 0.026859100000365288, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 56, 'reward': 1000.0000047593875, 'perf_time': 0.12222990000009304, 'population': 279, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 26, 'reward': 1000.1357428823436, 'perf_time': 0.07445089999964694, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 81, 'reward': 1000.0, 'perf_time': 0.20487640000101237, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 29, 'reward': 1000.0485838856248, 'perf_time': 0.07332379999934346, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 8, 'reward': 1072.5751353395685, 'perf_time': 0.04255389999889303, 'population': 284, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 14, 'reward': 1009.3366159771663, 'perf_time': 0.03886570000031497, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 100, 'reward': 1.33609041213736e-12, 'perf_time': 0.25266779999947175, 'population': 282, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 29, 'reward': 1000.0485838707625, 'perf_time': 0.062355899999602116, 'population': 281, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 63, 'reward': 1000.0, 'perf_time': 0.09076000000095519, 'population': 283, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 5, 'reward': 1228.0667070190555, 'perf_time': 0.007295100000192178, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 6, 'reward': 1161.8555251148157, 'perf_time': 0.009864899999229237, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 4, 'reward': 1331.1989521356445, 'perf_time': 0.005758700001024408, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 7, 'reward': 1125.2888121095386, 'perf_time': 0.010380699999586795, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 9, 'reward': 1050.7993081817433, 'perf_time': 0.012684799999988172, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 6, 'reward': 1180.239086610181, 'perf_time': 0.008714300000065123, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 8, 'reward': 1082.6829131481409, 'perf_time': 0.011372999999366584, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 4, 'reward': 1333.3345105628343, 'perf_time': 0.0058894999983749585, 'population': 288, 'numerosity': 1600}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 3, 'reward': 1465.8326431713056, 'perf_time': 0.004226199998811353, 'population': 288, 'numerosity': 1600}\n" + ] + } + ], + "source": [ + "cfg = Configuration(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 1,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_metrics)\n", + "\n", + "df_without = avg_experiment(maze,\n", + " cfg,\n", + " number_of_tests=10,\n", + " explore_trials=4000,\n", + " exploit_metrics=1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerositysteps_in_trial_withoutpopulation_withoutnumerosity_without
trial
0100.00.0000000.055389113.6157.391.4109.6157.8
10031.51008.2303630.125652400.71606.625.7284.51600.0
20041.3955.0491160.159102413.01609.120.7285.11600.0
30038.9842.6938490.149336412.21603.936.0283.51600.0
40032.1947.7131350.124457420.71601.213.0281.21600.0
50017.31129.8618920.067204406.61607.921.3281.31600.0
60039.5800.9099680.151993418.81608.030.2282.91600.0
70059.0628.9042360.235333416.01604.930.5281.71600.0
80033.3904.7847900.135967420.11612.722.6282.81600.0
90052.3802.7180140.211393412.11603.428.5283.61600.0
100046.6752.0433140.245118416.31609.026.5282.31600.0
110050.1708.2112340.208092419.01603.727.5283.41600.0
120048.8745.0669190.200061406.31610.421.1283.31600.0
130038.8905.8220230.143877414.21609.227.7282.01600.0
140057.9666.7867430.230458410.81609.736.5282.91600.0
150046.0900.0197530.191005415.61605.813.6282.21600.0
160036.71098.0159930.154292418.31605.640.2284.61600.0
170041.7981.1577630.171120413.71608.551.6282.51600.0
180058.7804.6083690.241749424.81606.929.2282.61600.0
190054.6802.2036940.220643421.81606.443.9283.11600.0
200060.8673.9872350.233318418.41604.033.4283.21600.0
210060.2691.8020730.229124416.01610.426.7280.81600.0
220055.4800.3038790.226953419.51606.022.3282.11600.0
230030.9955.0588830.120142416.81605.833.0284.51600.0
240043.2900.0151930.183235420.01604.534.2282.61600.0
250028.11000.5334300.110761408.01606.424.2281.81600.0
260048.8922.5596880.184506420.41606.225.0282.41600.0
270047.8881.9748380.182179411.31607.233.3282.31600.0
280028.11043.6368330.132279409.91607.321.8283.01600.0
290033.7849.3970030.150458408.61602.035.0282.41600.0
300049.0757.4389720.204505421.71606.334.1282.81600.0
310059.3728.7501010.224976417.61604.850.2283.31600.0
320040.1871.2066830.163756415.31606.836.3283.51600.0
330033.0915.8910840.134094428.51609.114.2282.91600.0
340048.9714.1411160.196507421.71614.023.8282.01600.0
350052.4844.7003870.226562414.81609.733.8282.51600.0
360042.5904.4436390.163510406.01606.910.7283.01600.0
370034.71119.0604480.148523421.31605.525.0282.91600.0
380048.4800.0446780.194762427.81610.039.4282.91600.0
390031.21077.4133430.123849408.11610.815.6282.51600.0
400023.21000.0000000.052659421.71604.126.9284.81600.0
410012.11125.0824280.024684427.01600.05.7287.81600.0
42008.01179.2069950.016115427.21600.05.3288.01600.0
43007.31199.3056070.018155427.31600.06.3288.01600.0
44006.91201.8761090.013948427.31600.05.0288.01600.0
45009.81244.9716970.020832427.31600.05.3288.01600.0
46008.01194.1633160.016126427.31600.05.7288.01600.0
47004.41317.9750020.008909427.31600.06.8288.01600.0
48009.21217.0627430.019675427.31600.06.0288.01600.0
49007.81152.9851620.015758427.31600.04.9288.01600.0
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 100.0 0.000000 0.055389 113.6 157.3 \n", + "100 31.5 1008.230363 0.125652 400.7 1606.6 \n", + "200 41.3 955.049116 0.159102 413.0 1609.1 \n", + "300 38.9 842.693849 0.149336 412.2 1603.9 \n", + "400 32.1 947.713135 0.124457 420.7 1601.2 \n", + "500 17.3 1129.861892 0.067204 406.6 1607.9 \n", + "600 39.5 800.909968 0.151993 418.8 1608.0 \n", + "700 59.0 628.904236 0.235333 416.0 1604.9 \n", + "800 33.3 904.784790 0.135967 420.1 1612.7 \n", + "900 52.3 802.718014 0.211393 412.1 1603.4 \n", + "1000 46.6 752.043314 0.245118 416.3 1609.0 \n", + "1100 50.1 708.211234 0.208092 419.0 1603.7 \n", + "1200 48.8 745.066919 0.200061 406.3 1610.4 \n", + "1300 38.8 905.822023 0.143877 414.2 1609.2 \n", + "1400 57.9 666.786743 0.230458 410.8 1609.7 \n", + "1500 46.0 900.019753 0.191005 415.6 1605.8 \n", + "1600 36.7 1098.015993 0.154292 418.3 1605.6 \n", + "1700 41.7 981.157763 0.171120 413.7 1608.5 \n", + "1800 58.7 804.608369 0.241749 424.8 1606.9 \n", + "1900 54.6 802.203694 0.220643 421.8 1606.4 \n", + "2000 60.8 673.987235 0.233318 418.4 1604.0 \n", + "2100 60.2 691.802073 0.229124 416.0 1610.4 \n", + "2200 55.4 800.303879 0.226953 419.5 1606.0 \n", + "2300 30.9 955.058883 0.120142 416.8 1605.8 \n", + "2400 43.2 900.015193 0.183235 420.0 1604.5 \n", + "2500 28.1 1000.533430 0.110761 408.0 1606.4 \n", + "2600 48.8 922.559688 0.184506 420.4 1606.2 \n", + "2700 47.8 881.974838 0.182179 411.3 1607.2 \n", + "2800 28.1 1043.636833 0.132279 409.9 1607.3 \n", + "2900 33.7 849.397003 0.150458 408.6 1602.0 \n", + "3000 49.0 757.438972 0.204505 421.7 1606.3 \n", + "3100 59.3 728.750101 0.224976 417.6 1604.8 \n", + "3200 40.1 871.206683 0.163756 415.3 1606.8 \n", + "3300 33.0 915.891084 0.134094 428.5 1609.1 \n", + "3400 48.9 714.141116 0.196507 421.7 1614.0 \n", + "3500 52.4 844.700387 0.226562 414.8 1609.7 \n", + "3600 42.5 904.443639 0.163510 406.0 1606.9 \n", + "3700 34.7 1119.060448 0.148523 421.3 1605.5 \n", + "3800 48.4 800.044678 0.194762 427.8 1610.0 \n", + "3900 31.2 1077.413343 0.123849 408.1 1610.8 \n", + "4000 23.2 1000.000000 0.052659 421.7 1604.1 \n", + "4100 12.1 1125.082428 0.024684 427.0 1600.0 \n", + "4200 8.0 1179.206995 0.016115 427.2 1600.0 \n", + "4300 7.3 1199.305607 0.018155 427.3 1600.0 \n", + "4400 6.9 1201.876109 0.013948 427.3 1600.0 \n", + "4500 9.8 1244.971697 0.020832 427.3 1600.0 \n", + "4600 8.0 1194.163316 0.016126 427.3 1600.0 \n", + "4700 4.4 1317.975002 0.008909 427.3 1600.0 \n", + "4800 9.2 1217.062743 0.019675 427.3 1600.0 \n", + "4900 7.8 1152.985162 0.015758 427.3 1600.0 \n", + "\n", + " steps_in_trial_without population_without numerosity_without \n", + "trial \n", + "0 91.4 109.6 157.8 \n", + "100 25.7 284.5 1600.0 \n", + "200 20.7 285.1 1600.0 \n", + "300 36.0 283.5 1600.0 \n", + "400 13.0 281.2 1600.0 \n", + "500 21.3 281.3 1600.0 \n", + "600 30.2 282.9 1600.0 \n", + "700 30.5 281.7 1600.0 \n", + "800 22.6 282.8 1600.0 \n", + "900 28.5 283.6 1600.0 \n", + "1000 26.5 282.3 1600.0 \n", + "1100 27.5 283.4 1600.0 \n", + "1200 21.1 283.3 1600.0 \n", + "1300 27.7 282.0 1600.0 \n", + "1400 36.5 282.9 1600.0 \n", + "1500 13.6 282.2 1600.0 \n", + "1600 40.2 284.6 1600.0 \n", + "1700 51.6 282.5 1600.0 \n", + "1800 29.2 282.6 1600.0 \n", + "1900 43.9 283.1 1600.0 \n", + "2000 33.4 283.2 1600.0 \n", + "2100 26.7 280.8 1600.0 \n", + "2200 22.3 282.1 1600.0 \n", + "2300 33.0 284.5 1600.0 \n", + "2400 34.2 282.6 1600.0 \n", + "2500 24.2 281.8 1600.0 \n", + "2600 25.0 282.4 1600.0 \n", + "2700 33.3 282.3 1600.0 \n", + "2800 21.8 283.0 1600.0 \n", + "2900 35.0 282.4 1600.0 \n", + "3000 34.1 282.8 1600.0 \n", + "3100 50.2 283.3 1600.0 \n", + "3200 36.3 283.5 1600.0 \n", + "3300 14.2 282.9 1600.0 \n", + "3400 23.8 282.0 1600.0 \n", + "3500 33.8 282.5 1600.0 \n", + "3600 10.7 283.0 1600.0 \n", + "3700 25.0 282.9 1600.0 \n", + "3800 39.4 282.9 1600.0 \n", + "3900 15.6 282.5 1600.0 \n", + "4000 26.9 284.8 1600.0 \n", + "4100 5.7 287.8 1600.0 \n", + "4200 5.3 288.0 1600.0 \n", + "4300 6.3 288.0 1600.0 \n", + "4400 5.0 288.0 1600.0 \n", + "4500 5.3 288.0 1600.0 \n", + "4600 5.7 288.0 1600.0 \n", + "4700 6.8 288.0 1600.0 \n", + "4800 6.0 288.0 1600.0 \n", + "4900 4.9 288.0 1600.0 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "df['steps_in_trial_without']=df_without['steps_in_trial']\n", + "df['population_without']=df_without['population']\n", + "df['numerosity_without']=df_without['numerosity']\n", + "display(df_first)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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4oknANiwYQNLlixh5cpCX3M0+tTyyJHIvubR/AxMntv3e5NFZFRs2LCBSy65hLVr1zJp0iRuu+22fpdfs2YNv/71r1m+fDlf//rXqaqqYtWqVZx88snceOONAFx88cX86Ec/YuXKlVxxxRX8/d//fff6zz33HPfffz//8R//wSc+8Qn+/d//naeeeopjjz2Wb3/72wBcfvnlrFq1iqeeeoqf/vSnvfZ/yimncPbZZ/P973+f1atXs2DBAurq6li9ejUA1113HRdeeOHwfUEjQC2PHL1uElRPK5E+DdRCKKb58+fzxje+EYATTjiBzZs397v86aefTk1NDTU1NdTV1fGBD3wAgGOPPZannnqK1tZWHn74Yc4999zudRKJRPf0ueeeSywWo6WlhT179vD2t78dgAsuuKB7nUWLFnH++edzzjnncM455wxYhosuuojrrruOK6+8kt/85jcsX17U1xQNO7U8cnTfJFiSCS+B0vUOkTGnoqLnvqtYLEYqlaK0tJRMJhz85d6/kL18SUlJ9+eSkhJSqRSZTIZJkyaxevXq7mH9+vXd61RXVw+Yp7vvvptLLrmElStXcsIJJwx4feTDH/4w99xzD3fddRcnnHACU6dOHbjgY4iCR47umwT3bYV0p1oeIgeJefPmdV8z+N3vfjeodWtra5k/fz6//e1vgXAH9pNPPrnfcnV1dUyePJm//vWvANx00028/e1vJ5PJ8OKLL3L66afzve99jz179tDa2tpr3ZqaGvbt29f9ubKykjPPPJPPfvazfPKTnxxUfscCBY8ciVSaWIlRuuu5kKCWh8hB4atf/So/+clPOOWUU9i5c+eg1//Vr37FL37xC97whjdw9NFHc+edd+Zd7oYbbuBrX/saixYtYvXq1XzjG98gnU7zsY99jGOPPZbjjjuOL33pS0yaNKnXekuWLOH73/8+xx13HJs2bQLg/PPPx8x497vfPej8jjZz95Hdodls4EbgECADXOPu/2lmU4DfAPOAzcBH3P3VaJ3LgE8DaeAL7v7HgfbT2NjoK1asGHT+vnPXOm5ZvpW171wDf/oOXNYEFTWD3o7IeLR+/XqOPPLI0c7GuHHFFVfQ0tLCd77znVHZf76/p5mtdPfGgdYdjQvmKeAr7v6EmdUAK83sPuBC4AF3v9zMLgUuBf7JzI4ClgBHA4cC95vZEcV6j3ki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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['numerosity', 'population']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"numerosity\", \"number of rules\"])\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['steps_in_trial', 'steps_in_trial_without']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"steps\", \"steps without #\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['population', 'population_without']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"number of rules\", \"number of rules without #\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Conclusion\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/XCS_Experiments/XCS_maze5_without_#.ipynb b/XCS_Experiments/XCS_maze5_without_#.ipynb deleted file mode 100644 index 7354b96..0000000 --- a/XCS_Experiments/XCS_maze5_without_#.ipynb +++ /dev/null @@ -1,696 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### XCS in Maze 5 without #\n", - "This experiment is meant to replicate An Analysis of Generalization in the XCS Classifier System Maze5 experiment. \n", - "In this experiment I am repeating experiment that involves XCS without wildcards in classifiers similarly to experiment in An Analysis of Generalization." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# logging \n", - "import logging\n", - "logging.basicConfig(level=logging.INFO)\n", - "logger = logging.getLogger(__name__)\n", - "\n", - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "# environment setup\n", - "import gym\n", - "# noinspection PyUnresolvedReferences\n", - "import gym_maze\n", - "\n", - "from lcs.agents.xcs import XCS, Configuration\n", - "from utils.xcs_utils import *" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "This is how maze looks like\n", - "\n", - "('1', '1', '0', '0', '0', '1', '1', '1')\n", - "\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" - ] - } - ], - "source": [ - "maze = gym.make('Maze5-v0')\n", - "print(\"This is how maze looks like\")\n", - "situation = maze.reset()\n", - "print(type(situation))\n", - "print(situation)\n", - "maze.render()" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [25.560000000000002, 3496.7208451701767, 0, 7021.059579182614, 2490.1549171999363, 0, 29910.947188307928, 4890.387706584108], 'perf_time': 0.008658000000000499, 'population': 32, 'numerosity': 40}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [9.241939989928719e+53, 1.5098302134932959e+54, 2.1250286509632664e+52, 1.2243369123524473e+54, 2.4782710678538316e+53, 1.1551549342476046e+54, 2.6813023829998966e+54, 6.095486512297716e+53], 'perf_time': 0.06395249999999919, 'population': 230, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [1.0842486142231908e+83, 1.115570406423162e+83, 4.989295341637209e+83, 3.0426240861236016e+82, 1.2073835441028428e+82, 9.746446322809642e+82, 6.409913576083106e+82, 2.3491012233987228e+83], 'perf_time': 0.048802099999996074, 'population': 235, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [1.1037705781710273e+113, 1.594216127459732e+113, 1.6095579119124228e+112, 1.0910162250217124e+113, 1.6083712424313787e+113, 5.206779999725935e+112, 5.004953464867812e+112, 6.42504683085157e+111], 'perf_time': 0.06679789999999741, 'population': 233, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [4.377057924186763e+133, 2.4271299380997304e+133, 6.215471445672348e+132, 1.2395661790953066e+133, 2.1498353635809923e+134, 4.719912741384362e+133, 7.998312054753743e+133, 3.16579136248467e+133], 'perf_time': 0.05715419999999938, 'population': 222, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [2.1272820149457745e+172, 3.2658241111912693e+173, 7.373592447705613e+174, 1.4191340852170794e+175, 9.774961690219198e+174, 1.5783026537604888e+175, 2.5123190716961965e+175, 3.9630878375195177e+173], 'perf_time': 0.0571464000000077, 'population': 247, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [5.186911158740875e+213, 2.648210197803109e+213, 1.1923019564110062e+213, 1.9199562381185924e+213, 1.1675305296409185e+213, 3.610021656008985e+213, 1.9029468836940387e+213, 1.3504486937026975e+214], 'perf_time': 0.06195870000001946, 'population': 247, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [2.8293449017171e+253, 2.1983915735915493e+253, 1.0314677603725257e+253, 3.762034213682294e+253, 6.267051522386578e+253, 4.0312662151672044e+253, 1.1920774354012493e+253, 9.141731399337718e+252], 'perf_time': 0.049406900000008136, 'population': 221, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [1.5647040642766136e+277, 2.3396935841245115e+276, 4.219181883977886e+276, 2.157083067985994e+276, 2.389072818484403e+276, 4.345288804209709e+276, 4.0634537833275726e+276, 1.460909465465085e+277], 'perf_time': 0.06595980000000168, 'population': 224, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.06381410000000187, 'population': 248, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03578650000000039, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03336749999999711, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03457780000002231, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03252510000001507, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.035600599999980886, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.033538899999996374, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 3, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.002200100000010252, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.03451319999999214, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 3, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.0023334999999917727, 'population': 269, 'numerosity': 1600}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [0, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.0340509000000111, 'population': 269, 'numerosity': 1600}\n" - ] - } - ], - "source": [ - "cfg = Configuration(number_of_actions=8,\n", - " max_population=1600,\n", - " learning_rate=0.2,\n", - " alpha=0.1,\n", - " gamma=0.71,\n", - " mutation_chance=0.01,\n", - " delta=0.1,\n", - " ga_threshold=25,\n", - " covering_wildcard_chance = 0.7,\n", - " chi=1, # crossover\n", - " metrics_trial_frequency=100,\n", - " initial_prediction =10, # p_i\n", - " initial_error = 0, # epsilon_i\n", - " initial_fitness = 10, # f_i\n", - " user_metrics_collector_fcn=xcs_metrics)\n", - "\n", - "df = avg_experiment(maze,\n", - " cfg,\n", - " number_of_tests=1,\n", - " explore_trials=4000,\n", - " exploit_metrics=1000)" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialperf_timepopulationnumerosity
trial
0500.0086583240
100500.0489312271600
200500.0531132221600
300500.0535792231600
400500.0639522301600
500500.0483202271600
600500.0593092151600
700500.0604662271600
800500.0488022351600
900500.0616642311600
1000470.0555122341600
1100500.0570602311600
1200500.0667982331600
1300500.0542932141600
1400500.0557172341600
1500350.0390432131600
1600500.0571542221600
1700500.0638022531600
1800500.0539122461600
1900500.0584452431600
2000500.0571462471600
2100500.0734362501600
2200500.0560972311600
2300500.0550202451600
2400500.0619592471600
250020.0033872231600
2600500.0514822381600
2700500.0431362201600
2800500.0494072211600
2900500.0510582121600
3000500.0496512121600
3100500.0485512081600
3200500.0659602241600
330090.0107252311600
3400500.0561802191600
3500500.0493272301600
3600500.0638142481600
370030.0076432571600
3800370.0539692571600
3900500.0601122681600
4000500.0357872691600
4100500.0333672691600
4200500.0345782691600
4300500.0325252691600
4400500.0356012691600
4500500.0335392691600
460030.0022002691600
4700500.0345132691600
480030.0023332691600
4900500.0340512691600
\n", - "
" - ], - "text/plain": [ - " steps_in_trial perf_time population numerosity\n", - "trial \n", - "0 50 0.008658 32 40\n", - "100 50 0.048931 227 1600\n", - "200 50 0.053113 222 1600\n", - "300 50 0.053579 223 1600\n", - "400 50 0.063952 230 1600\n", - "500 50 0.048320 227 1600\n", - "600 50 0.059309 215 1600\n", - "700 50 0.060466 227 1600\n", - "800 50 0.048802 235 1600\n", - "900 50 0.061664 231 1600\n", - "1000 47 0.055512 234 1600\n", - "1100 50 0.057060 231 1600\n", - "1200 50 0.066798 233 1600\n", - "1300 50 0.054293 214 1600\n", - "1400 50 0.055717 234 1600\n", - "1500 35 0.039043 213 1600\n", - "1600 50 0.057154 222 1600\n", - "1700 50 0.063802 253 1600\n", - "1800 50 0.053912 246 1600\n", - "1900 50 0.058445 243 1600\n", - "2000 50 0.057146 247 1600\n", - "2100 50 0.073436 250 1600\n", - "2200 50 0.056097 231 1600\n", - "2300 50 0.055020 245 1600\n", - "2400 50 0.061959 247 1600\n", - "2500 2 0.003387 223 1600\n", - "2600 50 0.051482 238 1600\n", - "2700 50 0.043136 220 1600\n", - "2800 50 0.049407 221 1600\n", - "2900 50 0.051058 212 1600\n", - "3000 50 0.049651 212 1600\n", - "3100 50 0.048551 208 1600\n", - "3200 50 0.065960 224 1600\n", - "3300 9 0.010725 231 1600\n", - "3400 50 0.056180 219 1600\n", - "3500 50 0.049327 230 1600\n", - "3600 50 0.063814 248 1600\n", - "3700 3 0.007643 257 1600\n", - "3800 37 0.053969 257 1600\n", - "3900 50 0.060112 268 1600\n", - "4000 50 0.035787 269 1600\n", - "4100 50 0.033367 269 1600\n", - "4200 50 0.034578 269 1600\n", - "4300 50 0.032525 269 1600\n", - "4400 50 0.035601 269 1600\n", - "4500 50 0.033539 269 1600\n", - "4600 3 0.002200 269 1600\n", - "4700 50 0.034513 269 1600\n", - "4800 3 0.002333 269 1600\n", - "4900 50 0.034051 269 1600" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(df)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df['steps_in_trial'].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Conclusion\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_multiplexer.ipynb b/XCS_Experiments/XCS_multiplexer.ipynb deleted file mode 100644 index 7efba3b..0000000 --- a/XCS_Experiments/XCS_multiplexer.ipynb +++ /dev/null @@ -1,188 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### XCS in Woods 14\n", - "This experiment is meant to replicate An Analysis of Generalization in the XCS Classifier System Wood14." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "# logging \n", - "import logging\n", - "logging.basicConfig(level=logging.INFO)\n", - "logger = logging.getLogger(__name__)\n", - "\n", - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "# environment setup\n", - "import gym\n", - "# noinspection PyUnresolvedReferences\n", - "import gym_multiplexer \n", - "\n", - "from lcs.agents.xcs import XCS, Configuration\n", - "from utils.xcs_utils import *" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "This is how maze looks like\n", - "\n", - "[0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0]\n", - "[0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0]\n" - ] - } - ], - "source": [ - "maze = gym.make('boolean-multiplexer-20bit-v0')\n", - "print(\"This is how maze looks like\")\n", - "situation = maze.reset()\n", - "print(type(situation))\n", - "print(situation)\n", - "maze.render()" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - }, - { - "ename": "AssertionError", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mAssertionError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 9\u001b[0m \u001b[0mnumber_of_tests\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[0mexplore_trials\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m4000\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 11\u001b[1;33m exploit_metrics=1000)\n\u001b[0m", - "\u001b[1;32m~\\Documents\\GitHub\\pyalcs-experiments\\XCS_Experiments\\utils\\xcs_utils.py\u001b[0m in \u001b[0;36mavg_experiment\u001b[1;34m(maze, cfg, number_of_tests, explore_trials, exploit_metrics)\u001b[0m\n\u001b[0;32m 35\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mrange\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mnumber_of_tests\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 36\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34mf'Executing {i} experiment'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 37\u001b[1;33m \u001b[0mtest_metrics\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstart_single_experiment\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmaze\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcfg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexplore_trials\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexploit_metrics\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 38\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtest_metrics\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgroupby\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'trial'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 39\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32m~\\Documents\\GitHub\\pyalcs-experiments\\XCS_Experiments\\utils\\xcs_utils.py\u001b[0m in \u001b[0;36mstart_single_experiment\u001b[1;34m(maze, cfg, explore_trials, exploit_metrics)\u001b[0m\n\u001b[0;32m 41\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mstart_single_experiment\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmaze\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcfg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexplore_trials\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m4000\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexploit_metrics\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 42\u001b[0m \u001b[0magent\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mXCS\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcfg\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 43\u001b[1;33m \u001b[0mexplore_population\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexplore_metrics\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0magent\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexplore\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmaze\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexplore_trials\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 44\u001b[0m \u001b[0magent\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mXCS\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcfg\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mcfg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpopulation\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mexplore_population\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 45\u001b[0m \u001b[0mexploit_population\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexploit_metrics\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0magent\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexploit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmaze\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexploit_metrics\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\metron\\documents\\github\\pyalcs\\lcs\\agents\\Agent.py\u001b[0m in \u001b[0;36mexplore\u001b[1;34m(self, env, trials, decay)\u001b[0m\n\u001b[0;32m 45\u001b[0m \u001b[0mpopulation\u001b[0m \u001b[0mof\u001b[0m \u001b[0mclassifiers\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mmetrics\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 46\u001b[0m \"\"\"\n\u001b[1;32m---> 47\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_evaluate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0menv\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrials\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_run_trial_explore\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdecay\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 48\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 49\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mexploit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0menv\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrials\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m->\u001b[0m \u001b[0mTuple\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\metron\\documents\\github\\pyalcs\\lcs\\agents\\Agent.py\u001b[0m in \u001b[0;36m_evaluate\u001b[1;34m(self, env, n_trials, func, decay)\u001b[0m\n\u001b[0;32m 123\u001b[0m \u001b[1;32mwhile\u001b[0m \u001b[0mcurrent_trial\u001b[0m \u001b[1;33m<\u001b[0m \u001b[0mn_trials\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 124\u001b[0m \u001b[0mstart_ts\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtimer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 125\u001b[1;33m \u001b[0msteps_in_trial\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mreward\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfunc\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0menv\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msteps\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcurrent_trial\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 126\u001b[0m \u001b[0mend_ts\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtimer\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 127\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\metron\\documents\\github\\pyalcs\\lcs\\agents\\xcs\\XCS.py\u001b[0m in \u001b[0;36m_run_trial_explore\u001b[1;34m(self, env, trials, current_trial)\u001b[0m\n\u001b[0;32m 60\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpopulation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdelete_from_population\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 61\u001b[0m \u001b[1;31m# We are in t+1 here\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 62\u001b[1;33m \u001b[0mmatch_set\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpopulation\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgenerate_match_set\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstate\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtime_stamp\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 63\u001b[0m \u001b[0mprediction_array\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmatch_set\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mprediction_array\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 64\u001b[0m \u001b[0maction\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mselect_action\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mprediction_array\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmatch_set\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\metron\\documents\\github\\pyalcs\\lcs\\agents\\xcs\\ClassifiersList.py\u001b[0m in \u001b[0;36mgenerate_match_set\u001b[1;34m(self, situation, time_stamp)\u001b[0m\n\u001b[0;32m 83\u001b[0m \u001b[1;32mwhile\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmatching_ls\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m<\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcfg\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnumber_of_actions\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 84\u001b[0m \u001b[0maction\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_find_not_present_action\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmatching_ls\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 85\u001b[1;33m \u001b[0mcl\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_generate_covering_and_insert\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msituation\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maction\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtime_stamp\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 86\u001b[0m \u001b[0mmatching_ls\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcl\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 87\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mClassifiersList\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcfg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m*\u001b[0m\u001b[0mmatching_ls\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\metron\\documents\\github\\pyalcs\\lcs\\agents\\xcs\\ClassifiersList.py\u001b[0m in \u001b[0;36m_generate_covering_and_insert\u001b[1;34m(self, situation, action, time_stamp)\u001b[0m\n\u001b[0;32m 41\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 42\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0m_generate_covering_and_insert\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0msituation\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maction\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtime_stamp\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 43\u001b[1;33m \u001b[0mcl\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgenerate_covering_classifier\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msituation\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0maction\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtime_stamp\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 44\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0minsert_in_population\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcl\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 45\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdelete_from_population\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;32mc:\\users\\metron\\documents\\github\\pyalcs\\lcs\\agents\\xcs\\ClassifiersList.py\u001b[0m in \u001b[0;36mgenerate_covering_classifier\u001b[1;34m(self, situation, action, time_stamp)\u001b[0m\n\u001b[0;32m 35\u001b[0m \u001b[0mgeneralized\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msituation\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 36\u001b[0m cl = Classifier(cfg=self.cfg,\n\u001b[1;32m---> 37\u001b[1;33m \u001b[0mcondition\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0mCondition\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mgeneralized\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 38\u001b[0m \u001b[0maction\u001b[0m\u001b[1;33m=\u001b[0m\u001b[0maction\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 39\u001b[0m time_stamp=time_stamp)\n", - "\u001b[1;32mc:\\users\\metron\\documents\\github\\pyalcs\\lcs\\agents\\ImmutableSequence.py\u001b[0m in \u001b[0;36m__init__\u001b[1;34m(self, observation)\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[1;32massert\u001b[0m \u001b[0mtype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mWILDCARD\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mOK_TYPES\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 13\u001b[1;33m \u001b[1;32massert\u001b[0m \u001b[0mall\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0misinstance\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mo\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mOK_TYPES\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mo\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mobs\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 14\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 15\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_items\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mobs\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mAssertionError\u001b[0m: " - ] - } - ], - "source": [ - "cfg = Configuration(number_of_actions=8,\n", - " max_population=2000,\n", - " gamma=0.9,\n", - " metrics_trial_frequency=100,\n", - " user_metrics_collector_fcn=xcs_metrics)\n", - "\n", - "df = avg_experiment(maze,\n", - " cfg,\n", - " number_of_tests=10,\n", - " explore_trials=4000,\n", - " exploit_metrics=1000)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "display(df)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax = df[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is hard to say but oking at amount of times algorithm reaches top steps (50) the steps might actually go down over trials. need to somehow smooth it to see it better" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax = df['steps_in_trial'].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Conclusion\n", - "XCS in Woods14 with wildcards has similar issues as with Maze5." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_simple_maze.ipynb b/XCS_Experiments/XCS_simple_maze.ipynb new file mode 100644 index 0000000..e5627ad --- /dev/null +++ b/XCS_Experiments/XCS_simple_maze.ipynb @@ -0,0 +1,552 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "['0', '1', '1', '1']\n" + ] + }, + { + "data": { + "text/plain": [ + "'State: 3'" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_yacs_simple_maze\n", + "\n", + "maze = gym.make('SimpleMaze-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS, Configuration\n", + "from utils.xcs_utils import *\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "cfg = Configuration(number_of_actions=4,\n", + " user_metrics_collector_fcn=xcs_metrics,\n", + " covering_wildcard_chance = 1,\n", + " mutation_chance = 0,\n", + " epsilon = 1,\n", + " )\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 57, 'reward': 1000.0, 'perf_time': 0.009571499999992739, 'population': 32, 'numerosity': 36, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 103, 'reward': 1000.0000000000005, 'perf_time': 0.03537640000001829, 'population': 31, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 82, 'reward': 1000.0000000006356, 'perf_time': 0.02387029999999868, 'population': 32, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 335, 'reward': 1000.0, 'perf_time': 0.094538899999975, 'population': 32, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 262, 'reward': 1000.0, 'perf_time': 0.07639949999997953, 'population': 32, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 2500, 'steps_in_trial': 26, 'reward': 1000.1357428823436, 'perf_time': 0.010510000000010677, 'population': 32, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 3000, 'steps_in_trial': 188, 'reward': 1000.0, 'perf_time': 0.05975800000004483, 'population': 32, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 3500, 'steps_in_trial': 273, 'reward': 1000.0, 'perf_time': 0.08238000000000056, 'population': 32, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 4000, 'steps_in_trial': 73, 'reward': 1000.0000000138631, 'perf_time': 0.024332100000037826, 'population': 32, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 4500, 'steps_in_trial': 278, 'reward': 1000.0, 'perf_time': 0.1191023999999743, 'population': 31, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 77, 'reward': 1000.0000000035228, 'perf_time': 0.018505000000004657, 'population': 31, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 50, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0013782999999989443, 'population': 31, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0012757000000078733, 'population': 31, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 150, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.001599300000009407, 'population': 31, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0011202999999682106, 'population': 30, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 250, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0014271000000007916, 'population': 30, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0013026999999965483, 'population': 30, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 350, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0013284999999996217, 'population': 30, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0011438999999882071, 'population': 30, 'numerosity': 200, 'average_specificity': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 450, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0013928000000191787, 'population': 30, 'numerosity': 200, 'average_specificity': 1.0}\n" + ] + } + ], + "source": [ + "explore_trials = 5000\n", + "exploit_trials = 500\n", + "\n", + "agent = XCS(cfg)\n", + "_, explore_metrics =\\\n", + " agent.explore(maze, explore_trials, False)\n", + "population, exploit_metrics =\\\n", + " agent.exploit(maze, exploit_trials)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.DataFrame(explore_metrics)\n", + "df['trial'] = df.index * cfg.metrics_trial_frequency\n", + "df.set_index('trial', inplace=True)\n", + "df_exploit = pd.DataFrame(exploit_metrics)\n", + "df_exploit['trial'] = df_exploit.index * cfg.metrics_trial_frequency + explore_trials\n", + "df_exploit.set_index('trial', inplace=True)\n", + "df = df.append(df_exploit)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificity
trial
0571000.0000000.00957132361.0
5111023.1122290.005407322001.0
10171002.9606830.006189322001.0
15311000.0244910.011041322001.0
201761000.0000000.058673322001.0
.....................
547571100.0509560.002458302001.0
548071100.0509560.001158302001.0
548571100.0509560.001148302001.0
549071100.0509560.001332292001.0
549571100.0509560.002386292001.0
\n", + "

1100 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 57 1000.000000 0.009571 32 36 \n", + "5 11 1023.112229 0.005407 32 200 \n", + "10 17 1002.960683 0.006189 32 200 \n", + "15 31 1000.024491 0.011041 32 200 \n", + "20 176 1000.000000 0.058673 32 200 \n", + "... ... ... ... ... ... \n", + "5475 7 1100.050956 0.002458 30 200 \n", + "5480 7 1100.050956 0.001158 30 200 \n", + "5485 7 1100.050956 0.001148 30 200 \n", + "5490 7 1100.050956 0.001332 29 200 \n", + "5495 7 1100.050956 0.002386 29 200 \n", + "\n", + " average_specificity \n", + "trial \n", + "0 1.0 \n", + "5 1.0 \n", + "10 1.0 \n", + "15 1.0 \n", + "20 1.0 \n", + "... ... \n", + "5475 1.0 \n", + "5480 1.0 \n", + "5485 1.0 \n", + "5490 1.0 \n", + "5495 1.0 \n", + "\n", + "[1100 rows x 6 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df['average_specificity'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"specificity\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['population', 'numerosity']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"pop\", \"num\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEGCAYAAACKB4k+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABI/klEQVR4nO2deZgUxfnHv+8e7Mp9LcgptwoqiCuIeICI4InGmKDREENiDuPxSzwgibcYNNFoTDRBE4MnYtRIwAsQvLiR+5LlXhZYToFd935/f3TPTE9P93R1z/Sc7+d59tmZnurqt7qr661636q3iJkhCIIgCACQk2wBBEEQhNRBlIIgCIIQRJSCIAiCEESUgiAIghBElIIgCIIQJC/ZAsRC27ZtuVu3bskWQxAEIa1Yvnz5AWYusvotrZVCt27dsGzZsmSLIQiCkFYQ0Q6738R8JAiCIAQRpSAIgiAEEaUgCIIgBElrn4IgCIIKtbW1KC0tRVVVVbJFSSiFhYXo3Lkz8vPzlc8RpSAIQsZTWlqKZs2aoVu3biCiZIuTEJgZBw8eRGlpKbp37658npiPBEHIeKqqqtCmTZusUQgAQERo06aN69GRKAVBELKCbFIIAbyUWZSCIAgpz4Y9R7F8x+Fki5EViFIQBCHlufSZz3Ht8wuSLUbcefrpp1FZWZlsMcIQpSAIgpAkRCkIgiBkKRUVFbj88svRv39/nHbaaXjooYdQVlaG4cOHY/jw4QCAjz/+GEOGDMHAgQNx3XXX4fjx4wC0kD733nsvBg0ahEGDBqGkpAQA8NZbb+G0005D//79ccEFF8RFTpmSKghCVvHQ/9ZhfdnRuObZt2NzPHBlv6hpPvzwQ3Ts2BGzZs0CAHzzzTd46aWXMG/ePLRt2xYHDhzAo48+ijlz5qBJkyZ4/PHH8dRTT+H+++8HADRv3hxLlizByy+/jDvvvBMzZ87Eww8/jI8++gidOnXCkSNH4lIWGSkIggWVNXW4+KlPxbkpxI3TTz8dc+bMwb333ovPP/8cLVq0CPt90aJFWL9+PYYOHYoBAwZg6tSp2LEjFLfu+uuvD/5fuHAhAGDo0KH40Y9+hBdeeAH19fVxkVNGCoJgwdrdR1FSfhyTP9iAt35+brLFEeKIU4/eL/r06YPly5fj/fffx8SJE3HJJZeE/c7MGDlyJN544w3L843TSwOf//73v2Px4sWYNWsWBgwYgJUrV6JNmzYxyenbSIGITiailYa/o0R0JxG1JqLZRLRZ/9/KcM5EIiohok1ENMov2QRBFeZkSyBkCmVlZWjcuDFuvPFG3HXXXfjqq6/QrFkzHDt2DABwzjnn4Msvvwz6CyorK/H1118Hz3/zzTeD/4cMGQIA2LJlCwYPHoyHH34Ybdu2xa5du2KW07eRAjNvAjAAAIgoF8BuAO8CmABgLjNPJqIJ+vd7iagvgLEA+gHoCGAOEfVh5viMiQRBEJLImjVrcPfddyMnJwf5+fl4/vnnsXDhQlx66aXo0KED5s2bh3//+9+4/vrrUV1dDQB49NFH0adPHwBAdXU1Bg8ejIaGhuBo4u6778bmzZvBzBgxYgT69+8fs5yJMh+NALCFmXcQ0RgAw/TjUwHMB3AvgDEApjFzNYBtRFQCYBCAhQmSURAEwTdGjRqFUaPCDSDFxcW47bbbgt8vuugiLF261PL8W2+9FQ888EDYsXfeeSfucibK0TwWQMBQ1p6Z9wCA/r+dfrwTAOPYp1Q/FgYR3UJEy4ho2f79+30UWchmsjAigiAASIBSIKJGAK4C8JZTUotjERZdZp7CzMXMXFxUZLnFqCDEjPgShFRi+/btaNu2bUKulYiRwqUAvmLmffr3fUTUAQD0/+X68VIAXQzndQZQlgD5BEHIAjgLNb2XMidCKVyPkOkIAGYAGKd/HgfgPcPxsURUQETdAfQGsCQB8gmCkOEUFhbi4MGDWaUYAvspFBYWujrPV0czETUGMBLAzwyHJwOYTkTjAewEcB0AMPM6IpoOYD2AOgC3yswjQRDiQefOnVFaWops80MGdl5zg69KgZkrAbQxHTsIbTaSVfpJACb5KZMgqCCO5swiPz/f1e5j2YyEuRAEQRCCiFIQBEEQgohSEARBEIKIUhAEQRCCiFIQhChkzwRGQdAQpZAg9h+rRlWtzLAVBCG1EaWQIM6eNAfjp1oHuhIEQUgVRCkkkC9LDiZbBEEQhKiIUhAEQRCCiFIQBAtkQbOQrYhSEARBEIKIUhAEQRCCiFIQhChkU6hlQQBEKQiCIAgGRCkIgiAIQUQpCIIgCEFEKQiCIAhBRCkIggWy85qQrfiqFIioJRH9h4g2EtEGIhpCRK2JaDYRbdb/tzKkn0hEJUS0iYhG+SmbIAiCEInfI4VnAHzIzKcA6A9gA4AJAOYyc28Ac/XvIKK+AMYC6AdgNIDniCjXZ/kEQRAEA74pBSJqDuACAP8EAGauYeYjAMYAmKonmwrgav3zGADTmLmambcBKAEwyC/5BEEQhEj8HCn0ALAfwEtEtIKIXiSiJgDaM/MeAND/t9PTdwKwy3B+qX4sDCK6hYiWEdGy/fv3+yi+IAhC9uGnUsgDMBDA88x8JoAK6KYiG6xcexHLSZl5CjMXM3NxUVFRfCQ1MWnWetz337W+5C2kF7KeWcg2/FQKpQBKmXmx/v0/0JTEPiLqAAD6/3JD+i6G8zsDKPNRPlte+HwbXlm0IxmXFgRBSCq+KQVm3gtgFxGdrB8aAWA9gBkAxunHxgF4T/88A8BYIiogou4AegNY4pd8giAIQiR5Pud/G4DXiKgRgK0AboamiKYT0XgAOwFcBwDMvI6IpkNTHHUAbmVm2dRYSBKyUEHITnxVCsy8EkCxxU8jbNJPAjDJT5kEQRAEe2RFsyAIghBElIIgCIIQRJSCIAiCEESUgiBEQTZeE7INUQqCIAhCEFEKCUD2+RUEIV0QpSAIgiAEEaWQAGSgIAhCuiBKQRAskJ3XhGxFlIIgCIIQRJRCAhDrkSAI6YIoBUEQBCGIKIUEIFNSBUFIF0QpCEIURJ0L2YYoBUEQBCGIKIUEIL1NQRDSBcdNdoioAMC1ALoZ0zPzw/6JJQjJJduXKRytqsWlT3+O534wEP27tEy2OEICURkpvAdgDLQtMisMf4Ii4mdOP7L9kS3bfgi7j3yLP8/5OtmiCAlGZTvOzsw82kvmRLQdwDEA9QDqmLmYiFoDeBPayGM7gO8x82E9/UQA4/X0tzPzR16uKwhCbJA+VpIOTfahMlJYQESnx3CN4cw8gJkDezVPADCXmXsDmKt/BxH1BTAWQD8AowE8R0S5MVw3ZeCs73cK6UYgzIfU3OxDRSmcB2A5EW0iotVEtIaIVsdwzTEApuqfpwK42nB8GjNXM/M2ACUABsVwHUEQPEIUGCmIWsg2VMxHl8aQPwP4mIgYwD+YeQqA9sy8BwCYeQ8RtdPTdgKwyHBuqX4sDCK6BcAtANC1a9cYRBMEe7Ld0SxkL45KgZl3EFF/AOfrhz5n5lWK+Q9l5jK94Z9NRBujpLV6DyO6KbpimQIAxcXFadGNkc6WkG7kBMxHUnezDkfzERHdAeA1AO30v1eJ6DaVzJm5TP9fDuBdaOagfUTUQc+7A4ByPXkpgC6G0zsDKFMrhiAI8SToaE4zr0JtfQPKjnybbDHSGhWfwngAg5n5fma+H8A5AH7qdBIRNSGiZoHPAC4BsBbADADj9GTjoE15hX58LBEVEFF3AL0BLHFTGEEQ4gOl6Ujhvv+uxbmTP8Gxqtpki5K2qPgUCNoU0QD1UDO5tgfwru6wygPwOjN/SERLAUwnovEAdgK4DgCYeR0RTQewHtqaiFuZud46a0EQ/CTwgjekmVaYu1EzPFTW1KNZYX6SpUlPVJTCSwAWE9G7+verAfzT6SRm3gqgv8XxgwBG2JwzCcAkBZnSijR7rwQj2frw0nSkIMSOiqP5KSKaD21qKgG4mZlX+C2YICSTbG8LQz6F9ERmj3nHVikQUXNmPqqvQN6u/wV+a83Mh/wXTxCEZBDcozpNtUKaip0SRBspvA7gCgDLEX6PSf/ew0e5Mop0m8EhCCGdIHU327BVCsx8hf6/e+LEEYTUINtt6aEVzUkWxCNiPvKOyjqFuSrHBHvS9cUSspecNI99lK5ypwLRfAqFABoDaEtErRBSvs0BdEyAbIKQRLK7WQmtU0iv+yAjhNiJ5lP4GYA7oSmArwzHjwL4m48yCYKQIqSXShDiQTSfwjMAniGi25j52QTKlHGkw4t1rKoWe76pQp/2zZItSkqRDs/OD9LdpyB4RyXMxTdE9EPzn++SCQnlxhcX45I/f5ZsMVKGbG8M03xGKm597Sus2nUk2WKkJSpK4WzD3/kAHgRwlY8yZRzpYJddVfpNskUQUghKkeBH5Uer8OCMda7PW7bjMG59/SvnhEIEKiuawyKiElELAK/4JpEgpACpr8b9JRT7yP9rfbh2D9o2LUBxt9YRv018Z00wnpGQGFRiH5mphBbBVFAk2xsYIf0Ibcfpf+39+ataj3775MsjfqtLhFYSwnBUCkT0P4TatRwAfQFM91MoQRCSSzD2UZLbZFEJiUdlpPAnw+c6ADuYudQneQQhJUh2Y5hsAiOEbL8P2YiKT+HTRAiSyciLJaQrUnWzj2grmo/Buk4QAGbm5r5JJQhJJh1mjPlJoPjZfh+yEdspqczcjJmbW/w1y3aF8PW+YzjqZrs/ea8EAFv2H8fhipqY83lv5W6s3S1TiJ0gAnYcrMD+Y9XJFiWtUFmnACLqT0S/0v/O8FuoVOeSP3+GG19cnGwxPLHvaBUqquuSLUbcOFRR4+t+vPHsKI948lOMjMMCwTumrcQVz34RB4nsCRQ72QOFWEcqF/5xPgY9NidO0mQHKlFS7wDwGoB2+t9rRHRb9LMyn9UuFnulSkz6iuo6DH5sLm57YwV+/981GbG5+cBHZuPcP3wS93z9emIHjqdHrzXQGKdK3VWFLCLiJVuxpRsqI4XxAAYz8/3MfD+AcwD8VPUCRJRLRCuIaKb+vTURzSaizfr/Voa0E4mohIg2EdEot4URorPrcCUA4JON5Xh10U48P39LRJp0tCEf00c+9/5nNR6duT7J0mQWya4OZNXKRyHZ8mYCKkqBANQbvtfDXYTaOwBsMHyfAGAuM/cGMFf/DiLqC2AsgH4ARgN4johyXVxHcMD8wmTa+/Pmsl148YttyRYjI2DT/2SRCp2UaUt24s+zv062GAlDRSm8BGAxET1IRA8BWATgnyqZE1FnAJcDeNFweAyAqfrnqQCuNhyfxszVzLwNQAmAQSrXSXVSoF4DiJTDSrOniqzJRu6DRio0ym5wObBQYsI7a/DM3M3xzzhFcVQKzPwUgJsBHNL/bmbmpxXzfxrAPQAaDMfaM/MePe890PwUANAJwC5DulL9WBhEdAsRLSOiZfv371cUQ7DC0v6aeDGylvJjVSh+dDY27T2WbFEiCE5JTa4YMUGy5Y4nVBzNPQGsY+a/AFgF4Hwiaqlw3hUAypl5uaIslh3XiAPMU5i5mJmLi4qKFLNOLqnyYpmdhvLS2JMIB+vcDeU4cLwGL32ZiiavDNAKgidUzEdvA6gnol7QzEDdAbyucN5QAFcR0XYA0wBcRESvAthHRB0AQP8fCIFYCqCL4fzOAMpUCiGoEWE+spypIa1ALMzbVI7KmsyZ8iu1IftQUQoNzFwH4DsAnmHm/wPQwekkZp7IzJ2ZuRs0B/InzHwjgBkAxunJxgF4T/88A8BYIiogou7QIrEucVWaBJBJjabS0MwlzIzlOw5lzH1yM2IoKT+Om19aionvrPFRosSQCSua0206baqgohRqieh6AD8EMFM/lh/DNScDGElEmwGM1L+DmddBi766HsCHAG5l5nrbXJKEl3ckZV8sH7xyM1aV4drnF+K/K3fHPe+E4uGRBdZ9bD9QEWdhkkc8au7W/ccxT/ZESBtUoqTeDODnACYx8za9F/+qm4sw83wA8/XPBwGMsEk3CcAkN3knmhRt3pUw66YcHxb6bNmvNYg7DlbGllEaErx1fkyBSTCBsjTEoUNz0ZNaTE2r/RJSgQ/X7kVFdR2uPatzskVJCVRmH61n5tuZ+Q39+zZmnuy/aJlDqiiSRDiaA6OinDRvGL08s0D7aaVsVZm5ugwjn/oUDSmyuUyqDnLjyc9fXY7fvLUq2WKkDEqxj4QQKWsK8oDlSCFGFdYQVAoxZZOWBOpGLEX/9ZursLn8OGobGpwTe6ShgdFtwiw88eFG2zQhn4JvYviOzK7zhigFl8TSg0w2arOPYrtGfUMg7+x7IQO3LtXLXq8/5CmfbbVN46bzU11Xj9nr98UsV7wRR7M3oioFPW7RHxMlTDqQKg28F8yi+9F4BRqT3DQfKnibUKD9Vy15suqSm+uqKIfHP9iEn768DEu2HYpBqvjj42Aro4mqFPTZP2dRqnd9hJRBzEfp42eOJqeb2Ec7D2mTCo5Uxr5XRKwYTUZuneSb96XeyvJkoGI+WgHgPSK6iYi+E/jzW7BUxcuQNFWGseZenx/mo4B/NN0dzQFc9ar1/6p9qOPVkaHLE1lXVMoWj9lHseD28sb7V+/SWR+PvS4yAZUpqa0BHARwkeEYA3jHF4lSnIwyH/ngiGsI9pbTWyl4aZwbXDiaZ64uw2PvOzt6/UClbIHrp8gkKE+ks+zJxFEpMPPNiRAko0mRyqnkaI5R2HhMy0wGNXUNeHPZLtwwqKt3f0jAp6Bw+hebD1ge1xS1vxVGReEE6oGawzlFKjjCOzqZNFMwkagExOtMRO8SUTkR7SOit/WQ2EKa40fDHRiyp5v56IXPt+K+/67FW8u0QL2eHM36f5URmFP+qdKeuTHBpNrosN7nm7h460G8+Ln9DK50RXU/hRkAOkILZf0//VhWEktjkXycF6/F7lPQlUKaDRUOV2hO0qOmLUrdtHOhsscuj5++BVYZ0WSA+citT8Et35+yCI/O2uCcMM1Qqb5FzPwSM9fpf/8GkB4xq30gVZzGXlAzH7ln58HK4ArchhQyH5UfrUJFdWwRS90oyWhOdrMpw64eJaJ+ublG0h3NMdyPVFkVnm6oKIUDRHSjvmYhl4huhOZ4zkpSZVgfD+Ix3N9+oAIX/HEentZ3pgqt6k2+Vhj02Fxc89yXSmmr67RJ7bFsLhPNhu16Fo2fjmYln4KLtCn6TvhtPspUVJTCjwF8D8BeAHsAfFc/JiiSKnUzcvaRRRqXwu49WgUAWLRV6yek2jqFr/cdx2uLdzime2WRcxonok1JdVsF/KwySq5jPZGKCSbkS0ktZKDgDVulQESP6x8HM/NVzFzEzO2Y+Wpmjv0NSlPSuZ75ZT6yukYqOZp/9+5adJswC/9d4RzOO9RD9u48+uzr/Rjyh7nhPynmFxhh+Tlzxk3ebsxHKfTIAYj5yCvRRgqXEVE+gImJEiYdUH2hlu84hL9/ukU7J0VUScTiNR+uEXgPU62BAIC3vyp1TBNLW2x8znu+qTL9pnadRNaVaCa+0JTUREkTf5LtD0lXoq1T+BDAAQBNiOgoEJxATQCYmZsnQL6UQ7WaXfv8QgDAzy/s6Z8wMWJp5ojX7KNU1Ao+Ey3WjvuVuf7hJu90bljTV/LkYjtSYOa7mbkFgFnM3JyZmxn/J1DGrGJ16RHfAouZXxJLu3+clILKArCdByvRbcIsfLh2T2wX9QGV27DrUCXq6kOaINo55hGA8Zsf4UaiEXKmOzvG3SiF1aXfxCJWVDkSfW42o7LJzphECJIuxBI904ljVbW46q9f4nv/WOj+Il7kiGdv3jSvXSXr9XuOAgD+szz9tu4sP1qF85+YFxaqwuvsI8vf4tCg3f3WKox4cn5MeauY5QPlfkafgZZMsnCAGnd820+BiAqJaAkRrSKidUT0kH68NRHNJqLN+v9WhnMmElEJEW0iolF+yRYTPvY+np+/xb/MLbAeKLgroDkPN+ajwnyt+lXXJWYrbjfhHZzOOaRHBP2iZL/h3NiuDRgczXGoaG8tLw1ujxomi0rso5ivLqQrfm6yUw3gImbuD2AAgNFEdA6ACQDmMnNvAHP17yCivgDGAugHYDSA54go10f5POEtSqoafk+WiNiO04delZvtOAvztcdbXZuYwPduAsE5JXWzGpyZcdsbX6mlTcTitcBoLpqj2Qfby6GKGnSbMAuvxmH6r9+UHfkWVbWJ6aykGq6UAhG1IqIzVNKyxnH9a77+xwDGAJiqH58K4Gr98xgA05i5mpm3ASgBMMiNfInATzulSiP9v1Vl6DZhVkQ4BiXMU1L9CHMR3HnNOW1BXuqNFGIhMNvMTF0DY86Gctvz/PYp/G1eSXje8cvaFbv0fRem6/Gl7Nh2oAJrd8ffP6EKM+PcyZ/gtjdWJE2GZKISEG8+ETUnotYAVgF4iYieUslcXwG9EkA5gNnMvBhAe2beAwD6/3Z68k4AjLWlVD9mzvMWIlpGRMv2799v/jklUe11qSz4CpiYdh6sdC+HxfUqa+rCXsBYGwzjKtKJ76zB795dY5s2P1erflUJGim4QbXHbny0K3cdsUzj9Fitqkc8G+4/frTJdL3kmI9Uw6oP/9N8XPHsFz5IoEbg9qTiFqOJQGWk0IKZjwL4DoCXmPksABerZM7M9cw8AEBnAIOI6LQoyZXmwjDzFGYuZubioqLEh2Dys5eV6NAQRMBtr6+I6wsYaHCYgTeW7MRri3c6nlOVoJFCPHFjerP2I0evSb4uXvMt5+ikUlysaGS7P0VFKeQRUQdooS5merkIMx8BMB+ar2Cfnh/0/4FxdSmALobTOgMo83K9eFFbH96Draiuw8BHZvt2PZWGJpYKG7GiGYTlOw+b0sT2SgRefDf2+4T5FJL0tsfzuvFQFvHeIsEu6drd32DL/uPB7yqTEDyZRaGZIL+tiU/nwss9Lj9WhcVbMyMknIpSeBjARwC2MPNSIuoBwHHuGREVEVFL/fMJ0EYXG6GF4R6nJxsH4D398wwAY4mogIi6A+gNYImLssSdG15YFPZ995FvPeWjPPPERffTi5M4cq58pGCxNjkNhpGCqjx1ijusbz9QgQEPfxy0TfsBu5BfOU+Hu+om3EhcFVvUPZpjv9AVz36BEU9+GvweCDuRa1N5v/m2Fmc8+HG4HFamNWY8P38Lyo+GVo2PfvpznHr/h7ayLN9xSDnshduST5q1Hlc++wW+P2WRc+I0QGWdwlvMfAYz/0L/vpWZr1XIuwOAeUS0GsBSaD6FmQAmAxhJRJsBjNS/g5nXAZgOYD201dS3MnNS7QpLtx92TuTADS8sUm7EVNr5VN9NKjRScMZtUd5avgtHKmuVYhilEk7rEKwbPpu84iFPkgwk9UGfgvXvgT0tnNi07xge/3AjfvV6yBG87UDk1Fsj1z6/EC8obojjtl6+8Pk27Dta7e6kFMZxO059ZPAMgHOg1cmFAO7UZwjZwsyrAZxpcfwggBE250wCMMlZ7PRhwZaDvkxt8+J/MFd2N42R+jU47H/UtC7zjtXn4sakpXof/GpefW24lRak+XBZPU/P253q1NVrGR13uVfG5vLjzomQPKWZKqiYj16H1oPvAG33tbcATPNTqHSmpq4BT328yTmhBfFYN1Bb34CvdlqPcMxV3c8ZJiqk4qhHVSI3j8pTMaOsefDCC5+FesmBHGrqGrBwS+Ls4E5btaqNLr3XGdVnloLVMqGoKAVi5lcMO6+9CnHQ2/Lm0p34yyfe5oXHI4jcH97fiO88twCb9h6L+C1i9y/LqZCxPVo3WyAG14n50iuNT6aJMNc4PfY/fLAB3SbMArP3pzPp/Q0o031ixltz/QuLLKc3u7l9qmmdtmp1+8ys7pvCDqOCA47mI2h+gQnQRgcM4PsAZunrFsDM/kRvS1O+tTAVqYc4iJ11Zdqag0MK9lnLJibGNyfoU4ijieJwRQ3WlR0NnedCDqfrHaqowYY9R8OOHTxejQWKPWglM5mH22z8fYrey69rYGzep2YCsSI4CcB09Yqa2LYsVSW014aLc1xWyLgo8SzXHipK4fv6/5+Zjv8Y2jPoEVeJ0pxYQlW4GShc9pfPsfi3I9C+eWHY8cDlVWa0+DHDhm0aHruzrFi2/RAGdm0V7FHe/O+lWLnrCH5yXncAatE4VXudP/zXYqzdbVA4DIydssjR/my+v1GD4TnI5+Tbycsh1NYzausbcNlfPo8qlxOLtx7E2rJwJWieeg34a1qMzXwUR4HsrqEgyWPvb/BfkCThqBSYuXsiBMkUrGzqynZql+ajORv24QeDTwp+r66rx+7DmonAMiezo9k5iSNmmd04aq3SLCg5gBteXIx7R5+CXwzT9qIo0RvoQOM1Z8M+7D9WjaJmBbZ5W44ULNJ9vTey8Vd1SBrzjNYZ8GLKMjZMeTk5qK2vR219bC0iEVlOm7TK1w9/T8inYP271SXdhmKJx2hbpehTPlObyZSOqIS5aExEvyeiKfr33kR0hf+ipSfJHHr+35srg2splBSMhbCPztqAgY/Mxj8+3eJpXwd36xQiCci/uTzkEwk0IsaGt8Jh5omq2SGix+/R1RzNwe6Uo1EGq2zy9Btg7tF3mzDLVYwguxphNVLwAy8bMLnehyJKXsqOZsV0mYqKo/klADUAztW/lwJ41DeJ0hzLBTKKmsJjOx7EGHTN+oWxf8EC/G9VGQ5V1OAPH2y03dfhUEUNznz4Y6yxMON4WacQSLuu7Bu8tUzbMtPYQ8zTYyS5m9lkdTDyULx2iIuqFDy0MmHmo1xrpQAAH8RhgyI35qPa+gac/8Qn+HjdXtfXCVwm1Xfli2WUlIoz6tyiohR6MvMTAGoBgJm/hT/b+6YEkz/Y6JwoCvUxmI9iflkMF7IMJBWn+vpFyQEcrqzFlX/9IsJJGcuU1Mv/8gWWbNdGJ0YFFrgvxplNjo5axZlV3qfMO8/kskka+bPxuVHkKbk52mtaW2dl5ometxG76lXnwix18HgNdh36Fr//79qQDIrnhmYfKV8uAqdGN9rjrG9gvLxwe9hueZbX8CBX8Nz01wlKSqFGD1PBAEBEPaHtlZCR2IU/ViUmR3NMVw5v9AINwNGqWttpol4rsPHF/GLzgbDfQuYjhVk5itfTBwoup7uqpTUrYvXplebvkSd++vV+fPNtradwIsb7l6+PFGp8MvNY5Wt3H2Lpt1hFSQ2vJ2o33+vE3HdW7Mb9763Dvxdsj55/DO9wOu9pHUBFKTwILexEFyJ6DdrGOPf6KVQ68srC7SgpP27ZGKrHPopNhvDrECqq63DGgx8HZ0pErmj2VoGjVfxAGKNYZ5KEmY/0rqUbpaCa1Ome292jwOGt+s5mVtcb968l6P/Qx9iwx2rNSHQZjL/n2vgU3GK3Itw63/g3boERSW6YUoDlZxW8rnB3XAkdQ9HTXyWoxT76GFrY7B8BeANAMTPP81mutOO+99bhyme/iKmnYOy1jv/30pjkIQpV/hmrtGCzZsm8SmqMX2cubrD8So5mxd68XkvdRNBUVc7mkAvzNtlvhhOWV4T5yL4s17+gHijNjaNZk0OdeJiPYiHkaA4dc2sGjIekTsoklgWcGTBQUJp9NJeZDzLzLGaeycwHiGhuIoRLN76trbeZCum+pszdaN04hZmITJXbeJUcomAFDaRSWdGsgopTNVqZtx+owOrSI/ixrvicRiwBZWl0pDudozpSMJuPzGsgDlfW4LQHPsKHa8Mdq5HKUO16Vjg9h4CjPdaRgt11VMxHo5/+DL96/auIdG6IxzoFIPaG13l0aH1cxbScCXGTbJUCERXqq5bb6ttwttb/ukGLgSToGBsoy3UKCaonRjkIoQpq9xJ4FctYnn99uQ0A8LW+0lZlSuqwP83HVX/9MuqOa0aZPQVQUzYfRc9739FqHK+uw33vrQ07Hi9TXKQ8kfkHRgo1Fo5mN9g1WCrKZuPeY5i52nqmk2rZA5ex8ymorm0JJPNqbnWqTnZiqExCyYSRQrTFaz8DcCc0BbAcoQ7nUQB/81es9CIWu6gRt4vXVOdw7ztabRk3J54+hW++rQ37LZ7vhlXP0il/1UWEqvrGnN1vTduMxnslu/FpRfMpuHmEdmlr6xKzorletzvmGrqiXq4TqwJ2es9im5Lq+dSUwVYpMPMzAJ4hotuY+dkEypR2GBsgq3UKqhUlntsUHq+qC48XxPGrsNEaQC+No9UpRllVNkcxv8ivLd6hdG2v04DN+zG79SXZpbZc1RtcvBfbA7Q7v85FnXXhMrK4vvbfaPYM61Ap5hqLAgYUzEcx5J0J5iOV2Ed7iagZMx8jot8DGAjgUWaOzcCYQRirQVKnpBquffu0FThwPBQUz6nhdUPU2UcuVjSrUmuxM9va3d+gQ4tQ3Cfz9f708dcR51j1AFUVsVND4lopOKS3XmdhdUz9unaXdLW2JCYnbKQ505if1QZ8EaNbcNR7pzLadnQ0++gfSgdUpqTepyuE8wCMAjAVwPP+ipWaOPWegNh6c27NR9EwKgQg8ELGp8ZGeyntInFGzy/ymPFWWC3aumPaStz+xopQHspXM19H7Z5HDcnMHPfGwFqJ+9PiWLkU7J6faqdnzvp9tufa+7jcjRS8vi3OPgXv9zlb1ikEYkFfDuB5Zn4PQCP/REpd7F8UB0ezTX7PzNkcZoZQ6bV6XnBmca7Xyh/VfBRYpxDPkYKNI3T5jsPBz+YGU1W/qja00fJr4Ngag4pqq3DrkQ7YWO9pPEYKqvsc/+TlZVGuo75OwXzbOcZ7DSjUDUP2NRb+FsVT0xYVpbCbiP4B4HsA3ieiApXziKgLEc0jog1EtI6I7tCPtyai2US0Wf/fynDORCIqIaJNRDTKa6H8QqUuvrww0pZt1/D8ec7XuPpvX4YOKLRkYc5kF32lBktHs/LppvPsTwyFznbHxr1HbX+zUwrG9sl8PcswH6bv763cjbJvqixSuiPWkUJgHYnzdawOhj5OW7ITlz5jH1rbrhNgtSjQ0afg0JhHg8i6Dql2qGJWCo7rFEI86XIXxQwYKCgphe8B+AjAaGY+AqA1gLsVzqsD8BtmPhXa/s63ElFfABMAzGXm3tBWR08AAP23sQD6ARgN4DkiynVXHPfsP1aNt5eXKqVVMR+lKqo2ahXsOouHKmpCv7m8KaOfDm/MjK9t26bWIbIbLHrTwfMVFOwd01aqimdyjoZfzMtIwSm1l8ZwwjtrIjYMCsvT5vR4hw+x6zQE5H998U50n/g+KmvqPCmXRK5TcN1pSIO2wAmV/RQqAbxj+L4HgGNoRmM63SexAUAnAGMADNOTTQUwH1rYjDEApjFzNYBtRFQCYBAA61CdceJnryzDVzuPYOBJrTDls+iLU+xeiHjNOPA7ymDk3Hpv+dg1TgMfmY32ze33OLDDyYQz7OR22HpgW6QcYQHyEvM2Tl2wHZ1anhB2THN+xvc66o5mF3naHHdj8lTRH9U2JhfzgK+iuh5NCkL9PlXFGkzn0QfnOCXVUHq3MwIzwaegMvsoZvQFb2cCWAygva4wwMx7iKidnqwTAGM8gFL9mDmvWwDcAgBdu3aNWbZ9R7XYflMXbMcbS3ZFTWtvk41+Dad6sutQpWX9/uzr/bigT1H0kxXRFv2EC+K1IY1WnsBvqiYRADha5W1vhDDzkXmkEEU2LwSezwMz1lnm67oxcExuZdKJrcGxO//ZT0rQocUJuGFwV8e0oXLay1JlsSVt+LmBHMK/P2kxY8w6H6Vktjg6mg35u52ynP4qQc18FBNE1BTA2wDuZGb7sa2aGRjMPIWZi5m5uKgoPg0m4G4IbSFTTOec/8Q8nPf4vIjC/vBfSzzLZCaeK61VNpRZuv2wbRq32Jo9bH5gZuu59wBmr9+HLfvd73NcVVsf3ADITAOzq4bKrr7sPvJtUG4rs4q6ecVuRGuPeTGekcDCRFUZ7Faqm+WqbwgfYX1RcgBOxMXRbLj+tgMVkdcwpnU5UsiE/RR8HSkQUT40hfAaMwdMUPuIqIM+SugAIBDQphRAF8PpnQGodzdjRM1Waneu+7wtGxEfK9SS7Yfw7NySuOQVfevJuFzClKd942913Wghpn+qz4rZPvlyVzIcrqzF0Mmf2MjhrqFasOWg5fGpTiGdLa9treytI696ezjnPR4qt+X1TJJ9azNSMD+W+gaFt86UoLquPrTewelcG4gI/12xG8/M3RyhFCpr6vDBmpB1XEYKcYQ0w90/AWxg5qcMP80AME7/PA7Ae4bjY4mogIi6A+gNIH5dZQfs3pcFWw4EK4mtT8FDnDKvezlbvZSPzFyPO6atiHrezS8txaZ9kSGc3bB460HMXF2WcLupin07mtPZ+YfY2Fx+HOVH1bcYqayxbjS7tm4c/KzqaF67+yimL93lmA4A/rN8d1S5/vSR9UybYwbznsqISNV8pI0U3D2Th/+33nKRWwA7f4YRIuDON1dajhIenLEOj87aEPxuNjV5WXSYbvg5UhgK4CYAa4hopX7stwAmA5hOROMB7ARwHQAw8zoimg5gPbSZS7cys3Xt8gG7Z3nDC4sBaD1L+5GC+4qiesyJ2voG/POLSCesCm5fyMCm73dd0idarpZHp3y2BY+9vxFrH1Kbaey0bzFgvxNbopVW2LRiBbQ4VJEyFuTlGNJo/zfvO4b1+owiq2It3HoQC7cexD1vrw4eq2e2fLF3HopsBI38dV4J7hp1Mg4cr8aRSusw5Sr31n5Tp/DjdSojBRM7DlVGja914Lizco7W999jmm1kHik0MJAbJQMxH0WBmb+A/f0fYXPOJACT/JIpGrHsFOalHli9XF4aszeW7FRK16wwL6zHB8TiU7D/zS7PqQu09RsLFOzGEXm6nAYZi38oVQiUeeSfPzMcUzzXJqHVIjkrih+d4zpvI3b12OwD8vKc6htC/ptVu47gufkl+OWwXq7yiDb7qHGj8Fnw5rRaPbM/P/1rXgIczalKZU0dzp40J+g8dJp5BKjMyFDH60jBnMRuqG4mz2LKhdcKrOJojjiun3PLK8tdX8/tfbEzL6TKC8uwLpOxAaqsqccfPwoP1azaC7V7Pna2fjeo1HW7tt58vK7e/VRe7fqhk5740N3iMiC687hxo/B+svm1iXWmYTqQkCmpqcjW/RXYf8zdVtN2FcLZ0Wx1zJtPwcwJ+Wrr+6x6R14rcPQpqXaK09u1Ptm4D68tdh4NGS+b6nPFdx+2nsVk5O/zt+BjU/wg1WLZ3ev8aHYPRVRmQtndf/PxBm2etC2HKmpwqDI8hpfbmV5WRFvRbB4pROzh7WQqTpmuh3eydqSQ5+kFsbOVOpxlaSpSSxeN3767JrgrlxPW8329VeCoYS5sjnttqD9Ys9c5EUzmI9vZSp5EiDsPz1wfccwcU8iqV696D+3MMo0U60o0AnXmYIUhAq/pcrYdA5Ncmk/BvkwDH5mNkvLw6cP1DbEr/WXbD9n+Zh5Rm/tSTpfOAMtlFiuFHPdFt3U0u6yky7YfwoCHPg47Vpjv7VHEtr7C43ke8vT6IqvOCAybiZQGb+aKnUfCvteZZuLEMhHByzoFVVTus6r5qL6hwb35qCH2kcI7K+xnYZnzjnQ0O4wUUqXnEQNZaz5yO5R+a9kudGvbxPI3p2qwZX9o1sfUBdsxe/2+iMVVeTk5UV+Qiuo6rTKb0qhuVWm9uxdsZ5lEw0sD70V5rS49Yjun30yDwkghldh7NHyWy67Dlc4jTsW87W51PBzwCw3Pw3ZUaHMd8/Xr6j3UI3Y/jdUN5rrtdqSQBlXPkaxVCm4ijALAuyt2486LradirjFt9h4NqzAJmjzRG9tHZ623dIZbrdy1JrK8by51ttUfqqhB6ybhkdL/Ns8+RlS8fAoEwlV/VZ/qGR6+3DpNKtt7Rzz5adh36wWPsTma4+FrefzDkPO7gRm5FvXK9v5brVNwef2GBsZD/4s0v8WLWEcKmUDWmo/cPtwFWw5iu8ViF8A6drxbjlXX4Q82G4PP21iOaUutZ0fVK2y6DliPFPYpLLga+MhsLCg54BgsMEC8fQqqhDmaFTTQ3jiEzPaTtbstIsKoOpqj9NRVR5YqrC+zjlqj2jEwm8xUaGDGoYoa54QeMcsTsXjN4fxMUBqiFFxgXCAUwOwI84Ob/73UdliqOlKIpSn4aN1ePPa+tcKKwLaXGIMACoSZj2zuya5DoVk/5/xhrr8CxYgx3lAANzuTLdkW6UxtaABy47i73xh90Z752dqZ7yLWKbD7kcL2g5Uuz3CHWfSI2UcOfbAM0AnZaz6Kx7NbUHIAN7y4OA452ePUk1K1E8fSFkSLJWTGThq/F5QZe9Z2jZJVQ5tOqN7CN5bsxDNzN0ccr2d9pOBznAA7OV83TS2u97BOwW8ifQqRU1K9zL5LJ7J2pBAPZ9XmBIwSnBoC9ZGCd61QY7FHsh3xXODnhp8aTHjpMPvIC0/PUQstbaUQAK2uWC1ijDeqz1rdH5Y4In0Kkb9v3GsfQywTZh9lrVKIR31MRAVw6mG73UPWC3bbYbohkbbWFGxr4oKKDygaDQ2MXIdZd7HW6br6Btz80lKltPUO6xSSQaRPITLMRbQtTzOh7mWxUkje03Pj7HOSsy5ayEgDsZiPVK8BqEU0VSEWeTMh9pEf1Dewo08h1teiykUnpa6hIeXsLeb3zRzR1rlqpViBPJC9SiEOHWyvj9+NUnB6SWs9zPV2y/uKq4qB+C9e80ImzADxgwZmR2X7ry+3uc7X2Nt3M9KormvAH23CdScLs/Tm+yGhszOYeAxbE1EBnBq4gGmHKLo8/luSNWz3nEjgyyIjBWs0pRC9Jhj3EvB0DRedrTeW7IxY2Z1snOqOU83KhJqXtSOFeDRSXrNw05tyWp0bVAoO+Tg1BvHCbitGt9ity1Bhss16j2ynvoFdb0SvgrGK1rrQCt/abDaUTJxjG2X+SCFrlUIyTQxuLu00LzoQKsDttoGZzMKtaqExAOdN3DOJBva/nrgZpaWimS/WRj8Vy+SWLFYKsefhdaaGm4rjlLbGYD4S3PPrkdF2kcsstJGCvxXFzTRTv818XhS+0/smI4UMJqkjBRdpneScuXpP1N8DBDYTEsLJ9RAtN105XFET92nUVbX1WGxYPV3vYuKD364fLyE9nGZfOwctTH+t4NsbQUT/IqJyIlprONaaiGYT0Wb9fyvDbxOJqISINhGR2ka+MZBMje7m2k4vTmCdgvhWvRGHLQbShmPVdSiLc8ynDXvC4x+5mb7s/0jBvVKIdSQgI4Xo/BvAaNOxCQDmMnNvAHP17yCivgDGAuinn/McEaltKeaRePSYUmH2UQCZceONbBop+IF5XxI39dDvOutl9baT+ctx57UMeA19eyOY+TMA5qhcYwBM1T9PBXC14fg0Zq5m5m0ASgAM8ks2IE4+hQQMFTPBcZXKGBf4nterbfIESVPMs+PcrJvxu27neDIfRR/pOO7RLOYj17Rn5j0AoP9vpx/vBMA4B7FUP+Yb8aiQiRkp+H+NbCbXYD9qWpC1y3Y8Y+7tu+n9V1lsOeqFv39qHdbdi0/BKerxb6avjPp7JvThUmXsbL2FsFVColuIaBkRLdu/f7/nC8ZFKcScgzOZENwtlYOEGU0MYklyz6Ozwje8ceNTMIeQ8IrduhQvYcKd4kt95bDYLnVrujqJfg32EVEHAND/l+vHSwF0MaTrDKDMKgNmnsLMxcxcXFRU5F2SODy96jgt1IrG+U/M8/0afnPLK8uTLYItxt5kLJFk05UT8mNz3ZlXJLsZKVT7HMzRi/koVjLB3JtopTADwDj98zgA7xmOjyWiAiLqDqA3gCV+ChKPDvifFUMZZzuz1+9Ltgi2GHuTstYjdlIpHHYyHmcG6AT/Yh8R0RsAhgFoS0SlAB4AMBnAdCIaD2AngOsAgJnXEdF0AOsB1AG4lZl9XQOfCRpdiJ2C/FC/KBtrRLwdo6k0Cy45Sj51yu8V35QCM19v89MIm/STAEzySx4zqawUzuzaMuUChWUqTRqFXoFM8N+4Jd6vQTz23ogXyQj9ksLNijJZ61pL5Yd3To82yRYhayg02NRTyfSRrtQlIJS7KskYKGRCFcpepZCEYd6ZXVsqpcvGHqsffHDH+Y5pTmgUUgqq9/3UDs09y5RqxLumVdWlTuTTREUGNlKXQiMlr2StUojHJjtuubCP2mypVLLLpjMqjbdx9o1TmPIAt13UC0t/dzF+OawnHrqqn2f5UoI4V7XKam9KYcQp7ZwTxQHVd9Ar1aIU0pdk+BRUL6naOPnJbRf1SrYICSFMKURRxvdf0Tf4OS+HUNSsAPeMPsXTAilV2jUr8C3vAG7WFahQWVPn6bzBPVrHVQ7A2tE8/GSflUICpqn7TRYrhchjzQv9XdGquogr2eajDi0K8cth2aEUChuFXoFoSsHYicg3rIL200LxzNgzXZ8z/65hrtLHu6pVeFyQNuLU9vj95afGVRarZ+OnEgdCoezTmaxUCvuOVuG5+SVhx/p1bI4Xx53t63VVX8BkjxTGn9c9zNaeyaiOFIxKwdiw+DnDpXWTRq7P6da2iQ+SqON1pNAoNwc/Ob+Hq3PGnt0l6u9Wz8bvBW3VcQrdkUyyVimsLv0m7NjbvzgXAxUdwV5Rj3jqPu/P7xmO138y2P2JJrq0PgHjz+sOAFj94CUx55dKDLMwHRQqKgXjM8nLNSqF+MhmRZMCfxTz5/cMV0rX4oT8qL//6NxuEcfKjngLze22B39+77YYcWr7qGkCOU7/2ZDQdXx2PstIIU0xh/sFtMYhz+fg+qr9fy/moy6tG+NcPcrnZaefGDXt8z8YiN/Y7DjWtXXj4KyN5oX5WP77i7H4t5ZLSwAA1w7s7FrWZFGYF9nIGk1B0UZo9uajyEbmq/tGehUxjCKffApdWjeO+vsQfUp0m6buRyrvrtjtSaaCPOt3r0dRaOTz8wt7BpXwI2NOc+xkBZ5Nm6aN8NwPBuKjOy+Im/mokU1bIT6FNKVRXmKmqr1m6rknwtFcMulS/PX6gVHTnNe7Lc7q1sryt8aNwv0qbZoWoH3zQtu8Jl1zGn445CT3ggL4y/Vn4j8/H+KcMA7079wCHVueEDXN7SN62/5mVNRO5iMvZp8Af/jO6cHPBRZKzA8eu+b0sO+92zcFALSJoRxuKTDFYBrUTXM8T7mpOOx44H43ystB8UnWdThA4MkwA5ed3gEnn9jMs1K4flDXsO+3j7D2uclIIU3JVxgR2AUK++5Z9j3jOy/ujVm3n4czOrcAEOnoSoSjOS83Jya7qdvw0YX5uTi7m7eZI80K8lCseO7k75zunCgKQ3u1DQtpYcXwk+2nRf5oaLfg53zDSDNwp2PpgM4zOIf9cCd1bhVdGXYy/R7Yza9Nk+gjFaL4OW7NI4WXxw/CyvtHovkJ4fUx8E41ystBm6YOI6mgaNYK3Q2/uLBn2PdCm/ZBRgppil9moivO6Ih+HVsEK7jZfqn6vsfD0bz89xdHHHvyuv547JrT0azQ3lbc2IOD2ev0XhXz7pAebbDy/pE4o3PLqOmui6KsAeCmISfZDvlVMN6zMJ+CnuVV/Tt6yrcwPwddDeacwLO/YXBXu1Nc88CVobUUAQWx9Heh+mFuJwMhre3MRz8e2j34OXBPv7pvJPJzvSuIQAjzJb8dgeW/vxiF+blo2Tj8+kShSLZ25qaw9Pp/Y/V0MzHguR+ERtyNTNezUy419eJoTktUKq/dime7Mzc+Mhq92mnD7oDD0lxxjI7MIVFCWcRjmqBVL6pL68bBxsYuTHSTKCMFu+0NvcbFV3lBu7VtgpaNG0U8s42PhO/02qd9M1wZpWHu0OKEqCOFwd0jRyybJ11qmTbPwnzk9ZkRKKxRPvXEZrbyDO7eGie1sfYHjD+vO/50XX/L3wL37tyebfDp3ZqT2eivMNeFimptBpGd+cg4sgg0ljkE9GjbNCLtTeeomRYD9v92zQvD6q5Ztp76O2Y32n/2+tA03kCexkcTeCdVdtm77PQOmPubC/H5PcMjlILd85aRQpqi0mN02/k1DicDPRzjsWvO7ISfXaBNuevc6gS8ccs5YecbnZP3uZyv/RfDixANY5gNO6V3xRkdLI+vfWgUVj1gPRvJT6VQqDfk5tGd1fD9qe/1xzTTfTVittH30Kdvrrx/JF4er+3+2qFFyH9i1/DkWTiavY6Wzu/dNsxZXdytNZb8bgTGDAjfeDAgY6BRN3PfFX2Dps2XfzwId10Smkhwyonayu7x53W37OGerCuiABX6tFIr34i5MQ2sEM7LzbEMcaFiqo2G8b4SgFfGD8I/xxXbmm+G9mqLl350Nu4ZfXJQ2VqNFOymXL/+k8Ho0KIQI/tqM5t6FjVFl9aNI5TC8SrtHpk7SuJTSFOimY/m/PpC/PUG+0ZWZfT55HX98fCYfujXsTmG9tJGBH/+/gC0a16IP373DLz5s0jnqvEFbNe8EAsnXuR8IR0V08VN55xk+4L+angvvDJ+EN7+xbm2ZpqmBXloUpCHl24+G+/dOjTst8pqb3PTo5l3f67bcO1efkDrFT5wpbbSuLhbK+Tn5qBtlBkzTUwNwUf/dwEATYkHFMaHd17gKHde2MY8GsxawxwciVmU7d7Rp+AHBrNQ19aNLRV6u2aRjn2jjE5c0KcIv7oo5DQ/sUUhtk++PGIK5zVndsIT156BomYFYT364/rzNJtv5t81DFN+eFbYsT9edwbm/uZCNC3Is1Q45sbULcaoq0RA26YFYeUwrlBedf8laN2kEYaf0g6/HNYrOMqwWmNi57fr1b4pFk4cgRd+GO7gDoy2WjbOx4AuLXFGF81veH7vtmGjuhqfNw5KBFm5KW0081Gvdk3Rq11T/Hr6KuX8zBW/VZNG+OGQbgCAV348OKxSXlccWnDzxb3DUXr427DwzQGM0ycvPrUd5mwoj0gDAFseu0xJRrsG+JwerXHXqJOV8gCsnbHmVay/u+xUHNMblr/M3Rw8/v7t56NZYV5wN7loAcvGnt0FL3y+NTjl1Sokc8BcdKNB4QV6gs0sVqd/Z2BnbDtQgVcX7UBFTb2lkmxxQj4++c2Flr8RaY1/+DqFgImCg+s7AOuR5tBebVB6uDFeW7wTgLY2JqD0OrYoxC+G9Yw8yYLpPxuC7/1jIQCtA+I0q8qOP39/QPCz0Y+19xttrYHRQT2kR5vgwjjjhImCvFz0LNJMOlf174in54SeNxBugpr8ndNR3K0VTmiUh6GTP1GSsbbeOFKIrC//HHc2evz2fQDhzwUIKWbjswg81npmDOnRBgu3HkTPoibYsr8CgP3ajIK8XLzzy3PRq11TNC/MR30D45fDeuLmod3x+IcbsXjbIQD+7yaXCLJTKShsxmvuSbz+08H4z/JS3D3qFExfVgoA+HLCRdhSfjxsLrWZnBxCjo39vnOrxujcKmQjfuiqfkFbr3F4e9OQbpZKoV2zAuXZFOYGONDrbNU49mmHjUwvY/e2TXBx3/Zg5jCl0LejZsY4u1srLN1+OKio3v7Fubj2+QUANIUypKfWABkV3om6WeeCPkW4pG94j9fYgAeeWqBc7906NNjwNsrLwcTLTsXNQ7vj633HbMvToyhkG3//9vODSv26szpj+rLSsB57oAxOIYSW/HYE2jUvxKa92nW/M7BTmF1/wUT7tSBmBhl6ptc6ONhPbt8s6u8BfjOyDw4dr8Gj15yGq579AgBwWqcWuHloN4zs2x5nGaZ/Xj+oK9aVHcXtF4VP4b39ot5BpXD56R0wa80etGseKmMOEXq10+SZcOkpOLl9M/ziteWoimKHD/N9WFR140w7u3fBaCo9r1cRvl/cBbdf3BuddGVa38DoqSuWaKOxgV1D9yA3h3DP6FMAAA+P6YcL+xTh6Tlfy0ghXTFP2QxMITVijq1/1kmtcG7PcHtqp5YnBCtWPBhnWCFqnF1hVdG6tm6Mtxzm+H854aJgj8w8W2Ng15Z48Mq+uObM2Bef/XJ4LzQrzMek9zcAAM7pqZnMjIrI6DPp074Zlm4/HDSZnXVSK1w/qCveWLITw09pF3TYG2lemI/tky93lCUQpfNEfW1F/y4tI9Kc2KIwqGScCCgyQJvP/5Pze4SZ+ux8CqP6tcdH60LbkLbT5flWD4PgZZaXWz6/ZzhaNo6+KjlAm6YF+PtNmmnotZ+eg5W7DqMwPzds5lKAJgV5YaOMAMb36s6Le6P8WBUuMkQ/zTesDwqYBxdOGBE13HbTgjzcMaI3npm72XaSR9OCPByvrosY3fXt2Bwb9x5Ds4LQPWiUl4PHv3tGWLrcHMLIvu09bxvbuFEeruzfEc/P34LqFAod7pWsVApG/nvrUHRvE9nTf/OWc7C27CjKj1bhjot7h/Ugmhfm4WiVNzu6KsYGNaAUehQ1QY+2TTFnwz6c2Lww6qIyQFNaH//fBXh6zte4zbQwi4jwI8PUwlgozM/FTy/ogaG92qKoWUHEWodGuTlhDel9V/TFlf07orehF/vAlX1x9YCOlgrBDf06Nsetw3sGzXfxJC83B31MPe/AYzKbqJ//wVmoZ8akWRtQUn48eLxKVwpWJsN447Ry2Y7ubZugu8cYSvm5hNp6Ru/2zfDWz88N++2KMyJ9X60UFsgFb62NufHdX56LeZvKI0YKj11zOsae3RVdbWZsGZly01kxh6xvlJcj5qNMYIBFTxIABvdog8E200YX/XZEQvY8uH1Ebwzp0QZndm2Jawd2xj2jT0ZuDqH40X1ho4po9GnfDM/94CznhB4w90KNveoAr/9kcETjVJifG7G7XGF+ru39dkNODuHuUafEnI/y9YINVXh9CJgNHzTtt3D9oK7YuOeYchTae0afbLkvxKRrTnO90DARzLtrGHYerAw71rJxPi46uZ3nmUgBE9gpJ1qbwnq3bxbWwQhQmJ8bZmqLBhFF+CTcUpAhSoFUV9kmCiIaDeAZALkAXmTmyXZpi4uLedmyZZ6uM2NVGU490boyCc7sOlSJ5ifkOwZNy3SOV9fhhhcW4YnvnhGc+inEnw17jqb8jnc3/XMxlmw7FLYY0U+GnVyE313e1zmhBUS0nJmLrX5Lqa4GEeUC+BuAkQBKASwlohnMvD7e1/K6AlXQ8GqayDSaFuRhxq/OS7YYGU+qKwRAmwVnNevNL5zMx15JKaUAYBCAEmbeCgBENA3AGABxVwqCIAjxZFS/EzGqX/QIxelAqi1e6wRgl+F7qX4sCBHdQkTLiGjZ/v37EyqcIAhCppNqSsHK0xPm9GDmKcxczMzFRUX+7rcqCIKQbaSaUigFYNxjrzOAsiTJIgiCkHWkmlJYCqA3EXUnokYAxgKYkWSZBEEQsoaUcjQzcx0R/QrAR9CmpP6LmdclWSxBEISsIaWUAgAw8/sA3k+2HIIgCNlIqpmPBEEQhCQiSkEQBEEIknJhLtxARPsB7Ighi7YADsRJnFRDypa+ZHL5pGypwUnMbDmnP62VQqwQ0TK7+B/pjpQtfcnk8knZUh8xHwmCIAhBRCkIgiAIQbJdKUxJtgA+ImVLXzK5fFK2FCerfQqCIAhCONk+UhAEQRAMiFIQBEEQgmSlUiCi0US0iYhKiGhCsuVRgYj+RUTlRLTWcKw1Ec0mos36/1aG3ybq5dtERKMMx88iojX6b38hstkNPYEQURcimkdEG4hoHRHdoR/PlPIVEtESIlqll+8h/XhGlA/Qdk0kohVENFP/nkll267LtZKIlunHMqZ8ETBzVv1BC7S3BUAPAI0ArALQN9lyKch9AYCBANYajj0BYIL+eQKAx/XPffVyFQDorpc3V/9tCYAh0Pau+ADApSlQtg4ABuqfmwH4Wi9DppSPADTVP+cDWAzgnEwpny7XrwG8DmBmJtVNXa7tANqajmVM+cx/2ThSCG75ycw1AAJbfqY0zPwZgEOmw2MATNU/TwVwteH4NGauZuZtAEoADCKiDgCaM/NC1mrpy4ZzkgYz72Hmr/TPxwBsgLbjXqaUj5n5uP41X/9jZEj5iKgzgMsBvGg4nBFli0LGli8blYLjlp9pRHtm3gNoDSuAdvpxuzJ20j+bj6cMRNQNwJnQetMZUz7dvLISQDmA2cycSeV7GsA9ABoMxzKlbICmwD8mouVEdIt+LJPKF0bKhc5OAI5bfmYAdmVM6bITUVMAbwO4k5mPRjG5pl35mLkewAAiagngXSI6LUrytCkfEV0BoJyZlxPRMJVTLI6lZNkMDGXmMiJqB2A2EW2MkjYdyxdGNo4UMmnLz336sBT6/3L9uF0ZS/XP5uNJh4jyoSmE15j5Hf1wxpQvADMfATAfwGhkRvmGAriKiLZDM8VeRESvIjPKBgBg5jL9fzmAd6GZoDOmfGayUSlk0pafMwCM0z+PA/Ce4fhYIiogou4AegNYog9zjxHROfrMhx8azkkauiz/BLCBmZ8y/JQp5SvSRwggohMAXAxgIzKgfMw8kZk7M3M3aO/SJ8x8IzKgbABARE2IqFngM4BLAKxFhpTPkmR7upPxB+AyaDNctgD4XbLlUZT5DQB7ANRC63WMB9AGwFwAm/X/rQ3pf6eXbxMMsxwAFEOr1FsA/BX6qvYkl+08aEPp1QBW6n+XZVD5zgCwQi/fWgD368czonwG2YYhNPsoI8oGbZbiKv1vXaC9yJTyWf1JmAtBEAQhSDaajwRBEAQbRCkIgiAIQUQpCIIgCEFEKQiCIAhBRCkIgiAIQUQpCIJLiKglEf0yyu8LFPI47pRGEJKBKAVBcE9LABFKgYhyAYCZz020QIIQL7Ix9pEgxMpkAD31AHe1AI5DW1g4AEBfIjrOzE31WE7vAWgFLTLq75k5NVexCoKOLF4TBJfokVxnMvNpehC4WQBOYy1UMgxKIQ9AY9aC+7UFsAhAb2bmQJokFUEQbJGRgiDEzpKAQjBBAB4jogughZXuBKA9gL2JFE4Q3CBKQRBip8Lm+A8AFAE4i5lr9UiihQmTShA8II5mQXDPMWjbhjrRAtpeA7VENBzASf6KJQixIyMFQXAJMx8koi+JaC2AbwHss0n6GoD/6Zu9r4QWLlsQUhpxNAuCIAhBxHwkCIIgBBGlIAiCIAQRpSAIgiAEEaUgCIIgBBGlIAiCIAQRpSAIgiAEEaUgCIIgBPl/67i+w4ayABsAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['steps_in_trial'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps for solution\")\n", + "ax.legend([\"steps\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The best action: 0\n", + "1 [189.4468880751367, 1280.3139057920484, 1e-06, 1e-06]\n", + "\n", + "The best action: 1\n", + "1 [1e-06, 1022.2228432857141, 1e-06, 1e-06]\n", + "\n", + "The best action: 1\n", + "2 [1e-06, 1e-06, 885.2147964418139, 1e-06]\n", + "\n", + "The best action: 2\n", + "2 [1e-06, 1e-06, 853.0610656271485, 1e-06]\n", + "\n", + "The best action: 2\n", + "3 [1e-06, 504.44956740303866, 1e-06, 921.9530187832484]\n", + "\n", + "The best action: 3\n", + "3 [1e-06, 1e-06, 1e-06, 1100.0509562769134]\n", + "\n" + ] + } + ], + "source": [ + "moves = [\n", + " {'action': 0, 'exp_state': '1001'}, # 3 -> 0\n", + " {'action': 1, 'exp_state': '1010'}, # 0 -> 1\n", + " {'action': 1, 'exp_state': '1100'}, # 1 -> 2\n", + " {'action': 2, 'exp_state': '0101'}, # 2 -> 5\n", + " {'action': 2, 'exp_state': '0110'}, # 5 -> 8\n", + " {'action': 3, 'exp_state': '0010'}, # 8 -> 7\n", + "]\n", + "\n", + "for step in moves:\n", + " match_set = population.generate_match_set(step['exp_state'], 0)\n", + " print(f\"The best action: {step['action']}\")\n", + " prediction = match_set.prediction_array\n", + " print(f\"{prediction.index(max(prediction))} {prediction}\")\n", + " print()" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The best action: 0\n", + "Cond:1001 - Act:0 - Num:1 [fit: 1.000, exp: 5747.00, pred: 189.447, Error:62.900812807082936]\n", + "Cond:1001 - Act:1 - Num:24 [fit: 1.000, exp: 30598.00, pred: 1280.314, Error:1.145587242960733e-12]\n", + "Cond:1001 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:1001 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "The best action: 1\n", + "Cond:1010 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:1010 - Act:1 - Num:24 [fit: 1.000, exp: 6967.00, pred: 1022.223, Error:4.560794602049363e-13]\n", + "Cond:1010 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:1010 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "The best action: 1\n", + "Cond:1100 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:1100 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:1100 - Act:2 - Num:25 [fit: 1.000, exp: 12982.00, pred: 885.215, Error:5.685935895621327e-13]\n", + "Cond:1100 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "The best action: 2\n", + "Cond:0101 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:0101 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:0101 - Act:2 - Num:25 [fit: 1.000, exp: 6005.00, pred: 853.061, Error:4.547645146517495e-13]\n", + "Cond:0101 - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "The best action: 2\n", + "Cond:0110 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:0110 - Act:1 - Num:1 [fit: 1.000, exp: 90.00, pred: 504.450, Error:0.21057623942027062]\n", + "Cond:0110 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:0110 - Act:3 - Num:25 [fit: 1.000, exp: 2037.00, pred: 921.953, Error:4.547488415483494e-13]\n", + "The best action: 3\n", + "Cond:0010 - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:0010 - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:0010 - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:1e-06]\n", + "Cond:0010 - Act:3 - Num:25 [fit: 1.000, exp: 670.00, pred: 1100.051, Error:1.1368684684463848e-12]\n" + ] + } + ], + "source": [ + "for step in moves:\n", + " match_set = population.generate_match_set(step['exp_state'], 0)\n", + " print(f\"The best action: {step['action']}\")\n", + " for cl in sorted(match_set, key=lambda cl: cl.action)[0:10]:\n", + " print(cl)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XCS_woods.ipynb b/XCS_Experiments/XCS_woods.ipynb new file mode 100644 index 0000000..b558091 --- /dev/null +++ b/XCS_Experiments/XCS_woods.ipynb @@ -0,0 +1,937 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like:\n", + "\n", + "['O', '.', '.', '.', '.', '.', '.', 'O']\n", + "\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[36mX\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n" + ] + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_woods\n", + "\n", + "maze = gym.make('Woods1-v0')\n", + "print(\"This is how maze looks like:\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents import EnvironmentAdapter\n", + "class adapter(EnvironmentAdapter):\n", + " def to_genotype(cls, phenotype): \n", + " return [\"1\" if x=='.' else x for x in phenotype]\n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS, Configuration\n", + "from utils.nxcs_utils import *\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['O', '1', '1', '1', '1', '1', '1', 'O']\n" + ] + } + ], + "source": [ + "ada = adapter()\n", + "print(ada.to_genotype(situation))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "cfg = Configuration(number_of_actions=8,\n", + " max_population=1800,\n", + " learning_rate=0.2,\n", + " mutation_chance=0.08,\n", + " chi=0.8,\n", + " ga_threshold=25,\n", + " deletion_threshold=25,\n", + " delta=0.1,\n", + " initial_error=0.01,\n", + " metrics_trial_frequency=50,\n", + " covering_wildcard_chance = 0.9,\n", + " user_metrics_collector_fcn=xcs_maze_metrics,\n", + "\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 30, 'reward': 1000.0, 'perf_time': 0.016425999999999163, 'numerosity': 97, 'population': 97, 'average_specificity': 1.9381443298969072, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 41, 'reward': 1000.0014729710549, 'perf_time': 0.2196277000000002, 'numerosity': 1800, 'population': 520, 'average_specificity': 4.366666666666666, 'fraction_accuracy': 2.4000124223680607e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 13, 'reward': 1011.685958540322, 'perf_time': 0.09741280000000074, 'numerosity': 1800, 'population': 612, 'average_specificity': 4.749444444444444, 'fraction_accuracy': 3.629848402362404e-15}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 46, 'reward': 1000.000143949667, 'perf_time': 0.42157530000000065, 'numerosity': 1800, 'population': 674, 'average_specificity': 4.987777777777778, 'fraction_accuracy': 2.801088873368434e-16}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 2, 'reward': 1636.7205566203402, 'perf_time': 0.013088100000000935, 'numerosity': 1800, 'population': 692, 'average_specificity': 5.42, 'fraction_accuracy': 2.722084872433967e-16}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 4, 'reward': 1479.3033470374432, 'perf_time': 0.01846919999999841, 'numerosity': 1800, 'population': 698, 'average_specificity': 4.923333333333333, 'fraction_accuracy': 2.4174521215758003e-18}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 2, 'reward': 1672.8653645356364, 'perf_time': 0.032798999999997136, 'numerosity': 1800, 'population': 691, 'average_specificity': 4.716666666666667, 'fraction_accuracy': 5.207155858665223e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 3, 'reward': 1552.4485844378219, 'perf_time': 0.009335000000000093, 'numerosity': 1800, 'population': 648, 'average_specificity': 4.810555555555555, 'fraction_accuracy': 5.097075244004837e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 1, 'reward': 1964.1192425229885, 'perf_time': 0.00767420000000385, 'numerosity': 1800, 'population': 673, 'average_specificity': 4.595555555555555, 'fraction_accuracy': 3.1243348872291638e-18}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 1, 'reward': 1901.148030262215, 'perf_time': 0.003277500000002931, 'numerosity': 1800, 'population': 650, 'average_specificity': 4.591111111111111, 'fraction_accuracy': 3.1777843478879033e-18}\n" + ] + } + ], + "source": [ + "agent = XCS(cfg)\n", + "explore_population, explore_metrics = agent.explore(maze, 1000, True)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cond:.OOO.... - Act:1 - Num:6 [fit: 0.001, exp: 24.00, pred: 818.172, Error:270.63331843209056]\n", + "Cond:.#...OF. - Act:1 - Num:2 [fit: 0.033, exp: 6.00, pred: 840.921, Error:90.16031611667614]\n", + "Cond:.....O#. - Act:2 - Num:1 [fit: 0.000, exp: 35.00, pred: 870.631, Error:249.3473898290552]\n", + "Cond:.....OF# - Act:3 - Num:4 [fit: 0.000, exp: 46.00, pred: 1624.522, Error:339.5095767425465]\n", + "Cond:.....OF. - Act:7 - Num:4 [fit: 0.013, exp: 10.00, pred: 875.535, Error:262.8004001575878]\n", + "Cond:....FO.. - Act:0 - Num:1 [fit: 0.011, exp: 1.00, pred: 654.482, Error:0.0]\n", + "Cond:#...#O.. - Act:1 - Num:2 [fit: 0.000, exp: 25.00, pred: 794.709, Error:264.277408649657]\n", + "Cond:#...F#.. - Act:2 - Num:10 [fit: 0.001, exp: 22.00, pred: 837.888, Error:115.8448684994715]\n", + "Cond:....#O.. - Act:5 - Num:10 [fit: 0.005, exp: 14.00, pred: 720.038, Error:159.5325820151578]\n", + "Cond:#.#.FO.# - Act:7 - Num:7 [fit: 0.002, exp: 19.00, pred: 797.565, Error:85.98819479367896]\n", + "Cond:#....F.. - Act:0 - Num:3 [fit: 0.080, exp: 2.00, pred: 652.288, Error:326.14396895621655]\n", + "Cond:.....F.. - Act:3 - Num:4 [fit: 0.000, exp: 27.00, pred: 917.924, Error:172.75929004369047]\n", + "Cond:O......O - Act:0 - Num:5 [fit: 0.012, exp: 14.00, pred: 831.361, Error:270.7613845474693]\n", + "Cond:O..#.#.O - Act:6 - Num:3 [fit: 0.051, exp: 4.00, pred: 721.919, Error:258.54325952438876]\n", + "Cond:O..##..O - Act:7 - Num:4 [fit: 0.001, exp: 25.00, pred: 843.243, Error:213.27675023014655]\n", + "Cond:.......O - Act:1 - Num:3 [fit: 0.000, exp: 25.00, pred: 812.521, Error:228.15193862697137]\n", + "Cond:...#...O - Act:6 - Num:2 [fit: 0.000, exp: 46.00, pred: 1100.813, Error:278.6922038993029]\n", + "Cond:OO..#..O - Act:0 - Num:5 [fit: 0.012, exp: 13.00, pred: 799.592, Error:134.93671693405923]\n", + "Cond:OO.....O - Act:1 - Num:4 [fit: 0.001, exp: 16.00, pred: 878.434, Error:231.69477418437663]\n", + "Cond:OO....#O - Act:6 - Num:7 [fit: 0.041, exp: 5.00, pred: 780.378, Error:293.8642390015473]\n", + "Cond:OO.....O - Act:7 - Num:4 [fit: 0.115, exp: 4.00, pred: 453.540, Error:257.51356873206436]\n", + "Cond:...#OO.. - Act:0 - Num:1 [fit: 0.073, exp: 2.00, pred: 817.945, Error:2.669712307774148]\n", + "Cond:#..FOO.# - Act:1 - Num:1 [fit: 0.000, exp: 45.00, pred: 808.079, Error:251.90802327290345]\n", + "Cond:...FOO#. - Act:5 - Num:6 [fit: 0.005, exp: 14.00, pred: 798.575, Error:162.99655231911527]\n", + "Cond:...#OO#. - Act:7 - Num:4 [fit: 0.009, exp: 12.00, pred: 843.064, Error:240.6169174450742]\n", + "Cond:OO...... - Act:6 - Num:2 [fit: 0.001, exp: 23.00, pred: 799.655, Error:242.48729607963907]\n", + "Cond:OO...... - Act:7 - Num:3 [fit: 0.007, exp: 15.00, pred: 1089.220, Error:269.2946403336793]\n", + "Cond:.OO..... - Act:1 - Num:2 [fit: 0.017, exp: 9.00, pred: 792.853, Error:126.26799630594708]\n", + "Cond:......OO - Act:5 - Num:3 [fit: 0.041, exp: 5.00, pred: 646.358, Error:183.4186264049896]\n", + "Cond:.....OOF - Act:0 - Num:5 [fit: 0.003, exp: 17.00, pred: 1326.980, Error:359.1679042132547]\n", + "Cond:....#OOF - Act:1 - Num:3 [fit: 0.001, exp: 20.00, pred: 852.487, Error:361.1730110803099]\n", + "Cond:.....OOF - Act:2 - Num:2 [fit: 0.009, exp: 12.00, pred: 908.855, Error:208.86877258724766]\n", + "Cond:...##OOF - Act:3 - Num:1 [fit: 0.000, exp: 22.00, pred: 873.829, Error:224.31434500029263]\n", + "Cond:.....OOF - Act:6 - Num:6 [fit: 0.067, exp: 7.00, pred: 826.461, Error:99.81965255540715]\n", + "Cond:.OOO..O. - Act:6 - Num:2 [fit: 0.010, exp: 1.00, pred: 1572.011, Error:0.0]\n", + "Cond:#..#.... - Act:1 - Num:1 [fit: 0.000, exp: 43.00, pred: 1241.952, Error:397.295352305611]\n", + "Cond:.OO.#.#. - Act:1 - Num:2 [fit: 0.017, exp: 9.00, pred: 792.853, Error:126.26799630594708]\n", + "Cond:..OO...# - Act:1 - Num:2 [fit: 0.064, exp: 3.00, pred: 850.399, Error:85.73598811162655]\n", + "Cond:.OOO.#.. - Act:1 - Num:2 [fit: 0.000, exp: 24.00, pred: 818.172, Error:270.63331843209056]\n", + "Cond:.#..#... - Act:3 - Num:1 [fit: 0.000, exp: 31.00, pred: 733.627, Error:136.10141926415218]\n", + "Cond:.#...... - Act:3 - Num:2 [fit: 0.000, exp: 31.00, pred: 733.627, Error:136.10141926415218]\n", + "Cond:........ - Act:7 - Num:1 [fit: 0.000, exp: 6.00, pred: 1226.548, Error:59.40708246808876]\n", + "Cond:O#...... - Act:7 - Num:2 [fit: 0.007, exp: 15.00, pred: 1089.220, Error:269.2946403336793]\n", + "Cond:.OO.##.# - Act:1 - Num:1 [fit: 0.002, exp: 9.00, pred: 792.853, Error:103.08830571512246]\n", + "Cond:.#O..... - Act:1 - Num:2 [fit: 0.002, exp: 9.00, pred: 792.853, Error:97.98409254440836]\n", + "Cond:.OO..... - Act:0 - Num:5 [fit: 0.000, exp: 22.00, pred: 1322.536, Error:426.79526777378317]\n", + "Cond:.......O - Act:7 - Num:1 [fit: 0.000, exp: 28.00, pred: 776.745, Error:219.35450459756413]\n", + "Cond:........ - Act:5 - Num:2 [fit: 0.003, exp: 2.00, pred: 1207.222, Error:14.59880844754178]\n", + "Cond:.....O#F - Act:2 - Num:3 [fit: 0.009, exp: 12.00, pred: 908.855, Error:208.86877258724766]\n", + "Cond:.O.##F.. - Act:5 - Num:3 [fit: 0.002, exp: 8.00, pred: 1083.843, Error:27.36564199167589]\n", + "Cond:..#.##OF - Act:1 - Num:1 [fit: 0.000, exp: 20.00, pred: 852.487, Error:361.1730110803099]\n", + "Cond:...#.OOF - Act:2 - Num:4 [fit: 0.009, exp: 12.00, pred: 908.855, Error:208.86877258724766]\n", + "Cond:.##..OF# - Act:7 - Num:2 [fit: 0.001, exp: 14.00, pred: 903.830, Error:224.9547462386263]\n", + "Cond:..#.#..O - Act:7 - Num:2 [fit: 0.001, exp: 27.00, pred: 776.456, Error:220.406391601963]\n", + "Cond:...#...O - Act:7 - Num:3 [fit: 0.001, exp: 27.00, pred: 776.456, Error:220.406391601963]\n", + "Cond:.OO....F - Act:7 - Num:2 [fit: 0.001, exp: 12.00, pred: 1162.888, Error:63.36159428085364]\n", + "Cond:#...O.#. - Act:0 - Num:1 [fit: 0.002, exp: 2.00, pred: 1065.211, Error:34.08996207594636]\n", + "Cond:.#..#OOF - Act:1 - Num:3 [fit: 0.000, exp: 20.00, pred: 852.487, Error:359.04535325981897]\n", + "Cond:OO.#.##. - Act:6 - Num:1 [fit: 0.001, exp: 23.00, pred: 799.655, Error:242.48729607963907]\n", + "Cond:OO.#.... - Act:6 - Num:3 [fit: 0.001, exp: 23.00, pred: 799.655, Error:242.48729607963907]\n", + "Cond:O....#.O - Act:0 - Num:1 [fit: 0.000, exp: 13.00, pred: 896.719, Error:273.00336053656684]\n", + "Cond:OO.#...# - Act:7 - Num:2 [fit: 0.000, exp: 17.00, pred: 1088.273, Error:217.8172902899307]\n", + "Cond:....FO.. - Act:2 - Num:1 [fit: 0.000, exp: 28.00, pred: 844.374, Error:122.97714219765678]\n", + "Cond:.#..O... - Act:3 - Num:2 [fit: 0.002, exp: 7.00, pred: 1156.827, Error:65.73319318680305]\n", + "Cond:O..FOO.# - Act:1 - Num:4 [fit: 0.005, exp: 9.00, pred: 1187.521, Error:77.94648628485494]\n", + "Cond:..OO.O.. - Act:6 - Num:7 [fit: 0.004, exp: 5.00, pred: 1053.598, Error:25.533067239542977]\n", + "Cond:...O.F.# - Act:6 - Num:2 [fit: 0.000, exp: 7.00, pred: 1196.499, Error:49.82740440999355]\n", + "Cond:.OO.#..F - Act:7 - Num:3 [fit: 0.000, exp: 21.00, pred: 967.055, Error:34.88065167079016]\n", + "Cond:..OO.#.. - Act:5 - Num:3 [fit: 0.000, exp: 26.00, pred: 902.812, Error:157.20732341097397]\n", + "Cond:.OO..... - Act:2 - Num:1 [fit: 0.000, exp: 24.00, pred: 820.481, Error:138.70276697501095]\n", + "Cond:.#..#O.. - Act:5 - Num:2 [fit: 0.001, exp: 14.00, pred: 720.038, Error:150.39142825090155]\n", + "Cond:#..##OOF - Act:3 - Num:1 [fit: 0.000, exp: 22.00, pred: 874.098, Error:224.2815339369546]\n", + "Cond:#....... - Act:1 - Num:4 [fit: 0.001, exp: 7.00, pred: 1042.922, Error:28.877996274096876]\n", + "Cond:..OO##.. - Act:5 - Num:1 [fit: 0.000, exp: 26.00, pred: 902.812, Error:154.18002250023397]\n", + "Cond:OO#.#... - Act:7 - Num:1 [fit: 0.001, exp: 15.00, pred: 1089.220, Error:238.58781323934178]\n", + "Cond:...##O#F - Act:3 - Num:1 [fit: 0.000, exp: 22.00, pred: 873.829, Error:222.93323654935176]\n", + "Cond:O.#....O - Act:0 - Num:4 [fit: 0.012, exp: 14.00, pred: 831.361, Error:270.7613845474693]\n", + "Cond:O.....#O - Act:0 - Num:2 [fit: 0.012, exp: 14.00, pred: 831.361, Error:270.7613845474693]\n", + "Cond:..#....O - Act:0 - Num:1 [fit: 0.000, exp: 45.00, pred: 831.168, Error:135.39653286148533]\n", + "Cond:....#..O - Act:7 - Num:3 [fit: 0.001, exp: 27.00, pred: 776.456, Error:220.406391601963]\n", + "Cond:O.#..... - Act:3 - Num:3 [fit: 0.001, exp: 10.00, pred: 1234.280, Error:61.475881052493015]\n", + "Cond:.OO..#.. - Act:1 - Num:1 [fit: 0.002, exp: 9.00, pred: 792.853, Error:89.79305038764355]\n", + "Cond:#OO.#.#. - Act:1 - Num:1 [fit: 0.002, exp: 9.00, pred: 792.853, Error:89.79305038764355]\n", + "Cond:..O#O..# - Act:5 - Num:2 [fit: 0.027, exp: 5.00, pred: 1126.094, Error:141.90971049344233]\n", + "Cond:#.#FOOO. - Act:3 - Num:1 [fit: 0.000, exp: 18.00, pred: 1398.511, Error:64.51031334160476]\n", + "Cond:#.#.##OF - Act:1 - Num:5 [fit: 0.001, exp: 20.00, pred: 852.487, Error:361.1730110803099]\n", + "Cond:#....OOF - Act:0 - Num:2 [fit: 0.000, exp: 17.00, pred: 1326.980, Error:359.1679042132547]\n", + "Cond:...##OO# - Act:3 - Num:2 [fit: 0.000, exp: 22.00, pred: 873.829, Error:209.8536748167675]\n", + "Cond:#....##F - Act:0 - Num:1 [fit: 0.000, exp: 17.00, pred: 1326.980, Error:354.5882409410898]\n", + "Cond:##.#.O.. - Act:1 - Num:1 [fit: 0.032, exp: 3.00, pred: 1283.141, Error:249.1051121888766]\n", + "Cond:.#...OOF - Act:0 - Num:2 [fit: 0.000, exp: 17.00, pred: 1326.980, Error:350.8258970185674]\n", + "Cond:#.#.#.OF - Act:1 - Num:4 [fit: 0.003, exp: 7.00, pred: 1148.008, Error:42.611445999298574]\n", + "Cond:#.#.###F - Act:1 - Num:2 [fit: 0.000, exp: 20.00, pred: 852.487, Error:354.14524402742325]\n", + "Cond:....#O.O - Act:5 - Num:2 [fit: 0.003, exp: 3.00, pred: 1764.939, Error:60.76424395907791]\n", + "Cond:.#O.#... - Act:2 - Num:2 [fit: 0.000, exp: 21.00, pred: 812.036, Error:89.53712232271691]\n", + "Cond:.....OO# - Act:2 - Num:1 [fit: 0.001, exp: 12.00, pred: 908.855, Error:194.05498957211563]\n", + "Cond:#..O#OOF - Act:2 - Num:1 [fit: 0.004, exp: 5.00, pred: 881.662, Error:23.545873983910944]\n", + "Cond:.....OOF - Act:3 - Num:2 [fit: 0.000, exp: 22.00, pred: 867.812, Error:194.5410776235181]\n", + "Cond:..##.#.O - Act:1 - Num:1 [fit: 0.000, exp: 25.00, pred: 813.013, Error:229.1571019626362]\n", + "Cond:..#..OOF - Act:6 - Num:4 [fit: 0.007, exp: 7.00, pred: 826.461, Error:83.02404046628541]\n", + "Cond:.....#OF - Act:6 - Num:5 [fit: 0.007, exp: 7.00, pred: 826.461, Error:83.02404046628541]\n", + "Cond:#OOO...# - Act:1 - Num:4 [fit: 0.000, exp: 24.00, pred: 818.172, Error:269.8971236711451]\n", + "Cond:.OOO##.. - Act:2 - Num:2 [fit: 0.000, exp: 26.00, pred: 834.702, Error:153.65873685671812]\n", + "Cond:.OOO.... - Act:2 - Num:1 [fit: 0.000, exp: 26.00, pred: 834.702, Error:153.65873685671812]\n", + "Cond:..OO.... - Act:3 - Num:7 [fit: 0.002, exp: 17.00, pred: 908.525, Error:197.39389502113053]\n", + "Cond:.#...F#. - Act:1 - Num:3 [fit: 0.002, exp: 17.00, pred: 889.413, Error:260.8099653777782]\n", + "Cond:#....F#. - Act:1 - Num:3 [fit: 0.001, exp: 17.00, pred: 889.413, Error:260.8099653777782]\n", + "Cond:#O.....O - Act:6 - Num:1 [fit: 0.000, exp: 24.00, pred: 1096.618, Error:283.7640046722766]\n", + "Cond:.....O.O - Act:5 - Num:3 [fit: 0.004, exp: 4.00, pred: 1293.984, Error:47.309729858205635]\n", + "Cond:.#...OOF - Act:2 - Num:5 [fit: 0.000, exp: 17.00, pred: 925.806, Error:209.59944082016347]\n", + "Cond:...O.... - Act:7 - Num:5 [fit: 0.026, exp: 7.00, pred: 886.714, Error:338.7473087991509]\n", + "Cond:.....OOF - Act:1 - Num:1 [fit: 0.001, exp: 20.00, pred: 852.487, Error:361.1730110803099]\n", + "Cond:#..O.F.. - Act:6 - Num:1 [fit: 0.000, exp: 13.00, pred: 1007.008, Error:44.76904384512106]\n", + "Cond:O#.....O - Act:0 - Num:1 [fit: 0.000, exp: 27.00, pred: 791.171, Error:145.1624924611465]\n", + "Cond:#....O.. - Act:1 - Num:2 [fit: 0.003, exp: 4.00, pred: 1233.048, Error:56.09972634917226]\n", + "Cond:OO.#.#.. - Act:6 - Num:4 [fit: 0.000, exp: 23.00, pred: 799.655, Error:236.52920493798385]\n", + "Cond:OO....## - Act:6 - Num:1 [fit: 0.000, exp: 27.00, pred: 751.844, Error:220.96272709339522]\n", + "Cond:.#.#.F#. - Act:1 - Num:5 [fit: 0.002, exp: 17.00, pred: 889.413, Error:260.8099653777782]\n", + "Cond:..O#..## - Act:1 - Num:1 [fit: 0.006, exp: 3.00, pred: 850.399, Error:85.73598811162655]\n", + "Cond:..O#...# - Act:1 - Num:2 [fit: 0.006, exp: 3.00, pred: 850.399, Error:85.73598811162655]\n", + "Cond:..OO##.F - Act:5 - Num:2 [fit: 0.000, exp: 19.00, pred: 906.009, Error:52.47957854029005]\n", + "Cond:O..#O... - Act:0 - Num:2 [fit: 0.000, exp: 25.00, pred: 963.093, Error:47.205350623438704]\n", + "Cond:..OOO..# - Act:5 - Num:3 [fit: 0.000, exp: 15.00, pred: 991.488, Error:55.69841324365485]\n", + "Cond:..#.#O.. - Act:1 - Num:1 [fit: 0.000, exp: 25.00, pred: 794.709, Error:261.55469904489485]\n", + "Cond:....F### - Act:2 - Num:3 [fit: 0.000, exp: 24.00, pred: 838.783, Error:114.06043725257807]\n", + "Cond:.#.#OO.. - Act:0 - Num:1 [fit: 0.045, exp: 2.00, pred: 817.945, Error:2.669712307774148]\n", + "Cond:.O.#.F#. - Act:1 - Num:2 [fit: 0.001, exp: 10.00, pred: 902.408, Error:35.894045752761436]\n", + "Cond:.#.#.F.. - Act:1 - Num:1 [fit: 0.000, exp: 17.00, pred: 889.413, Error:238.22738442622966]\n", + "Cond:..OO.### - Act:5 - Num:2 [fit: 0.000, exp: 26.00, pred: 902.812, Error:99.7075872963982]\n", + "Cond:O#.#..#. - Act:6 - Num:1 [fit: 0.001, exp: 23.00, pred: 799.655, Error:242.48729607963907]\n", + "Cond:.#.....O - Act:1 - Num:2 [fit: 0.000, exp: 25.00, pred: 812.686, Error:228.31958917734016]\n", + "Cond:#...F#.# - Act:2 - Num:2 [fit: 0.000, exp: 22.00, pred: 838.363, Error:112.95128561728556]\n", + "Cond:....FO#. - Act:1 - Num:2 [fit: 0.000, exp: 21.00, pred: 792.212, Error:257.81731382402313]\n", + "Cond:...O...# - Act:7 - Num:2 [fit: 0.003, exp: 7.00, pred: 886.714, Error:338.7473087991509]\n", + "Cond:O..#...O - Act:0 - Num:1 [fit: 0.001, exp: 14.00, pred: 831.361, Error:231.93578649002575]\n", + "Cond:.#...O#. - Act:1 - Num:3 [fit: 0.033, exp: 6.00, pred: 840.921, Error:90.16031611667614]\n", + "Cond:##...OF# - Act:1 - Num:2 [fit: 0.033, exp: 6.00, pred: 840.921, Error:90.16031611667614]\n", + "Cond:...OO... - Act:2 - Num:6 [fit: 0.003, exp: 11.00, pred: 913.286, Error:227.7648993144003]\n", + "Cond:..OO.... - Act:2 - Num:3 [fit: 0.090, exp: 2.00, pred: 853.644, Error:5.492122843734194]\n", + "Cond:#O#.#OOF - Act:3 - Num:1 [fit: 0.001, exp: 11.00, pred: 1109.165, Error:225.32977702379327]\n", + "Cond:OO##..#. - Act:6 - Num:3 [fit: 0.000, exp: 23.00, pred: 799.655, Error:234.8195603403938]\n", + "Cond:O......O - Act:4 - Num:8 [fit: 0.001, exp: 19.00, pred: 889.640, Error:285.8995089056546]\n", + "Cond:.O.#O... - Act:7 - Num:1 [fit: 0.000, exp: 17.00, pred: 1063.196, Error:52.323626805959535]\n", + "Cond:.O...#.. - Act:3 - Num:1 [fit: 0.000, exp: 27.00, pred: 760.197, Error:141.36911292162728]\n", + "Cond:.OO#.... - Act:1 - Num:1 [fit: 0.000, exp: 28.00, pred: 768.323, Error:203.4121665792198]\n", + "Cond:O..#OO.# - Act:1 - Num:2 [fit: 0.001, exp: 17.00, pred: 992.785, Error:48.8951231426374]\n", + "Cond:.##...#F - Act:0 - Num:3 [fit: 0.001, exp: 16.00, pred: 985.345, Error:54.57084722413062]\n", + "Cond:.##.##O. - Act:3 - Num:1 [fit: 0.000, exp: 12.00, pred: 1113.647, Error:56.868962714552254]\n", + "Cond:O..#.##O - Act:6 - Num:1 [fit: 0.005, exp: 4.00, pred: 721.919, Error:169.3510178483445]\n", + "Cond:..#....O - Act:1 - Num:1 [fit: 0.000, exp: 29.00, pred: 813.073, Error:228.90390880444343]\n", + "Cond:#....O#F - Act:3 - Num:1 [fit: 0.000, exp: 22.00, pred: 873.591, Error:149.76309860890794]\n", + "Cond:.####OOF - Act:3 - Num:2 [fit: 0.000, exp: 17.00, pred: 873.591, Error:149.76309860890794]\n", + "Cond:#.###O.O - Act:1 - Num:4 [fit: 0.000, exp: 20.00, pred: 969.406, Error:45.9846029176032]\n", + "Cond:#...FO.. - Act:3 - Num:6 [fit: 0.001, exp: 19.00, pred: 816.242, Error:175.09753205971566]\n", + "Cond:...#.#OF - Act:1 - Num:3 [fit: 0.005, exp: 15.00, pred: 853.941, Error:355.26164847477537]\n", + "Cond:...F#O.. - Act:7 - Num:4 [fit: 0.000, exp: 19.00, pred: 895.082, Error:248.2693928541624]\n", + "Cond:OO#..... - Act:6 - Num:2 [fit: 0.000, exp: 23.00, pred: 799.655, Error:231.1137727120809]\n", + "Cond:OO....#O - Act:0 - Num:1 [fit: 0.000, exp: 18.00, pred: 800.543, Error:135.03555405941287]\n", + "Cond:OO..#..O - Act:1 - Num:4 [fit: 0.001, exp: 15.00, pred: 890.468, Error:243.94652948341727]\n", + "Cond:...#.O#F - Act:0 - Num:2 [fit: 0.000, exp: 15.00, pred: 1320.795, Error:324.32691677338505]\n", + "Cond:..OO##.# - Act:5 - Num:2 [fit: 0.000, exp: 26.00, pred: 903.402, Error:92.45439286836243]\n", + "Cond:.....O#F - Act:0 - Num:6 [fit: 0.003, exp: 17.00, pred: 1326.980, Error:359.1679042132547]\n", + "Cond:..#.#..# - Act:7 - Num:2 [fit: 0.000, exp: 27.00, pred: 776.456, Error:215.84206849853751]\n", + "Cond:.OOO.#.. - Act:2 - Num:4 [fit: 0.000, exp: 25.00, pred: 847.320, Error:129.91404389393568]\n", + "Cond:#.OOO... - Act:5 - Num:4 [fit: 0.001, exp: 19.00, pred: 949.812, Error:207.7958128260665]\n", + "Cond:#...#O#. - Act:1 - Num:2 [fit: 0.000, exp: 26.00, pred: 788.466, Error:216.41680212935853]\n", + "Cond:.#O...#O - Act:1 - Num:1 [fit: 0.000, exp: 13.00, pred: 935.565, Error:29.549511481378563]\n", + "Cond:.##...OF - Act:0 - Num:1 [fit: 0.000, exp: 20.00, pred: 1023.047, Error:37.376027533136536]\n", + "Cond:...OO... - Act:3 - Num:1 [fit: 0.090, exp: 2.00, pred: 693.712, Error:4.725221478619574]\n", + "Cond:OO.####. - Act:6 - Num:2 [fit: 0.001, exp: 23.00, pred: 799.655, Error:242.48729607963907]\n", + "Cond:..#..O#F - Act:2 - Num:2 [fit: 0.001, exp: 12.00, pred: 908.855, Error:140.4726225223268]\n", + "Cond:...#.O#F - Act:2 - Num:2 [fit: 0.001, exp: 12.00, pred: 908.855, Error:140.4726225223268]\n", + "Cond:.....#OO - Act:5 - Num:2 [fit: 0.004, exp: 5.00, pred: 646.358, Error:57.85196307715155]\n", + "Cond:....#.OO - Act:5 - Num:2 [fit: 0.004, exp: 5.00, pred: 646.358, Error:57.85196307715155]\n", + "Cond:.....##F - Act:0 - Num:4 [fit: 0.000, exp: 17.00, pred: 1326.980, Error:321.6690972645988]\n", + "Cond:..#..O#F - Act:0 - Num:3 [fit: 0.000, exp: 17.00, pred: 1326.980, Error:321.6690972645988]\n", + "Cond:##..F#.# - Act:2 - Num:1 [fit: 0.000, exp: 22.00, pred: 837.888, Error:112.50416832529147]\n", + "Cond:##.FOO.O - Act:1 - Num:1 [fit: 0.000, exp: 22.00, pred: 975.929, Error:36.579859768933794]\n", + "Cond:.O.#.##O - Act:7 - Num:2 [fit: 0.000, exp: 21.00, pred: 1254.883, Error:79.08032371381663]\n", + "Cond:OO.O.... - Act:4 - Num:4 [fit: 0.002, exp: 8.00, pred: 910.237, Error:91.1127297272264]\n", + "Cond:OO..#..# - Act:0 - Num:2 [fit: 0.001, exp: 13.00, pred: 799.592, Error:134.54555921954358]\n", + "Cond:OO.....# - Act:7 - Num:3 [fit: 0.074, exp: 6.00, pred: 802.342, Error:411.2636133475885]\n", + "Cond:O..##.#O - Act:7 - Num:1 [fit: 0.000, exp: 25.00, pred: 843.865, Error:209.8055616546284]\n", + "Cond:O#..#.OO - Act:1 - Num:1 [fit: 0.000, exp: 10.00, pred: 924.586, Error:43.32209116442323]\n", + "Cond:.....O#F - Act:5 - Num:6 [fit: 0.000, exp: 28.00, pred: 838.368, Error:145.55158688703574]\n", + "Cond:#....#F. - Act:1 - Num:1 [fit: 0.000, exp: 24.00, pred: 1026.299, Error:76.21777173403449]\n", + "Cond:....#F#. - Act:2 - Num:5 [fit: 0.000, exp: 18.00, pred: 976.824, Error:188.83446195468622]\n", + "Cond:##..#O.. - Act:1 - Num:1 [fit: 0.000, exp: 16.00, pred: 789.285, Error:238.07036130905115]\n", + "Cond:O..#...O - Act:5 - Num:1 [fit: 0.000, exp: 39.00, pred: 1082.322, Error:233.1817470875938]\n", + "Cond:#..#FO#. - Act:1 - Num:1 [fit: 0.000, exp: 16.00, pred: 789.285, Error:236.63608154244864]\n", + "Cond:...#.F.. - Act:3 - Num:1 [fit: 0.000, exp: 27.00, pred: 917.924, Error:171.45335409551762]\n", + "Cond:.....F.# - Act:3 - Num:1 [fit: 0.000, exp: 27.00, pred: 917.924, Error:171.45335409551762]\n", + "Cond:...#.... - Act:4 - Num:2 [fit: 0.000, exp: 22.00, pred: 830.286, Error:132.53465312877915]\n", + "Cond:...#...# - Act:7 - Num:1 [fit: 0.000, exp: 33.00, pred: 748.953, Error:240.88730441115263]\n", + "Cond:.#...O#F - Act:5 - Num:1 [fit: 0.000, exp: 28.00, pred: 838.368, Error:139.44250282559173]\n", + "Cond:..#..O#F - Act:5 - Num:1 [fit: 0.000, exp: 28.00, pred: 838.368, Error:139.44250282559173]\n", + "Cond:###.F#.. - Act:2 - Num:3 [fit: 0.000, exp: 22.00, pred: 837.888, Error:103.41241153149636]\n", + "Cond:#O...#.O - Act:2 - Num:1 [fit: 0.000, exp: 44.00, pred: 1088.857, Error:166.96024436764287]\n", + "Cond:#...##OF - Act:1 - Num:1 [fit: 0.000, exp: 15.00, pred: 853.214, Error:329.4341718448116]\n", + "Cond:...#.OOF - Act:1 - Num:4 [fit: 0.000, exp: 20.00, pred: 853.214, Error:329.4341718448116]\n", + "Cond:OO....#O - Act:2 - Num:1 [fit: 0.000, exp: 44.00, pred: 1088.857, Error:166.96024436764287]\n", + "Cond:#....F## - Act:1 - Num:1 [fit: 0.000, exp: 17.00, pred: 889.413, Error:193.18758557468868]\n", + "Cond:OO..#... - Act:2 - Num:8 [fit: 0.000, exp: 21.00, pred: 880.302, Error:260.4853364671974]\n", + "Cond:...##F## - Act:2 - Num:2 [fit: 0.000, exp: 18.00, pred: 976.824, Error:175.0442012775198]\n", + "Cond:.O...... - Act:5 - Num:1 [fit: 0.005, exp: 5.00, pred: 1357.181, Error:334.6735520504819]\n", + "Cond:.....F.. - Act:4 - Num:1 [fit: 0.065, exp: 2.00, pred: 906.979, Error:0.9201912520277915]\n", + "Cond:#...FO## - Act:7 - Num:1 [fit: 0.000, exp: 19.00, pred: 797.565, Error:79.28729872683144]\n", + "Cond:OO.#..## - Act:0 - Num:4 [fit: 0.000, exp: 20.00, pred: 875.756, Error:270.18775689595043]\n", + "Cond:#O....## - Act:0 - Num:2 [fit: 0.000, exp: 25.00, pred: 841.445, Error:206.50289513727327]\n", + "Cond:.#.#.F#. - Act:4 - Num:2 [fit: 0.002, exp: 9.00, pred: 1021.972, Error:70.45063910726864]\n", + "Cond:..#..OF. - Act:1 - Num:1 [fit: 0.003, exp: 2.00, pred: 936.703, Error:86.6056821343505]\n", + "Cond:#O...OF# - Act:3 - Num:2 [fit: 0.000, exp: 24.00, pred: 1286.919, Error:52.20310522170469]\n", + "Cond:.OO#..#O - Act:0 - Num:1 [fit: 0.001, exp: 16.00, pred: 1097.562, Error:166.06781542951748]\n", + "Cond:....#..# - Act:7 - Num:1 [fit: 0.000, exp: 28.00, pred: 776.581, Error:210.99246364018597]\n", + "Cond:.O#....# - Act:1 - Num:1 [fit: 0.000, exp: 24.00, pred: 719.754, Error:185.45141878790614]\n", + "Cond:....#..O - Act:1 - Num:3 [fit: 0.000, exp: 25.00, pred: 812.521, Error:223.43161261262924]\n", + "Cond:.O#...## - Act:1 - Num:4 [fit: 0.000, exp: 24.00, pred: 719.754, Error:183.41449004013674]\n", + "Cond:..#.#OOF - Act:1 - Num:3 [fit: 0.000, exp: 20.00, pred: 852.487, Error:322.3260783141617]\n", + "Cond:##..F#.. - Act:2 - Num:5 [fit: 0.000, exp: 22.00, pred: 837.888, Error:101.05366233899903]\n", + "Cond:..#..O.# - Act:5 - Num:2 [fit: 0.004, exp: 12.00, pred: 1130.205, Error:254.84104279477714]\n", + "Cond:....#O#F - Act:1 - Num:4 [fit: 0.000, exp: 20.00, pred: 852.851, Error:313.402799270678]\n", + "Cond:#..#.F#. - Act:1 - Num:1 [fit: 0.000, exp: 17.00, pred: 889.413, Error:166.58319064742065]\n", + "Cond:##...F#. - Act:1 - Num:6 [fit: 0.000, exp: 17.00, pred: 889.413, Error:166.58319064742065]\n", + "Cond:.OO...#. - Act:0 - Num:9 [fit: 0.000, exp: 22.00, pred: 1322.536, Error:426.79526777378317]\n", + "Cond:##..FF.# - Act:2 - Num:1 [fit: 0.001, exp: 12.00, pred: 1110.014, Error:235.71265565286672]\n", + "Cond:.....F.# - Act:4 - Num:1 [fit: 0.065, exp: 2.00, pred: 906.979, Error:0.9201912520277915]\n", + "Cond:....#F.. - Act:4 - Num:1 [fit: 0.065, exp: 2.00, pred: 906.979, Error:0.9201912520277915]\n", + "Cond:...OO... - Act:7 - Num:4 [fit: 0.003, exp: 11.00, pred: 871.909, Error:380.53515501849284]\n", + "Cond:O.###..O - Act:7 - Num:2 [fit: 0.000, exp: 25.00, pred: 843.243, Error:208.13749385390014]\n", + "Cond:#...F#.. - Act:0 - Num:5 [fit: 0.001, exp: 14.00, pred: 989.822, Error:115.57721363880248]\n", + "Cond:O..#...O - Act:6 - Num:1 [fit: 0.005, exp: 4.00, pred: 721.919, Error:101.7765109485545]\n", + "Cond:O......O - Act:3 - Num:10 [fit: 0.000, exp: 26.00, pred: 1045.183, Error:163.1348510792824]\n", + "Cond:..#.FO.. - Act:3 - Num:2 [fit: 0.000, exp: 29.00, pred: 816.703, Error:174.82433827057156]\n", + "Cond:OO#.#..O - Act:0 - Num:4 [fit: 0.001, exp: 13.00, pred: 799.592, Error:133.40173117775734]\n", + "Cond:#..OO... - Act:2 - Num:4 [fit: 0.003, exp: 11.00, pred: 913.286, Error:227.7648993144003]\n", + "Cond:.O#.#... - Act:1 - Num:2 [fit: 0.000, exp: 25.00, pred: 728.567, Error:213.7553566978856]\n", + "Cond:O.#.#.#O - Act:7 - Num:2 [fit: 0.000, exp: 25.00, pred: 843.243, Error:206.64622409408258]\n", + "Cond:OO...#.O - Act:1 - Num:3 [fit: 0.000, exp: 14.00, pred: 865.293, Error:143.7215994985463]\n", + "Cond:#...##.. - Act:2 - Num:2 [fit: 0.000, exp: 28.00, pred: 870.132, Error:113.04207767023377]\n", + "Cond:..#.#O.. - Act:2 - Num:1 [fit: 0.000, exp: 23.00, pred: 836.646, Error:84.08632468564495]\n", + "Cond:##.OO... - Act:2 - Num:2 [fit: 0.000, exp: 11.00, pred: 913.286, Error:189.46587642598726]\n", + "Cond:O.#....O - Act:4 - Num:2 [fit: 0.000, exp: 35.00, pred: 891.752, Error:282.3278838561756]\n", + "Cond:.O...... - Act:2 - Num:3 [fit: 0.016, exp: 3.00, pred: 708.267, Error:44.35494320199363]\n", + "Cond:.O....## - Act:1 - Num:3 [fit: 0.000, exp: 20.00, pred: 765.083, Error:203.3117896853994]\n", + "Cond:...OO.#. - Act:2 - Num:4 [fit: 0.000, exp: 11.00, pred: 913.286, Error:137.0219763840618]\n", + "Cond:.####O#F - Act:3 - Num:1 [fit: 0.000, exp: 17.00, pred: 873.457, Error:99.4057450047306]\n", + "Cond:#...###F - Act:3 - Num:1 [fit: 0.000, exp: 22.00, pred: 873.457, Error:99.4057450047306]\n", + "Cond:...O..#. - Act:7 - Num:1 [fit: 0.000, exp: 19.00, pred: 898.179, Error:301.98489359141394]\n", + "Cond:...O.##. - Act:7 - Num:4 [fit: 0.000, exp: 29.00, pred: 877.443, Error:325.8098681585035]\n", + "Cond:.O.#.F#. - Act:3 - Num:5 [fit: 0.000, exp: 15.00, pred: 1025.720, Error:63.286023308903296]\n", + "Cond:OO..#.#O - Act:1 - Num:3 [fit: 0.000, exp: 15.00, pred: 884.451, Error:140.37900606885802]\n", + "Cond:OO.#...O - Act:1 - Num:5 [fit: 0.000, exp: 16.00, pred: 884.451, Error:140.37900606885802]\n", + "Cond:#...F##. - Act:3 - Num:3 [fit: 0.001, exp: 19.00, pred: 816.242, Error:175.09753205971566]\n", + "Cond:#O..#... - Act:2 - Num:6 [fit: 0.000, exp: 24.00, pred: 862.080, Error:229.71594261842944]\n", + "Cond:.##.FO#. - Act:1 - Num:1 [fit: 0.000, exp: 25.00, pred: 793.461, Error:219.7812663493749]\n", + "Cond:....#O.. - Act:1 - Num:2 [fit: 0.000, exp: 21.00, pred: 793.461, Error:219.7812663493749]\n", + "Cond:#...FF.. - Act:2 - Num:6 [fit: 0.000, exp: 15.00, pred: 970.845, Error:57.18558848880748]\n", + "Cond:..#..F.. - Act:4 - Num:1 [fit: 0.065, exp: 2.00, pred: 906.979, Error:0.9201912520277915]\n", + "Cond:.#...F.# - Act:4 - Num:1 [fit: 0.065, exp: 2.00, pred: 906.979, Error:0.9201912520277915]\n", + "Cond:.....F## - Act:3 - Num:1 [fit: 0.000, exp: 27.00, pred: 917.924, Error:170.9859489910823]\n", + "Cond:OO.##.#. - Act:2 - Num:7 [fit: 0.000, exp: 21.00, pred: 880.302, Error:260.4853364671974]\n", + "Cond:.#.FO..# - Act:6 - Num:4 [fit: 0.001, exp: 4.00, pred: 1142.442, Error:111.51968607383438]\n", + "Cond:..OO.##. - Act:5 - Num:1 [fit: 0.000, exp: 26.00, pred: 902.812, Error:85.72057422114494]\n", + "Cond:.#...OF# - Act:7 - Num:1 [fit: 0.001, exp: 10.00, pred: 875.535, Error:236.72258712457483]\n", + "Cond:O..###.O - Act:7 - Num:4 [fit: 0.000, exp: 25.00, pred: 844.808, Error:206.63589156546635]\n", + "Cond:....##.O - Act:2 - Num:4 [fit: 0.003, exp: 21.00, pred: 788.532, Error:173.8446690230955]\n", + "Cond:.#..#..O - Act:1 - Num:1 [fit: 0.000, exp: 25.00, pred: 808.526, Error:206.04171589271488]\n", + "Cond:O..#...O - Act:7 - Num:4 [fit: 0.000, exp: 24.00, pred: 847.841, Error:200.82803601001663]\n", + "Cond:O..##..O - Act:5 - Num:1 [fit: 0.000, exp: 39.00, pred: 1082.284, Error:233.08361623828517]\n", + "Cond:O...O..O - Act:5 - Num:2 [fit: 0.003, exp: 4.00, pred: 832.009, Error:25.420119502758677]\n", + "Cond:..##OO#. - Act:7 - Num:1 [fit: 0.001, exp: 12.00, pred: 843.064, Error:212.9665749199443]\n", + "Cond:....OO#. - Act:7 - Num:1 [fit: 0.006, exp: 3.00, pred: 626.902, Error:73.24839307236647]\n", + "Cond:O#.##.#. - Act:6 - Num:1 [fit: 0.000, exp: 23.00, pred: 799.655, Error:161.0196644264775]\n", + "Cond:O#.#.#.. - Act:6 - Num:4 [fit: 0.000, exp: 23.00, pred: 799.655, Error:161.0196644264775]\n", + "Cond:.O..#.## - Act:1 - Num:3 [fit: 0.000, exp: 20.00, pred: 777.888, Error:215.63357497557973]\n", + "Cond:.O#..... - Act:1 - Num:2 [fit: 0.000, exp: 25.00, pred: 720.371, Error:182.96800504444312]\n", + "Cond:....#OF. - Act:1 - Num:6 [fit: 0.000, exp: 15.00, pred: 1243.802, Error:149.26410838090987]\n", + "Cond:..##FO.# - Act:5 - Num:1 [fit: 0.002, exp: 7.00, pred: 850.287, Error:310.5583088675694]\n", + "Cond:OO.F#... - Act:3 - Num:2 [fit: 0.040, exp: 2.00, pred: 2033.855, Error:291.67095061515977]\n", + "Cond:...FOO## - Act:7 - Num:2 [fit: 0.001, exp: 11.00, pred: 902.295, Error:268.7391520323101]\n", + "Cond:..##.F.O - Act:7 - Num:4 [fit: 0.000, exp: 19.00, pred: 1201.368, Error:99.58750039017549]\n", + "Cond:#.#.FO## - Act:7 - Num:2 [fit: 0.000, exp: 19.00, pred: 797.565, Error:73.36261638208705]\n", + "Cond:......OO - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:.OO..... - Act:3 - Num:7 [fit: 0.000, exp: 21.00, pred: 1346.933, Error:137.02979443325717]\n", + "Cond:.#...OO. - Act:7 - Num:3 [fit: 0.000, exp: 15.00, pred: 1738.951, Error:87.9977608046385]\n", + "Cond:#OOO..#. - Act:1 - Num:3 [fit: 0.000, exp: 24.00, pred: 818.172, Error:260.2370971624401]\n", + "Cond:.OOO...# - Act:1 - Num:6 [fit: 0.000, exp: 24.00, pred: 818.172, Error:260.2370971624401]\n", + "Cond:O.....#O - Act:4 - Num:5 [fit: 0.000, exp: 18.00, pred: 1026.726, Error:421.06393846539834]\n", + "Cond:..OO..#. - Act:3 - Num:2 [fit: 0.000, exp: 17.00, pred: 908.525, Error:185.51209177173675]\n", + "Cond:..OO#... - Act:3 - Num:2 [fit: 0.000, exp: 16.00, pred: 912.051, Error:188.26310776988763]\n", + "Cond:..O#.... - Act:3 - Num:4 [fit: 0.000, exp: 16.00, pred: 915.225, Error:183.5826355964861]\n", + "Cond:.OOO.... - Act:7 - Num:4 [fit: 0.002, exp: 11.00, pred: 929.649, Error:289.4028255580876]\n", + "Cond:..OO##.. - Act:3 - Num:2 [fit: 0.000, exp: 15.00, pred: 921.084, Error:175.36557489675255]\n", + "Cond:..#..O.. - Act:2 - Num:4 [fit: 0.000, exp: 11.00, pred: 1065.907, Error:55.9257044209477]\n", + "Cond:.OOO#... - Act:1 - Num:5 [fit: 0.001, exp: 23.00, pred: 821.951, Error:279.36633215672225]\n", + "Cond:...#.#OO - Act:1 - Num:5 [fit: 0.000, exp: 20.00, pred: 1334.541, Error:539.4593933317574]\n", + "Cond:.#.#.OF. - Act:4 - Num:2 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:..OO.... - Act:4 - Num:11 [fit: 0.001, exp: 17.00, pred: 880.377, Error:200.80630381649732]\n", + "Cond:...#...O - Act:1 - Num:3 [fit: 0.000, exp: 25.00, pred: 812.521, Error:228.15193862697137]\n", + "Cond:.......# - Act:7 - Num:4 [fit: 0.000, exp: 12.00, pred: 797.777, Error:213.1952730485737]\n", + "Cond:OO.#O... - Act:3 - Num:2 [fit: 0.000, exp: 26.00, pred: 1633.852, Error:399.54902810177833]\n", + "Cond:..O#.... - Act:4 - Num:3 [fit: 0.000, exp: 25.00, pred: 882.504, Error:206.22843462343087]\n", + "Cond:.OO..#.. - Act:0 - Num:7 [fit: 0.000, exp: 22.00, pred: 1322.536, Error:426.79526777378317]\n", + "Cond:#OO..... - Act:0 - Num:4 [fit: 0.000, exp: 22.00, pred: 1322.536, Error:426.79526777378317]\n", + "Cond:##.FOO.. - Act:4 - Num:1 [fit: 0.000, exp: 35.00, pred: 803.605, Error:119.87129561566039]\n", + "Cond:#OO..#.. - Act:0 - Num:3 [fit: 0.000, exp: 22.00, pred: 1322.536, Error:373.95676542616235]\n", + "Cond:#.O..... - Act:6 - Num:3 [fit: 0.000, exp: 9.00, pred: 1388.167, Error:310.2075856340766]\n", + "Cond:.....OO. - Act:7 - Num:5 [fit: 0.001, exp: 5.00, pred: 1806.540, Error:88.74386518001083]\n", + "Cond:..O#.... - Act:2 - Num:4 [fit: 0.000, exp: 12.00, pred: 1426.763, Error:61.48144042886055]\n", + "Cond:...#OOF. - Act:6 - Num:5 [fit: 0.003, exp: 11.00, pred: 1551.459, Error:436.87285756594116]\n", + "Cond:#O..#... - Act:0 - Num:2 [fit: 0.000, exp: 15.00, pred: 1348.970, Error:68.02362002915262]\n", + "Cond:.O##...# - Act:0 - Num:1 [fit: 0.003, exp: 1.00, pred: 752.656, Error:0.0]\n", + "Cond:.OO....# - Act:0 - Num:7 [fit: 0.000, exp: 22.00, pred: 1322.536, Error:192.18083016486824]\n", + "Cond:.#.#.OO# - Act:1 - Num:4 [fit: 0.000, exp: 10.00, pred: 1130.893, Error:442.48574387106726]\n", + "Cond:...O.#.O - Act:3 - Num:8 [fit: 0.000, exp: 23.00, pred: 1851.396, Error:220.4669798280467]\n", + "Cond:...#.... - Act:3 - Num:3 [fit: 0.040, exp: 2.00, pred: 832.023, Error:37.6473959590254]\n", + "Cond:..#....# - Act:7 - Num:2 [fit: 0.000, exp: 26.00, pred: 794.805, Error:184.92155182141897]\n", + "Cond:..O..... - Act:6 - Num:8 [fit: 0.000, exp: 16.00, pred: 1622.352, Error:77.92632524580719]\n", + "Cond:..O##... - Act:2 - Num:7 [fit: 0.000, exp: 16.00, pred: 1622.352, Error:77.92632524580719]\n", + "Cond:.O..#.#. - Act:1 - Num:3 [fit: 0.000, exp: 22.00, pred: 791.964, Error:193.1445633166514]\n", + "Cond:...O..#. - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:.O...... - Act:7 - Num:3 [fit: 0.050, exp: 1.00, pred: 741.903, Error:0.0]\n", + "Cond:...O.#.. - Act:5 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:..##..#O - Act:7 - Num:2 [fit: 0.000, exp: 28.00, pred: 738.754, Error:147.55418204355655]\n", + "Cond:...##..O - Act:7 - Num:3 [fit: 0.000, exp: 26.00, pred: 799.282, Error:159.21532306097043]\n", + "Cond:OO#....O - Act:4 - Num:3 [fit: 0.020, exp: 1.00, pred: 709.694, Error:0.0]\n", + "Cond:..O#.O.. - Act:6 - Num:8 [fit: 0.000, exp: 19.00, pred: 1829.466, Error:75.32712233781564]\n", + "Cond:.OO....# - Act:7 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:OO.#.... - Act:7 - Num:4 [fit: 0.000, exp: 13.00, pred: 1654.994, Error:107.2244645524614]\n", + "Cond:....F#.. - Act:4 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:#.##FO.# - Act:7 - Num:4 [fit: 0.000, exp: 19.00, pred: 797.565, Error:72.65763471871648]\n", + "Cond:..##FO.. - Act:5 - Num:2 [fit: 0.000, exp: 13.00, pred: 834.296, Error:190.05423739084594]\n", + "Cond:.#..#O.# - Act:5 - Num:2 [fit: 0.000, exp: 6.00, pred: 792.596, Error:178.2798680575407]\n", + "Cond:#..#F##. - Act:1 - Num:2 [fit: 0.000, exp: 25.00, pred: 793.461, Error:205.27554982464366]\n", + "Cond:....#O#. - Act:1 - Num:2 [fit: 0.000, exp: 22.00, pred: 787.467, Error:169.01551325684352]\n", + "Cond:O.#....O - Act:3 - Num:5 [fit: 0.000, exp: 26.00, pred: 1045.183, Error:148.20909152677666]\n", + "Cond:.#...F.. - Act:0 - Num:2 [fit: 0.002, exp: 10.00, pred: 1134.128, Error:58.1231662105796]\n", + "Cond:....#F.. - Act:3 - Num:1 [fit: 0.000, exp: 27.00, pred: 917.924, Error:168.8328379983771]\n", + "Cond:.....#F# - Act:7 - Num:3 [fit: 0.001, exp: 10.00, pred: 875.535, Error:169.8801389469771]\n", + "Cond:..OO#... - Act:4 - Num:2 [fit: 0.000, exp: 17.00, pred: 880.377, Error:200.80630381649732]\n", + "Cond:..###O.# - Act:5 - Num:1 [fit: 0.000, exp: 18.00, pred: 788.752, Error:165.9516807890421]\n", + "Cond:OO#O...O - Act:5 - Num:3 [fit: 0.001, exp: 12.00, pred: 989.583, Error:41.99403525458993]\n", + "Cond:O#..#... - Act:2 - Num:8 [fit: 0.000, exp: 21.00, pred: 880.302, Error:236.9787464458394]\n", + "Cond:OO...#.. - Act:2 - Num:9 [fit: 0.000, exp: 21.00, pred: 880.302, Error:236.9787464458394]\n", + "Cond:#...F#F# - Act:3 - Num:2 [fit: 0.002, exp: 2.00, pred: 827.903, Error:9.989530588733132]\n", + "Cond:.#...F.# - Act:3 - Num:4 [fit: 0.000, exp: 27.00, pred: 917.924, Error:172.75929004369047]\n", + "Cond:.....#O. - Act:7 - Num:3 [fit: 0.000, exp: 13.00, pred: 1607.333, Error:108.39634289961674]\n", + "Cond:.###.#.O - Act:1 - Num:1 [fit: 0.000, exp: 25.00, pred: 810.769, Error:161.79206849963916]\n", + "Cond:..OO#.#. - Act:4 - Num:1 [fit: 0.000, exp: 17.00, pred: 880.377, Error:193.94944768547967]\n", + "Cond:.O..#... - Act:0 - Num:2 [fit: 0.000, exp: 18.00, pred: 1039.630, Error:69.49008728113515]\n", + "Cond:.#..#..O - Act:7 - Num:1 [fit: 0.000, exp: 26.00, pred: 806.509, Error:118.3045132354259]\n", + "Cond:O....#.O - Act:3 - Num:7 [fit: 0.000, exp: 26.00, pred: 1045.183, Error:144.89701240201538]\n", + "Cond:#.##F#.. - Act:2 - Num:8 [fit: 0.000, exp: 22.00, pred: 838.336, Error:59.986708189604165]\n", + "Cond:..#.#..O - Act:2 - Num:2 [fit: 0.000, exp: 21.00, pred: 788.532, Error:104.10060703145277]\n", + "Cond:.#.#.F#. - Act:0 - Num:5 [fit: 0.000, exp: 16.00, pred: 961.673, Error:48.71520426825123]\n", + "Cond:#...#F.. - Act:1 - Num:1 [fit: 0.000, exp: 17.00, pred: 889.413, Error:96.78008776879648]\n", + "Cond:..#..OOO - Act:0 - Num:9 [fit: 0.000, exp: 22.00, pred: 1018.462, Error:9.38986646511859]\n", + "Cond:...O#.#. - Act:2 - Num:1 [fit: 0.014, exp: 1.00, pred: 711.996, Error:0.0]\n", + "Cond:....#F.. - Act:2 - Num:6 [fit: 0.000, exp: 25.00, pred: 946.586, Error:114.29216226726246]\n", + "Cond:#O.##... - Act:2 - Num:8 [fit: 0.000, exp: 23.00, pred: 865.265, Error:242.4022453733367]\n", + "Cond:.OOO.... - Act:6 - Num:2 [fit: 0.025, exp: 1.00, pred: 690.201, Error:0.0]\n", + "Cond:.OO....# - Act:2 - Num:1 [fit: 0.000, exp: 23.00, pred: 864.231, Error:129.62822311969154]\n", + "Cond:.OO#.... - Act:2 - Num:1 [fit: 0.000, exp: 30.00, pred: 825.739, Error:130.4695542989627]\n", + "Cond:...O#... - Act:3 - Num:1 [fit: 0.050, exp: 1.00, pred: 703.162, Error:0.0]\n", + "Cond:#OO....# - Act:4 - Num:1 [fit: 0.000, exp: 33.00, pred: 793.133, Error:209.0675248649937]\n", + "Cond:...FOO.. - Act:7 - Num:1 [fit: 0.001, exp: 12.00, pred: 879.282, Error:207.07374132397052]\n", + "Cond:.....#.O - Act:3 - Num:4 [fit: 0.009, exp: 6.00, pred: 796.593, Error:218.44161650233156]\n", + "Cond:OO.##..O - Act:0 - Num:5 [fit: 0.002, exp: 12.00, pred: 792.719, Error:112.23107918854755]\n", + "Cond:O#..#.#O - Act:0 - Num:5 [fit: 0.002, exp: 12.00, pred: 792.719, Error:112.23107918854755]\n", + "Cond:#OO....# - Act:6 - Num:3 [fit: 0.000, exp: 30.00, pred: 786.256, Error:204.38185518206458]\n", + "Cond:#O#.O#.. - Act:1 - Num:3 [fit: 0.000, exp: 18.00, pred: 1111.647, Error:43.4941267917952]\n", + "Cond:O#.O.... - Act:4 - Num:9 [fit: 0.000, exp: 21.00, pred: 1419.105, Error:145.38723616986397]\n", + "Cond:.O..#### - Act:0 - Num:5 [fit: 0.000, exp: 24.00, pred: 1125.664, Error:88.2189362872778]\n", + "Cond:...##FO. - Act:5 - Num:2 [fit: 0.000, exp: 22.00, pred: 1413.167, Error:28.957314780006225]\n", + "Cond:#...#FO# - Act:5 - Num:2 [fit: 0.000, exp: 28.00, pred: 1786.349, Error:237.13238787560007]\n", + "Cond:.#.#.... - Act:7 - Num:1 [fit: 0.000, exp: 15.00, pred: 874.563, Error:299.5224117055316]\n", + "Cond:.OOO..O. - Act:5 - Num:6 [fit: 0.000, exp: 20.00, pred: 1982.582, Error:135.10784405529986]\n", + "Cond:.OO...#O - Act:5 - Num:1 [fit: 0.000, exp: 32.00, pred: 2535.305, Error:727.5871013842868]\n", + "Cond:#.#...#. - Act:6 - Num:2 [fit: 0.000, exp: 15.00, pred: 2537.713, Error:83.08404239306027]\n", + "Cond:.....OOF - Act:4 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:....#OF. - Act:6 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:.....O.. - Act:5 - Num:5 [fit: 0.000, exp: 20.00, pred: 1518.325, Error:108.93424133853078]\n", + "Cond:.#OO.... - Act:6 - Num:6 [fit: 0.002, exp: 17.00, pred: 907.543, Error:198.17971752768022]\n", + "Cond:...#..OO - Act:6 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:#..#.... - Act:7 - Num:4 [fit: 0.000, exp: 19.00, pred: 1214.090, Error:636.8045206115229]\n", + "Cond:##.O.... - Act:4 - Num:5 [fit: 0.000, exp: 25.00, pred: 1196.796, Error:531.010136881062]\n", + "Cond:.....F.. - Act:5 - Num:2 [fit: 0.000, exp: 61.00, pred: 1306.751, Error:209.63810455825947]\n", + "Cond:...FOO.. - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:......O# - Act:0 - Num:4 [fit: 0.009, exp: 3.00, pred: 743.747, Error:32.6470124642146]\n", + "Cond:.OO#...# - Act:1 - Num:4 [fit: 0.000, exp: 25.00, pred: 771.129, Error:212.3593407195533]\n", + "Cond:O..F...O - Act:5 - Num:3 [fit: 0.000, exp: 17.00, pred: 1340.009, Error:68.20722241739978]\n", + "Cond:.......O - Act:4 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:.......# - Act:0 - Num:3 [fit: 0.001, exp: 15.00, pred: 824.577, Error:140.70298617317846]\n", + "Cond:O.##.... - Act:1 - Num:7 [fit: 0.000, exp: 23.00, pred: 1274.408, Error:54.92984070576826]\n", + "Cond:...#..#. - Act:4 - Num:1 [fit: 0.000, exp: 22.00, pred: 830.286, Error:74.94729001124477]\n", + "Cond:.....O.. - Act:6 - Num:4 [fit: 0.000, exp: 17.00, pred: 1187.672, Error:48.22514931822723]\n", + "Cond:..#OO... - Act:7 - Num:4 [fit: 0.000, exp: 11.00, pred: 871.909, Error:380.53515501849284]\n", + "Cond:...OO..# - Act:7 - Num:2 [fit: 0.000, exp: 11.00, pred: 871.909, Error:380.53515501849284]\n", + "Cond:.#.#...O - Act:1 - Num:4 [fit: 0.000, exp: 25.00, pred: 812.521, Error:228.15193862697137]\n", + "Cond:....##.O - Act:1 - Num:3 [fit: 0.000, exp: 25.00, pred: 812.521, Error:228.15193862697137]\n", + "Cond:.###OO#. - Act:7 - Num:1 [fit: 0.000, exp: 12.00, pred: 872.679, Error:192.26798109614106]\n", + "Cond:#..FOO#. - Act:4 - Num:3 [fit: 0.000, exp: 12.00, pred: 848.828, Error:178.70806081803005]\n", + "Cond:#..OO... - Act:0 - Num:7 [fit: 0.000, exp: 19.00, pred: 949.621, Error:218.4811914816932]\n", + "Cond:...O#... - Act:7 - Num:4 [fit: 0.000, exp: 13.00, pred: 773.704, Error:297.68144698225336]\n", + "Cond:.....OOF - Act:7 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:...#.#O# - Act:1 - Num:2 [fit: 0.000, exp: 20.00, pred: 1310.289, Error:544.3991435428758]\n", + "Cond:#..#O... - Act:0 - Num:2 [fit: 0.000, exp: 19.00, pred: 949.621, Error:215.3728878841493]\n", + "Cond:#.#OO... - Act:3 - Num:2 [fit: 0.000, exp: 4.00, pred: 1854.385, Error:29.447767223624183]\n", + "Cond:...FOO.. - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:#..FOO#. - Act:1 - Num:3 [fit: 0.000, exp: 14.00, pred: 837.627, Error:244.28779886320925]\n", + "Cond:...#O##. - Act:7 - Num:4 [fit: 0.001, exp: 20.00, pred: 711.193, Error:120.81889366773973]\n", + "Cond:...##O## - Act:7 - Num:4 [fit: 0.000, exp: 25.00, pred: 779.209, Error:135.97694088396412]\n", + "Cond:O.#.FO.# - Act:7 - Num:7 [fit: 0.007, exp: 13.00, pred: 859.222, Error:187.87248267439995]\n", + "Cond:...####O - Act:0 - Num:7 [fit: 0.001, exp: 22.00, pred: 790.852, Error:118.99145901349016]\n", + "Cond:...###.. - Act:7 - Num:3 [fit: 0.000, exp: 27.00, pred: 670.654, Error:63.35042035985107]\n", + "Cond:..#####O - Act:0 - Num:3 [fit: 0.000, exp: 22.00, pred: 790.852, Error:106.92692761825035]\n", + "Cond:...OO... - Act:6 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:....O.#. - Act:7 - Num:4 [fit: 0.001, exp: 11.00, pred: 1045.719, Error:54.06810418028191]\n", + "Cond:...#O#.. - Act:7 - Num:4 [fit: 0.000, exp: 20.00, pred: 711.193, Error:99.04819936670552]\n", + "Cond:.#.##.O# - Act:1 - Num:1 [fit: 0.000, exp: 17.00, pred: 1366.424, Error:406.1397009365083]\n", + "Cond:.#.###.O - Act:2 - Num:2 [fit: 0.000, exp: 21.00, pred: 788.532, Error:91.44422009504254]\n", + "Cond:....FO.. - Act:6 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:#.##FO## - Act:7 - Num:2 [fit: 0.000, exp: 19.00, pred: 819.570, Error:54.288090527487064]\n", + "Cond:#..OO..# - Act:0 - Num:4 [fit: 0.000, exp: 19.00, pred: 949.621, Error:191.82690007180707]\n", + "Cond:...#.F## - Act:3 - Num:1 [fit: 0.000, exp: 27.00, pred: 917.924, Error:151.36038621700226]\n", + "Cond:...###OF - Act:1 - Num:2 [fit: 0.000, exp: 15.00, pred: 853.941, Error:243.91850843733752]\n", + "Cond:....##.# - Act:1 - Num:2 [fit: 0.000, exp: 26.00, pred: 770.092, Error:216.46514403945133]\n", + "Cond:.#...F.. - Act:3 - Num:2 [fit: 0.000, exp: 27.00, pred: 917.924, Error:68.80299411072076]\n", + "Cond:.OO##..# - Act:3 - Num:3 [fit: 0.000, exp: 24.00, pred: 1347.652, Error:137.3153641137399]\n", + "Cond:...#.... - Act:7 - Num:5 [fit: 0.003, exp: 7.00, pred: 886.714, Error:129.0662107415224]\n", + "Cond:...####O - Act:4 - Num:9 [fit: 0.000, exp: 21.00, pred: 759.280, Error:86.89548932986267]\n", + "Cond:#..O##OF - Act:1 - Num:5 [fit: 0.000, exp: 19.00, pred: 1066.518, Error:58.61702782798356]\n", + "Cond:..#.#.OF - Act:1 - Num:3 [fit: 0.000, exp: 14.00, pred: 1066.518, Error:58.61702782798356]\n", + "Cond:#..FO#.. - Act:4 - Num:3 [fit: 0.000, exp: 11.00, pred: 852.983, Error:94.11982600178878]\n", + "Cond:...OO##. - Act:7 - Num:4 [fit: 0.000, exp: 16.00, pred: 817.220, Error:178.1562418621723]\n", + "Cond:...#O... - Act:7 - Num:2 [fit: 0.000, exp: 11.00, pred: 817.220, Error:178.1562418621723]\n", + "Cond:..####.O - Act:4 - Num:5 [fit: 0.000, exp: 20.00, pred: 801.007, Error:16.72324378861213]\n", + "Cond:.#...#.O - Act:2 - Num:3 [fit: 0.000, exp: 21.00, pred: 788.532, Error:70.78093678983794]\n", + "Cond:.###.#.O - Act:7 - Num:2 [fit: 0.000, exp: 26.00, pred: 820.755, Error:59.090394471793076]\n", + "Cond:O.....#O - Act:1 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:.....#.# - Act:1 - Num:1 [fit: 0.000, exp: 26.00, pred: 770.092, Error:79.57398086326852]\n", + "Cond:.#.....# - Act:1 - Num:1 [fit: 0.000, exp: 27.00, pred: 732.572, Error:93.45302380947501]\n", + "Cond:#OO...#. - Act:1 - Num:1 [fit: 0.002, exp: 8.00, pred: 833.046, Error:72.04772821819732]\n", + "Cond:.O#.#.## - Act:2 - Num:2 [fit: 0.013, exp: 10.00, pred: 769.697, Error:121.15258714884892]\n", + "Cond:#..##O## - Act:7 - Num:3 [fit: 0.000, exp: 25.00, pred: 779.209, Error:123.3268461321649]\n", + "Cond:##.OO..# - Act:0 - Num:4 [fit: 0.000, exp: 19.00, pred: 949.621, Error:177.05649891235916]\n", + "Cond:O#.OO..# - Act:0 - Num:7 [fit: 0.000, exp: 10.00, pred: 1010.898, Error:69.78101249632977]\n", + "Cond:O#.####. - Act:6 - Num:1 [fit: 0.000, exp: 23.00, pred: 799.655, Error:122.08183920791123]\n", + "Cond:OO....#. - Act:6 - Num:2 [fit: 0.000, exp: 23.00, pred: 799.655, Error:122.08183920791123]\n", + "Cond:.#..#.#. - Act:3 - Num:3 [fit: 0.000, exp: 31.00, pred: 733.627, Error:136.10141926415218]\n", + "Cond:###FOO.. - Act:1 - Num:2 [fit: 0.000, exp: 14.00, pred: 822.802, Error:181.90030020398808]\n", + "Cond:O...#..# - Act:3 - Num:5 [fit: 0.000, exp: 26.00, pred: 1045.183, Error:133.32538410751346]\n", + "Cond:...##F#. - Act:2 - Num:4 [fit: 0.000, exp: 18.00, pred: 976.824, Error:61.112192654004325]\n", + "Cond:...#...# - Act:4 - Num:2 [fit: 0.000, exp: 22.00, pred: 1013.541, Error:131.92929656709595]\n", + "Cond:#.O#.... - Act:4 - Num:8 [fit: 0.000, exp: 17.00, pred: 880.377, Error:131.76779114352112]\n", + "Cond:#O#O..#. - Act:1 - Num:4 [fit: 0.000, exp: 22.00, pred: 844.352, Error:182.55581514929514]\n", + "Cond:......OO - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:.#.#.#OO - Act:1 - Num:4 [fit: 0.000, exp: 20.00, pred: 1334.541, Error:423.16398356965]\n", + "Cond:.#....O# - Act:0 - Num:3 [fit: 0.001, exp: 3.00, pred: 743.747, Error:27.518159429412055]\n", + "Cond:...#..O# - Act:0 - Num:3 [fit: 0.001, exp: 3.00, pred: 743.747, Error:27.518159429412055]\n", + "Cond:.#.#..O# - Act:1 - Num:4 [fit: 0.000, exp: 13.00, pred: 1457.414, Error:362.1088069008897]\n", + "Cond:#.#.#OOF - Act:1 - Num:5 [fit: 0.000, exp: 20.00, pred: 991.690, Error:100.45734436892215]\n", + "Cond:#O..##.. - Act:2 - Num:8 [fit: 0.000, exp: 23.00, pred: 865.265, Error:242.4022453733367]\n", + "Cond:#O.#...# - Act:2 - Num:1 [fit: 0.000, exp: 46.00, pred: 1084.445, Error:161.73362320959413]\n", + "Cond:.O...... - Act:4 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:..##O##. - Act:7 - Num:4 [fit: 0.000, exp: 20.00, pred: 733.593, Error:93.32654023996919]\n", + "Cond:#...F### - Act:3 - Num:4 [fit: 0.000, exp: 19.00, pred: 816.242, Error:172.3968269759866]\n", + "Cond:.O...#.O - Act:2 - Num:3 [fit: 0.000, exp: 21.00, pred: 788.532, Error:17.695234197459484]\n", + "Cond:.#...##O - Act:2 - Num:3 [fit: 0.000, exp: 21.00, pred: 788.532, Error:17.695234197459484]\n", + "Cond:#O##...# - Act:5 - Num:5 [fit: 0.001, exp: 11.00, pred: 1038.102, Error:253.75683645727585]\n", + "Cond:.#...... - Act:5 - Num:1 [fit: 0.005, exp: 5.00, pred: 1357.181, Error:334.6735520504819]\n", + "Cond:##OO...# - Act:4 - Num:2 [fit: 0.000, exp: 35.00, pred: 1604.532, Error:157.22286515672369]\n", + "Cond:..O#...# - Act:4 - Num:10 [fit: 0.000, exp: 17.00, pred: 880.377, Error:68.1066906673225]\n", + "Cond:.OOO#... - Act:6 - Num:1 [fit: 0.003, exp: 1.00, pred: 690.201, Error:0.0]\n", + "Cond:#O#.#.## - Act:2 - Num:1 [fit: 0.000, exp: 46.00, pred: 1084.422, Error:161.51924032042282]\n", + "Cond:.#.#...# - Act:2 - Num:2 [fit: 0.001, exp: 10.00, pred: 793.056, Error:69.02222338821224]\n", + "Cond:#.###O## - Act:7 - Num:3 [fit: 0.000, exp: 25.00, pred: 779.209, Error:120.48458399864334]\n", + "Cond:O....#.O - Act:2 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:#O#.#.## - Act:7 - Num:7 [fit: 0.000, exp: 15.00, pred: 796.025, Error:16.66177355373079]\n", + "Cond:#..OO.#. - Act:0 - Num:8 [fit: 0.000, exp: 19.00, pred: 949.621, Error:160.09487908615318]\n", + "Cond:O..OO... - Act:0 - Num:7 [fit: 0.000, exp: 13.00, pred: 848.900, Error:74.24203541506455]\n", + "Cond:.O...... - Act:6 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:O#.#...# - Act:6 - Num:1 [fit: 0.000, exp: 24.00, pred: 756.409, Error:109.11725398907859]\n", + "Cond:OO.#..#. - Act:6 - Num:2 [fit: 0.000, exp: 26.00, pred: 793.949, Error:96.18049214965333]\n", + "Cond:...O.... - Act:5 - Num:5 [fit: 0.026, exp: 7.00, pred: 886.714, Error:338.7473087991509]\n", + "Cond:.##O...# - Act:7 - Num:2 [fit: 0.000, exp: 48.00, pred: 1148.435, Error:236.27617531067852]\n", + "Cond:..#..#.O - Act:3 - Num:4 [fit: 0.001, exp: 6.00, pred: 796.593, Error:54.61040412558289]\n", + "Cond:.....#.O - Act:1 - Num:4 [fit: 0.001, exp: 6.00, pred: 796.593, Error:54.61040412558289]\n", + "Cond:#.OO...# - Act:1 - Num:3 [fit: 0.006, exp: 3.00, pred: 850.399, Error:21.43399702790664]\n", + "Cond:..#.#O#F - Act:3 - Num:1 [fit: 0.000, exp: 22.00, pred: 873.829, Error:56.07858625007316]\n", + "Cond:#.....O# - Act:0 - Num:2 [fit: 0.001, exp: 3.00, pred: 743.747, Error:8.16175311605365]\n", + "Cond:.##..O#F - Act:0 - Num:3 [fit: 0.003, exp: 17.00, pred: 1326.980, Error:359.1679042132547]\n", + "Cond:O....#.O - Act:4 - Num:7 [fit: 0.000, exp: 19.00, pred: 889.640, Error:264.80256757963747]\n", + "Cond:#...FO#. - Act:3 - Num:3 [fit: 0.000, exp: 19.00, pred: 816.242, Error:169.77228606581394]\n", + "Cond:..##.#OO - Act:1 - Num:5 [fit: 0.000, exp: 20.00, pred: 1334.541, Error:363.0759246439793]\n", + "Cond:...#.##O - Act:1 - Num:5 [fit: 0.000, exp: 20.00, pred: 1334.541, Error:363.0759246439793]\n", + "Cond:#OOO##.. - Act:2 - Num:1 [fit: 0.000, exp: 26.00, pred: 834.702, Error:153.65873685671812]\n", + "Cond:.OO##... - Act:3 - Num:1 [fit: 0.000, exp: 24.00, pred: 1347.652, Error:136.94434252999866]\n", + "Cond:.OO##..# - Act:1 - Num:5 [fit: 0.000, exp: 22.00, pred: 834.695, Error:67.29335359694214]\n", + "Cond:...#OO#. - Act:5 - Num:3 [fit: 0.001, exp: 13.00, pred: 794.063, Error:143.99946197977494]\n", + "Cond:...#OO#. - Act:0 - Num:3 [fit: 0.001, exp: 10.00, pred: 926.233, Error:70.46178447861966]\n", + "Cond:...#OO## - Act:7 - Num:3 [fit: 0.001, exp: 12.00, pred: 843.064, Error:105.33029124612442]\n", + "Cond:OO##..#. - Act:4 - Num:2 [fit: 0.000, exp: 25.00, pred: 836.940, Error:67.03309126033191]\n", + "Cond:O#.#.##. - Act:7 - Num:1 [fit: 0.000, exp: 23.00, pred: 799.655, Error:60.621824019909766]\n", + "Cond:.#.##... - Act:3 - Num:1 [fit: 0.000, exp: 31.00, pred: 733.627, Error:136.10141926415218]\n", + "Cond:#..OO#.. - Act:0 - Num:7 [fit: 0.000, exp: 19.00, pred: 949.621, Error:150.73021750207988]\n", + "Cond:#..#OO#. - Act:4 - Num:2 [fit: 0.000, exp: 11.00, pred: 894.822, Error:44.34789887027637]\n", + "Cond:...FOO#. - Act:7 - Num:7 [fit: 0.000, exp: 22.00, pred: 818.284, Error:91.9629713494957]\n", + "Cond:..OO.... - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:#.OO.... - Act:4 - Num:10 [fit: 0.000, exp: 17.00, pred: 880.377, Error:50.20157595412433]\n", + "Cond:...O.... - Act:6 - Num:2 [fit: 0.026, exp: 3.00, pred: 1288.888, Error:174.85129323463403]\n", + "Cond:OO..#.#. - Act:2 - Num:8 [fit: 0.000, exp: 21.00, pred: 880.302, Error:214.6328929247786]\n", + "Cond:OO..#... - Act:1 - Num:2 [fit: 0.000, exp: 31.00, pred: 851.065, Error:91.95260542074793]\n", + "Cond:OO....#O - Act:1 - Num:4 [fit: 0.000, exp: 16.00, pred: 878.434, Error:57.92369354609416]\n", + "Cond:OO#....O - Act:1 - Num:4 [fit: 0.000, exp: 16.00, pred: 878.434, Error:57.92369354609416]\n", + "Cond:O......O - Act:6 - Num:5 [fit: 0.001, exp: 11.00, pred: 973.893, Error:48.999844428420104]\n", + "Cond:.....F.# - Act:6 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:...#.F.. - Act:5 - Num:1 [fit: 0.000, exp: 61.00, pred: 1306.751, Error:209.63810455825947]\n", + "Cond:.#.#.#O. - Act:1 - Num:4 [fit: 0.000, exp: 19.00, pred: 1123.060, Error:101.34290294696999]\n", + "Cond:.OOO.... - Act:4 - Num:8 [fit: 0.000, exp: 22.00, pred: 1616.732, Error:134.69557378901595]\n", + "Cond:.O#O.... - Act:7 - Num:4 [fit: 0.000, exp: 11.00, pred: 929.649, Error:237.76318672308915]\n", + "Cond:OO..#... - Act:4 - Num:8 [fit: 0.000, exp: 22.00, pred: 1082.899, Error:161.7574504676473]\n", + "Cond:#O#.##.. - Act:2 - Num:7 [fit: 0.000, exp: 23.00, pred: 865.265, Error:194.37293523661384]\n", + "Cond:#.#.#O.. - Act:3 - Num:2 [fit: 0.000, exp: 19.00, pred: 816.242, Error:162.93181342294295]\n", + "Cond:..#OO##. - Act:1 - Num:2 [fit: 0.004, exp: 12.00, pred: 1001.253, Error:133.7011536675054]\n", + "Cond:#...#..O - Act:5 - Num:5 [fit: 0.002, exp: 10.00, pred: 1144.724, Error:225.535867996287]\n", + "Cond:.....OF. - Act:0 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:.O#O##.. - Act:4 - Num:3 [fit: 0.000, exp: 22.00, pred: 1616.732, Error:131.33636041030633]\n", + "Cond:OO###.#. - Act:4 - Num:1 [fit: 0.000, exp: 25.00, pred: 836.940, Error:67.03309126033191]\n", + "Cond:OO.....O - Act:3 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:#O#.#.#O - Act:0 - Num:9 [fit: 0.000, exp: 24.00, pred: 1125.871, Error:83.25448230208667]\n", + "Cond:#....O#F - Act:0 - Num:1 [fit: 0.000, exp: 17.00, pred: 1326.980, Error:354.5882409410898]\n", + "Cond:.#.####. - Act:7 - Num:4 [fit: 0.000, exp: 12.00, pred: 810.617, Error:142.83992054159063]\n", + "Cond:#....OF# - Act:7 - Num:1 [fit: 0.001, exp: 10.00, pred: 875.535, Error:149.34956072184676]\n", + "Cond:###.F#.. - Act:3 - Num:5 [fit: 0.000, exp: 19.00, pred: 816.242, Error:110.28436519826698]\n", + "Cond:.OOO..#. - Act:7 - Num:4 [fit: 0.002, exp: 11.00, pred: 929.649, Error:289.4028255580876]\n", + "Cond:##..#OF# - Act:1 - Num:2 [fit: 0.003, exp: 6.00, pred: 840.921, Error:22.540079029169036]\n", + "Cond:#.##.... - Act:1 - Num:2 [fit: 0.000, exp: 43.00, pred: 1241.952, Error:397.295352305611]\n", + "Cond:##...... - Act:1 - Num:1 [fit: 0.000, exp: 40.00, pred: 885.831, Error:154.0637641277305]\n", + "Cond:OO..#... - Act:3 - Num:3 [fit: 0.000, exp: 44.00, pred: 1021.196, Error:192.86595287808]\n", + "Cond:OO...... - Act:2 - Num:8 [fit: 0.000, exp: 21.00, pred: 880.302, Error:260.4853364671974]\n", + "Cond:#..#..#O - Act:5 - Num:7 [fit: 0.000, exp: 28.00, pred: 1091.541, Error:223.18891363871927]\n", + "Cond:O#.....O - Act:4 - Num:8 [fit: 0.000, exp: 20.00, pred: 849.001, Error:128.95288020487595]\n", + "Cond:.....OF. - Act:5 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:#....O#. - Act:2 - Num:1 [fit: 0.000, exp: 35.00, pred: 870.631, Error:249.3473898290552]\n", + "Cond:..#..O#. - Act:2 - Num:1 [fit: 0.000, exp: 35.00, pred: 870.631, Error:249.3473898290552]\n", + "Cond:#.#OO... - Act:4 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, Error:0.01]\n", + "Cond:.#.#OO#. - Act:7 - Num:3 [fit: 0.001, exp: 12.00, pred: 843.064, Error:86.42901730565414]\n", + "Cond:....FO.# - Act:2 - Num:3 [fit: 0.000, exp: 24.00, pred: 841.579, Error:29.629697431279354]\n", + "Cond:....F##. - Act:2 - Num:1 [fit: 0.000, exp: 28.00, pred: 841.579, Error:29.629697431279354]\n", + "Cond:.....#F# - Act:3 - Num:5 [fit: 0.000, exp: 46.00, pred: 1624.522, Error:339.5095767425465]\n", + "Cond:#O#O.... - Act:4 - Num:4 [fit: 0.000, exp: 22.00, pred: 1616.732, Error:125.46246356434268]\n", + "Cond:.O#O.... - Act:4 - Num:6 [fit: 0.000, exp: 22.00, pred: 1616.732, Error:125.46246356434268]\n", + "Cond:.#O##... - Act:3 - Num:2 [fit: 0.000, exp: 24.00, pred: 1347.293, Error:135.61077118067297]\n", + "Cond:OO###... - Act:4 - Num:1 [fit: 0.000, exp: 25.00, pred: 836.940, Error:16.75827281508298]\n", + "Cond:OO#O..#. - Act:4 - Num:2 [fit: 0.000, exp: 25.00, pred: 836.940, Error:16.75827281508298]\n", + "Cond:#O.##... - Act:3 - Num:1 [fit: 0.000, exp: 44.00, pred: 1021.196, Error:191.58616024301475]\n", + "Cond:#OO#..#. - Act:4 - Num:4 [fit: 0.000, exp: 22.00, pred: 1616.732, Error:108.00508633826055]\n", + "Cond:.OO.#.#. - Act:3 - Num:5 [fit: 0.000, exp: 21.00, pred: 1347.293, Error:125.55796350617484]\n", + "Cond:.OO#...# - Act:3 - Num:2 [fit: 0.000, exp: 24.00, pred: 1347.293, Error:125.55796350617484]\n", + "Cond:#..#.O.. - Act:1 - Num:1 [fit: 0.000, exp: 33.00, pred: 1197.543, Error:33.77857913502802]\n", + "Cond:OO..O#.. - Act:3 - Num:5 [fit: 0.000, exp: 29.00, pred: 1262.148, Error:43.57664353205007]\n", + "Cond:.OO.#... - Act:3 - Num:5 [fit: 0.000, exp: 21.00, pred: 1347.293, Error:119.93251437704524]\n", + "Cond:.OO#.... - Act:3 - Num:2 [fit: 0.000, exp: 24.00, pred: 1347.293, Error:119.93251437704524]\n", + "Cond:#...##.O - Act:5 - Num:7 [fit: 0.002, exp: 10.00, pred: 1144.724, Error:225.535867996287]\n", + "Cond:#.#.#..O - Act:3 - Num:3 [fit: 0.002, exp: 11.00, pred: 1127.524, Error:212.7687492498865]\n", + "Cond:#.###... - Act:1 - Num:1 [fit: 0.000, exp: 55.00, pred: 982.703, Error:150.1322870533698]\n", + "Cond:#....#.. - Act:1 - Num:1 [fit: 0.000, exp: 39.00, pred: 1376.290, Error:351.55809040883474]\n", + "Cond:#.#OO##. - Act:1 - Num:3 [fit: 0.004, exp: 12.00, pred: 1001.253, Error:133.7011536675054]\n", + "Cond:..#O...# - Act:7 - Num:2 [fit: 0.000, exp: 48.00, pred: 1148.435, Error:236.27617531067852]\n", + "Cond:#.###..O - Act:3 - Num:4 [fit: 0.002, exp: 11.00, pred: 1127.524, Error:212.7687492498865]\n", + "Cond:#...#..O - Act:3 - Num:3 [fit: 0.002, exp: 11.00, pred: 1127.524, Error:212.7687492498865]\n", + "Cond:.####..# - Act:5 - Num:3 [fit: 0.000, exp: 7.00, pred: 1281.580, Error:264.9831978001772]\n", + "Cond:.##O.#O# - Act:1 - Num:4 [fit: 0.000, exp: 13.00, pred: 1383.852, Error:113.31349380547069]\n", + "Cond:.#.#.#O# - Act:1 - Num:2 [fit: 0.000, exp: 20.00, pred: 1383.852, Error:113.31349380547069]\n", + "Cond:.OO####. - Act:3 - Num:5 [fit: 0.000, exp: 21.00, pred: 1346.933, Error:137.02979443325717]\n", + "Cond:..#O###. - Act:1 - Num:4 [fit: 0.000, exp: 15.00, pred: 970.926, Error:112.37071270316561]\n", + "Cond:#..##..O - Act:3 - Num:3 [fit: 0.000, exp: 11.00, pred: 1127.524, Error:152.6292652443462]\n", + "Cond:#.#.#..# - Act:3 - Num:3 [fit: 0.000, exp: 11.00, pred: 1127.524, Error:152.6292652443462]\n", + "Cond:...#.OF# - Act:3 - Num:1 [fit: 0.000, exp: 46.00, pred: 1624.522, Error:173.28208650050593]\n", + "Cond:.##O..#. - Act:4 - Num:5 [fit: 0.000, exp: 22.00, pred: 1616.732, Error:76.46333444330676]\n", + "Cond:.OO..... - Act:6 - Num:6 [fit: 0.000, exp: 17.00, pred: 1447.704, Error:43.73932994224854]\n", + "Cond:..##O##. - Act:0 - Num:4 [fit: 0.000, exp: 14.00, pred: 1053.054, Error:162.32195174162806]\n", + "Cond:#O##O... - Act:3 - Num:1 [fit: 0.000, exp: 38.00, pred: 1279.162, Error:43.04364491854261]\n", + "Cond:#.#....O - Act:3 - Num:3 [fit: 0.000, exp: 11.00, pred: 1127.524, Error:66.54504058358242]\n", + "Cond:#...##.# - Act:3 - Num:3 [fit: 0.000, exp: 11.00, pred: 1127.524, Error:66.54504058358242]\n", + "Cond:..#O###. - Act:3 - Num:2 [fit: 0.000, exp: 12.00, pred: 1001.253, Error:125.74818205593458]\n", + "Cond:#.##O#.# - Act:1 - Num:3 [fit: 0.003, exp: 13.00, pred: 1000.834, Error:107.29592068522129]\n", + "Cond:.#O##..# - Act:5 - Num:3 [fit: 0.000, exp: 5.00, pred: 1007.776, Error:98.57002205005955]\n", + "Cond:.####..# - Act:6 - Num:3 [fit: 0.000, exp: 8.00, pred: 1172.214, Error:183.65991927503404]\n", + "Cond:..#O.... - Act:7 - Num:1 [fit: 0.000, exp: 48.00, pred: 1148.435, Error:236.27617531067852]\n", + "Cond:.#..#O#F - Act:0 - Num:6 [fit: 0.000, exp: 17.00, pred: 1326.980, Error:89.79197605331368]\n", + "Cond:##OO.... - Act:4 - Num:7 [fit: 0.000, exp: 22.00, pred: 1616.732, Error:59.413365890145215]\n", + "Cond:.OO#..#. - Act:3 - Num:2 [fit: 0.000, exp: 24.00, pred: 1347.293, Error:76.32858006570162]\n", + "Cond:...O..#. - Act:6 - Num:1 [fit: 0.003, exp: 3.00, pred: 1288.888, Error:174.85129323463403]\n", + "Cond:OO..#.## - Act:3 - Num:1 [fit: 0.000, exp: 44.00, pred: 1021.196, Error:47.80862709964447]\n", + "Cond:####O### - Act:0 - Num:3 [fit: 0.003, exp: 13.00, pred: 1000.834, Error:107.29592068522129]\n", + "Cond:#..#O#.# - Act:1 - Num:3 [fit: 0.003, exp: 13.00, pred: 1000.834, Error:107.29592068522129]\n", + "Cond:##..#..O - Act:3 - Num:3 [fit: 0.000, exp: 11.00, pred: 1127.524, Error:53.192187312471624]\n", + "Cond:#O##.#.# - Act:5 - Num:4 [fit: 0.000, exp: 11.00, pred: 1038.102, Error:63.43920911431896]\n", + "Cond:.#.#.F.. - Act:5 - Num:1 [fit: 0.000, exp: 61.00, pred: 1306.751, Error:96.92085241641422]\n" + ] + } + ], + "source": [ + "for cl in explore_population:\n", + " print(str(cl))" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "df = pd.DataFrame(metric[\"average_specificity\"] for metric in explore_metrics)\n", + "ax = df.plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"specificity\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAhUUlEQVR4nO3de5RU5bnn8e/TlwK6GqGrIQa5BMxyAgiC2CgHJxEnhoOOgh7njHoIGnMMw1GcZJ1xhNwMMZOTE2NijrewiEMgjlEnXomDGnU0TmKMgMF7BFSiLV5pRKBtoLuf+WPvasqiunvTza5qav8+a9Widu23qp7eXdTT77v3+7zm7oiISHJVlDoAEREpLSUCEZGEUyIQEUk4JQIRkYRTIhARSbiqUgdwoIYMGeKjR48udRgiIoeUdevWve/uQwvtO+QSwejRo1m7dm2pwxAROaSY2V8726ehIRGRhFMiEBFJOCUCEZGEO+TOEYhIz+zdu5fGxkZaWlpKHYrEqH///owYMYLq6urIz1EiEEmIxsZGBg4cyOjRozGzUocjMXB3tm7dSmNjI2PGjIn8vNiGhsxsuZm9a2bPd7LfzOxaM9tkZs+a2ZS4YhERaGlpob6+XkmgjJkZ9fX1B9zri/McwQpgVhf7TwWOCm/zgZ/FGIuIgJJAAvTkdxxbInD3x4GmLprMAX7pgSeBwWY2LK54Xn57Bz968C9s27UnrrcQETkklfKqoeHAGznbjeFj+zGz+Wa21szWvvfeez16s9fe38UNj77Cmx981KPni0jvXXvttYwbN465c+f2+rVWrFjBli1bOrYvuugiXnzxxV6/bhKV8mRxof5LwVVy3H0ZsAygoaGhRyvpZNIpAJrUIxApmRtvvJH7779/vxOZra2tVFUd2NfRihUrmDBhAkcccQQAN91000GLs1ja2tqorKwsdRgl7RE0AiNztkcAWzpp22vZRLCtWYlApBQWLFjAq6++yuzZs7nmmmtYsmQJ8+fPZ+bMmZx//vls3ryZz372s0yZMoUpU6bwxBNPdDz3qquuYuLEiUyaNInFixdzxx13sHbtWubOncvkyZP56KOPmDFjRkf5mVtvvZWJEycyYcIEFi1a1PE6tbW1fPOb32TSpElMmzaNd955Z784n3rqKaZPn86xxx7L9OnTefnll4HgS/uyyy5j4sSJHHPMMVx33XUArFmzhunTpzNp0iSOP/54duzYwYoVK1i4cGHHa55++uk89thjHTFcccUVnHDCCfzxj3/kyiuvZOrUqUyYMIH58+eTXTVy06ZNnHLKKUyaNIkpU6bwyiuvMG/ePO69996O1507dy6rVq3q9e+mlD2CVcBCM7sNOAHY7u5vxfVm9WEi2LpTiUDku795gRe3fHhQX3P8EYfxnTOO7nT/0qVLeeCBB3j00UcZMmQIS5YsYd26dfz+979nwIABNDc389BDD9G/f382btzIeeedx9q1a7n//vu55557+NOf/kRNTQ1NTU1kMhmuv/56rr76ahoaGj72Plu2bGHRokWsW7eOuro6Zs6cyT333MOZZ57Jrl27mDZtGt///ve5/PLL+fnPf863vvWtjz1/7NixPP7441RVVfHwww/zjW98gzvvvJNly5bx2muv8ec//5mqqiqamprYs2cP55xzDrfffjtTp07lww8/ZMCAAV0ep127djFhwgSuvPLK4LiNH88VV1wBwLx587jvvvs444wzmDt3LosXL+ass86ipaWF9vZ2LrroIq655hrmzJnD9u3beeKJJ1i5cmVPfl0fE1siMLNbgRnAEDNrBL4DVAO4+1JgNXAasAloBi6MKxaAQQOqqTANDYn0JbNnz+744ty7dy8LFy5k/fr1VFZWsmHDBgAefvhhLrzwQmpqagDIZDJdvuaaNWuYMWMGQ4cGhTbnzp3L448/zplnnkkqleL0008H4LjjjuOhhx7a7/nbt2/nggsuYOPGjZgZe/fu7YhjwYIFHUNYmUyG5557jmHDhjF16lQADjvssG5/5srKSs4+++yO7UcffZSrrrqK5uZmmpqaOProo5kxYwZvvvkmZ511FhBMEgM46aSTuOSSS3j33Xe56667OPvssw94SK2Q2BKBu5/XzX4HLonr/fNVVBh1NSm2KhGIdPmXezGl0+mO+9dccw2HH344zzzzDO3t7R1ffu5+QJdEZodWCqmuru54rcrKSlpbW/dr8+1vf5uTTz6Zu+++m82bNzNjxoxO4+gstqqqKtrb2zu2c6/r79+/f8d5gZaWFi6++GLWrl3LyJEjWbJkCS0tLV3+DPPmzeOWW27htttuY/ny5Z22OxCJqjWUSad0+ahIH7V9+3aGDRtGRUUFN998M21tbQDMnDmT5cuX09zcDEBTU3BV+sCBA9mxY8d+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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df = pd.DataFrame(metric[\"fraction_accuracy\"] for metric in explore_metrics)\n", + "ax = df.plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"fraction accuracy\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "df = pd.DataFrame(zip([metric[\"population\"] for metric in explore_metrics], [metric[\"numerosity\"] for metric in explore_metrics]))\n", + "ax = df.plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"pop\", \"num\"])\n", + "\n", + "steps_averaged = []\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "\n", + "xf = [metric[\"steps_in_trial\"] for metric in explore_metrics]\n", + "temp_df = np.array_split(xf, 20)\n", + "for i in range(len(temp_df)):\n", + " temp_df[i] = np.mean(temp_df[i]) \n", + "df = pd.DataFrame(temp_df)\n", + "# df = pd.DataFrame(metric[\"steps_in_trial\"] for metric in explore_metrics)\n", + "ax = df.plot()\n", + "ax.set_xlabel(\"trial grouped up[*50]\")\n", + "ax.set_ylabel(\"steps for solution\")\n", + "ax.legend([\"steps\"])\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XCS_woods1.ipynb b/XCS_Experiments/XCS_woods1.ipynb new file mode 100644 index 0000000..63eb326 --- /dev/null +++ b/XCS_Experiments/XCS_woods1.ipynb @@ -0,0 +1,214 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### XCS in Woods" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n", + "\n", + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_woods\n", + "\n", + "from lcs.agents.xcs import XCS, Configuration\n", + "from utils.xcs_utils import *" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "['.', 'O', 'O', 'O', '.', '.', '.', '.']\n", + "\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[36mX\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n" + ] + } + ], + "source": [ + "maze = gym.make('Woods1-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "ename": "AttributeError", + "evalue": "'Woods1' object has no attribute 'get_all_possible_transitions'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mAttributeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 20\u001b[0m \u001b[0mnumber_of_tests\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m10\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 21\u001b[0m \u001b[0mexplore_trials\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m2000\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 22\u001b[1;33m exploit_trials=500)\n\u001b[0m", + "\u001b[1;32m~\\Documents\\GitHub\\pyalcs-experiments\\XCS_Experiments\\utils\\xcs_utils.py\u001b[0m in \u001b[0;36mavg_experiment\u001b[1;34m(maze, cfg, number_of_tests, explore_trials, exploit_trials, pre_generate)\u001b[0m\n\u001b[0;32m 102\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 103\u001b[0m \u001b[0mpopulation\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 104\u001b[1;33m \u001b[0mtest_metrics\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mstart_single_experiment\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmaze\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcfg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexplore_trials\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexploit_trials\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpopulation\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 105\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mpd\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtest_metrics\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgroupby\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;34m'trial'\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmean\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 106\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Documents\\GitHub\\pyalcs-experiments\\XCS_Experiments\\utils\\xcs_utils.py\u001b[0m in \u001b[0;36mstart_single_experiment\u001b[1;34m(maze, cfg, explore_trials, exploit_metrics, population)\u001b[0m\n\u001b[0;32m 108\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mstart_single_experiment\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmaze\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcfg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexplore_trials\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m4000\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexploit_metrics\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;36m1000\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpopulation\u001b[0m\u001b[1;33m=\u001b[0m\u001b[1;32mNone\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 109\u001b[0m \u001b[0magent\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mXCS\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcfg\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mpopulation\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 110\u001b[1;33m \u001b[0mexplore_population\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexplore_metrics\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0magent\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexplore\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmaze\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexplore_trials\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;32mFalse\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 111\u001b[0m \u001b[0mexploit_population\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexploit_metrics\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0magent\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mexploit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmaze\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mexploit_metrics\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 112\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\users\\metron\\documents\\github\\pyalcs\\lcs\\agents\\Agent.py\u001b[0m in \u001b[0;36mexplore\u001b[1;34m(self, env, trials, decay)\u001b[0m\n\u001b[0;32m 45\u001b[0m \u001b[0mpopulation\u001b[0m \u001b[0mof\u001b[0m \u001b[0mclassifiers\u001b[0m \u001b[1;32mand\u001b[0m \u001b[0mmetrics\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 46\u001b[0m \"\"\"\n\u001b[1;32m---> 47\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_evaluate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0menv\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrials\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_run_trial_explore\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mdecay\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 48\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 49\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mexploit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0menv\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtrials\u001b[0m\u001b[1;33m)\u001b[0m \u001b[1;33m->\u001b[0m \u001b[0mTuple\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\users\\metron\\documents\\github\\pyalcs\\lcs\\agents\\Agent.py\u001b[0m in \u001b[0;36m_evaluate\u001b[1;34m(self, env, n_trials, func, decay)\u001b[0m\n\u001b[0;32m 135\u001b[0m \u001b[0muser_metrics\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_cfg\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0muser_metrics_collector_fcn\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 136\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0muser_metrics\u001b[0m \u001b[1;32mis\u001b[0m \u001b[1;32mnot\u001b[0m \u001b[1;32mNone\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 137\u001b[1;33m \u001b[0mm\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0muser_metrics\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0menv\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 138\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 139\u001b[0m \u001b[0mmetrics\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mm\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Documents\\GitHub\\pyalcs-experiments\\XCS_Experiments\\utils\\xcs_utils.py\u001b[0m in \u001b[0;36mxcs_metrics\u001b[1;34m(xcs, environment)\u001b[0m\n\u001b[0;32m 56\u001b[0m \u001b[1;34m'numerosity'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0msum\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mcl\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mnumerosity\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mcl\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mxcs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpopulation\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 57\u001b[0m \u001b[1;34m'average_specificity'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mspecificity\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mxcs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mxcs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpopulation\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 58\u001b[1;33m \u001b[1;34m'knowledge'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[0mmaze_knowledge\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mxcs\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpopulation\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0menvironment\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 59\u001b[0m }\n\u001b[0;32m 60\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\Documents\\GitHub\\pyalcs-experiments\\XCS_Experiments\\utils\\xcs_utils.py\u001b[0m in \u001b[0;36mmaze_knowledge\u001b[1;34m(population, environment)\u001b[0m\n\u001b[0;32m 16\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 17\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mmaze_knowledge\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpopulation\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0menvironment\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 18\u001b[1;33m \u001b[0mtransitions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0menvironment\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0menv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mget_all_possible_transitions\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 19\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 20\u001b[0m \u001b[1;31m# Count how many transitions are anticipated correctly\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mAttributeError\u001b[0m: 'Woods1' object has no attribute 'get_all_possible_transitions'" + ] + } + ], + "source": [ + "cfg = Configuration(number_of_actions=8,\n", + " max_population=1800,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " deletion_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover chi\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_metrics)\n", + "\n", + "df = avg_experiment(maze,\n", + " cfg,\n", + " number_of_tests=10,\n", + " explore_trials=2000,\n", + " exploit_trials=500)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df['average_specificity'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"XCS\",\"XNCS\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df[['numerosity', 'population']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"numerosity\", \"number of rules\"])\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "It is hard to say but oking at amount of times algorithm reaches top steps (50) the steps might actually go down over trials. need to somehow smooth it to see it better" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df['steps_in_trial'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"steps\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Conclusion\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/XCS_Experiments/XCS_woods14-without_#.ipynb b/XCS_Experiments/XCS_woods14-without_#.ipynb deleted file mode 100644 index 7b5493e..0000000 --- a/XCS_Experiments/XCS_woods14-without_#.ipynb +++ /dev/null @@ -1,988 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### XCS in Woods 14\n", - "This experiment is meant to replicate An Analysis of Generalization in the XCS Classifier System Wood14 version without generalization" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [], - "source": [ - "# logging \n", - "import logging\n", - "logging.basicConfig(level=logging.INFO)\n", - "logger = logging.getLogger(__name__)\n", - "\n", - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "# environment setup\n", - "import gym\n", - "# noinspection PyUnresolvedReferences\n", - "import gym_woods\n", - "\n", - "from lcs.agents.xcs import XCS, Configuration\n", - "from utils.xcs_utils import *" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "This is how maze looks like\n", - "\n", - "['O', 'O', '.', 'O', 'O', 'O', '.', 'O']\n", - "\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[36mX\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" - ] - } - ], - "source": [ - "maze = gym.make('Woods14-v0')\n", - "print(\"This is how maze looks like\")\n", - "situation = maze.reset()\n", - "print(type(situation))\n", - "print(situation)\n", - "maze.render()" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [3.154577245521147e-40, 8.426386911065009e-40, 2.552379700264007e-40, 6.154537527909824e-40, 1.1409518512263796e-39, 3.343389917687717e-40, 1.1020098568328202e-39, 6.499256715350867e-40], 'perf_time': 0.009184100000084072, 'population': 24, 'numerosity': 34}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 4, 'reward': [1.4512454053062271, 0.5818823619639897, 0.5302856071727265, 0.23178782842795262, 100.4345253432717, 1.1632277044996782, 0.6967189743549652, 0.5719084455366454], 'perf_time': 0.0006842000000233384, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [3.234161073723525, 4.583767072223082, 1.41835758655702, 2.0764386334906715, 7.282822860030214, 16.127235948653876, 5.969803583411309, 13.191196500585626], 'perf_time': 0.009299299999952382, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [19.415840356947143, 14.698839969628025, 8.345493806065505, 15.060914223750288, 19.1896881160728, 30.516034819798502, 17.895998248194353, 21.6411785591727], 'perf_time': 0.009646299999985786, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [21.669153587235613, 32.900877750309874, 13.613259511780694, 12.047227198424501, 12.365951453898768, 37.89002163278714, 42.08496454064207, 24.70531665324817], 'perf_time': 0.010592900000006011, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [14.365218817279786, 22.53995072332254, 5.825969589746162, 5.405699591175152, 6.5099650896909935, 24.57180648335772, 19.227644106761183, 10.99539921197907], 'perf_time': 0.0100320000000238, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [33.11114016594514, 35.379956457708126, 35.760956706438364, 36.39141814424621, 34.66284112299051, 34.67265090990231, 30.302970487039083, 34.413697399842384], 'perf_time': 0.00842139999997471, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [0.055271542016635256, 0.043811512473983905, 0.04533616212792711, 0.04701530053360288, 2.047469528788623, 0.021453035971402475, 0.07911089681448039, 0.03424884038455956], 'perf_time': 0.008968899999899804, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [0.7091468961147179, 0.5141590611333005, 0.3904531377027073, 0.8575618991406873, 4.416893367160279, 0.22353920244950792, 2.7618243683515384, 0.6062895911111101], 'perf_time': 0.010154499999998734, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [0.3431957073715251, 0.14113100103203247, 0.29579078535972253, 0.3819698641044249, 0.356110648000162, 0.1570262007511103, 0.812291251703553, 0.06336144501480946], 'perf_time': 0.00862050000000636, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0.7112434895127662, 0.7817113494932134, 0.7817113494932134, 0.6831980918752298, 0.8703732813493986, 1.2866701236616436, 0, 0.036319160484717464], 'perf_time': 0.008030800000028648, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [4.806143929350718, 35.99820436292185, 26.847419535736453, 5.429951197422301, 7.211203095800004, 22.035176594499482, 0.004649431867826039, 7.2160120177161], 'perf_time': 0.009074600000076316, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [4.806143929350718, 35.99820436292185, 26.893575890923355, 5.429951197422301, 7.211203095800004, 22.035176594499482, 0.004649431867826039, 7.2160120177161], 'perf_time': 0.009264099999995778, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [4.806143929350718, 35.99820436292185, 43.516638071149245, 5.429951197422301, 7.211203095800004, 22.035176594499482, 0.004649431867826039, 7.2160120177161], 'perf_time': 0.008652099999949314, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [4.806143929350718, 35.99820436292185, 48.899327053481926, 5.429951197422301, 7.211203095800004, 22.035176594499482, 0.004649431867826039, 7.2160120177161], 'perf_time': 0.008847800000012285, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [4.806143929350718, 35.99820436292185, 67.2620209155635, 5.429951197422301, 7.211203095800004, 22.035176594499482, 0.004649431867826039, 7.2160120177161], 'perf_time': 0.008558399999969879, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [4.806143929350718, 35.99820436292185, 56.68887898310667, 5.429951197422301, 7.211203095800004, 22.035176594499482, 0.004649431867826039, 7.2160120177161], 'perf_time': 0.009540199999946708, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [4.806143929350718, 35.99820436292185, 59.259810558059584, 5.429951197422301, 7.211203095800004, 22.035176594499482, 0.004649431867826039, 7.2160120177161], 'perf_time': 0.009427500000015243, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [4.806143929350718, 35.99820436292185, 71.73236081486613, 5.429951197422301, 7.211203095800004, 22.035176594499482, 0.004649431867826039, 7.2160120177161], 'perf_time': 0.009196200000019417, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [4.806143929350718, 35.99820436292185, 69.72869665419178, 5.429951197422301, 7.211203095800004, 22.035176594499482, 0.004649431867826039, 7.2160120177161], 'perf_time': 0.009838599999966391, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1.0230351024260182e-39, 8.787734546775163e-40, 5.6339121381975846e-40, 9.189373099959214e-40, 5.324810812072258e-40, 6.766357341480626e-40, 7.002121022831193e-40, 5.7451590799870025e-40], 'perf_time': 0.009367800000063653, 'population': 21, 'numerosity': 38}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 1 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [37.93688551166429, 55.38930994476371, 50.054705276355776, 65.08194938499815, 55.2533376000218, 52.22446403034199, 33.886487588767096, 58.58473521722222], 'perf_time': 0.009486200000083045, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [32.14132262205142, 38.57321624325481, 28.795247487847366, 32.143886562258935, 34.069329129945984, 33.15551038439001, 20.93822282394956, 27.86114481769168], 'perf_time': 0.008964999999989232, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [0.6608003585980289, 0.3443671149718448, 0.4899605906585901, 0.16953889539382871, 4.9251626751955015, 0.5477586114427689, 3.909356614868611, 0.28165313355131505], 'perf_time': 0.010657600000058665, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [36.55014639715017, 44.49882751459018, 40.437494374888615, 38.58512079815548, 33.71113518720204, 37.68298140057821, 38.846866826074816, 53.8104809870523], 'perf_time': 0.024749900000074376, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [0.08606558960500757, 0.01251475574694669, 0.03446765391404774, 0.014982234151569386, 0.0499320042998209, 0.09827901964169435, 0.17849727100711132, 0.03093346042139861], 'perf_time': 0.009243399999945723, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [8.878249536882713, 5.954303423564177, 4.897986076839252, 11.4818081364004, 5.948043124285364, 7.591396883256849, 9.679380101869459, 4.317563337783455], 'perf_time': 0.0105462000000216, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [63.02301640542212, 43.80660121340606, 55.02049323951939, 32.95530203663255, 41.129423888858, 34.35086864221155, 54.53086374757855, 54.0874295962717], 'perf_time': 0.010389400000008209, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [26.92111115737761, 12.805802981539225, 21.044471859203476, 29.29668487449129, 16.60221474684111, 20.36452683932468, 21.30726997251015, 11.389748953393665], 'perf_time': 0.009711399999901005, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [0.7328189298953216, 0.5122520702180737, 0.30177036462014223, 0.550765746218677, 1.1945420984341093, 0.5350115003675354, 4.949514342694095, 0.3907892790636121], 'perf_time': 0.009859099999971477, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 3.3340185765341177, 0, 37.48958355195529, 0, 0, 0, 0], 'perf_time': 0.008786800000052608, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [0, 3.3340185765341177, 6.334635295414824, 33.352966785505515, 0, 0, 53.19910344430809, 0], 'perf_time': 0.008909000000016931, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [0, 3.3340185765341177, 6.334635295414824, 72.31576008985951, 0, 0, 74.29869989603716, 0], 'perf_time': 0.009153500000024906, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [0, 3.3340185765341177, 6.334635295414824, 53.55617700113986, 0, 0, 82.63701968135103, 0], 'perf_time': 0.009671000000025742, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [0, 3.3340185765341177, 6.334635295414824, 95.56508476229119, 0, 0, 34.284112677008714, 0], 'perf_time': 0.00929940000003171, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [0, 3.3340185765341177, 6.334635295414824, 57.58986334561478, 0, 0, 33.34133068227847, 0], 'perf_time': 0.008437400000048001, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [0, 3.3340185765341177, 6.334635295414824, 51.75554680256377, 0, 0, 33.35251346461957, 0], 'perf_time': 0.010909200000014607, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [0, 3.3340185765341177, 6.334635295414824, 85.97721827200795, 0, 0, 33.840274694938856, 0], 'perf_time': 0.01100670000005266, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [0, 3.3340185765341177, 6.334635295414824, 48.581605276300195, 0, 0, 49.227662768351145, 0], 'perf_time': 0.010607800000002499, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [0, 3.3340185765341177, 6.334635295414824, 73.7084601763815, 0, 0, 33.56611390532, 0], 'perf_time': 0.009370799999942392, 'population': 32, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [8.018606041970883e-40, 4.8745892618929506e-40, 1.170791150338864e-40, 4.697899097195857e-40, 7.373645893426742e-40, 9.207509609427041e-40, 5.653410689148421e-40, 3.83864530124212e-40], 'perf_time': 0.04518949999999222, 'population': 25, 'numerosity': 37}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 2 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 16, 'reward': [1.9211838255121112, 0.9471782917812781, 1.5588111155548334, 0.49593129636246097, 184.4428714415152, 1.6521478870214321, 1.7103791697771622, 1.6512852949269063], 'perf_time': 0.002934600000003229, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [0.016701046175624467, 0.04631815659955384, 0.030493175263319502, 0.0292326251699638, 0.019040448823061634, 0.07612573745292785, 0.07970801374605126, 0.08185117613220784], 'perf_time': 0.008242399999971894, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [7.1454685750431635, 5.82082851373944, 15.78866243043611, 7.1808135332082, 31.169323971161866, 7.014631096405754, 7.798938984887501, 15.77742623220123], 'perf_time': 0.015810000000101354, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [5.316743135919292, 3.7117746938523384, 8.483290177617386, 7.320877078114812, 12.533628064269253, 4.884629235936139, 4.177517524245366, 13.98881812703113], 'perf_time': 0.018311199999970995, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [0.0035796751190825373, 0.002580921676667459, 0.003699220028761707, 0.010467391513183105, 1.0921041400306877, 0.0045008449891967535, 0.029505535012777154, 0.018203293385126298], 'perf_time': 0.010478100000000268, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [0.9761366782033913, 0.7154371835390743, 0.6641162139962572, 1.3022623843351087, 1.156092226432674, 0.7941466498865417, 1.1600779030048451, 1.9794544619187067], 'perf_time': 0.009460099999955673, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [36.23917589561905, 14.770660435054479, 27.803050491676927, 25.742319088711852, 20.020641836486032, 33.669019676730635, 21.108449696740767, 41.044144398282796], 'perf_time': 0.00940960000002633, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 35, 'reward': [31.839417471951016, 30.283984461091986, 38.16811394503422, 41.92561349135705, 136.69416585249067, 33.45371886221184, 31.85407440036571, 25.811502128689725], 'perf_time': 0.009313199999951394, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [0.20663847341483957, 0.16672815422885826, 0.3489913430386782, 0.47808569248852073, 0.16042113425826943, 0.2561107666595553, 0.3631967835527915, 0.40721387261598785], 'perf_time': 0.012593699999911223, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [2.674019973888956, 4.589971542480648, 0.26114792924173524, 9.98989858480429, 0, 4.746351541252301, 0.5242278441205657, 0], 'perf_time': 0.009321399999976165, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [7.838124482511865, 5.701355076248701, 69.81804138807873, 6.543402480797479, 31.484001675835806, 8.874034705418365, 3.926478759802011, 8.41995189026411], 'perf_time': 0.009423999999967236, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [7.838124482511865, 5.701355076248701, 60.54643356716658, 6.543402480797479, 31.484001675835806, 8.874034705418365, 3.926478759802011, 8.41995189026411], 'perf_time': 0.012031900000010864, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [7.838124482511865, 5.701355076248701, 32.240751448298205, 6.543402480797479, 31.484001675835806, 8.874034705418365, 3.926478759802011, 8.41995189026411], 'perf_time': 0.011989299999981995, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [7.838124482511865, 5.701355076248701, 41.09388275913095, 6.543402480797479, 31.484001675835806, 8.874034705418365, 3.926478759802011, 8.41995189026411], 'perf_time': 0.010483799999974508, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [7.838124482511865, 5.701355076248701, 31.19274786942054, 6.543402480797479, 31.484001675835806, 8.874034705418365, 3.926478759802011, 8.41995189026411], 'perf_time': 0.009564899999986665, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [7.838124482511865, 5.701355076248701, 39.32652772082985, 6.543402480797479, 31.484001675835806, 8.874034705418365, 3.926478759802011, 8.41995189026411], 'perf_time': 0.01074980000009873, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [7.838124482511865, 5.701355076248701, 48.66629529735079, 6.543402480797479, 31.484001675835806, 8.874034705418365, 3.926478759802011, 8.41995189026411], 'perf_time': 0.011489500000038788, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [7.838124482511865, 5.701355076248701, 66.98744099478523, 6.543402480797479, 31.484001675835806, 8.874034705418365, 3.926478759802011, 8.41995189026411], 'perf_time': 0.00784750000002532, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [7.838124482511865, 5.701355076248701, 36.01436705725894, 6.543402480797479, 31.484001675835806, 8.874034705418365, 3.926478759802011, 8.41995189026411], 'perf_time': 0.008679200000074161, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [5.975822863643783e-40, 9.157822052561078e-41, 2.3219054465490513e-39, 4.416508298283974e-40, 1.369151763696149e-39, 2.1124418466925213e-39, 8.632118441466678e-40, 2.8291378374250157e-40], 'perf_time': 0.008610999999973501, 'population': 20, 'numerosity': 32}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 3 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [0.3939336007808288, 0.30657110593793735, 1.4320962024617603, 1.4393563706654766, 103.68024824027466, 0.24427952651290927, 0.51799263929133, 0.7783920963701547], 'perf_time': 0.009600599999998849, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [14.36429628248614, 17.618559511013206, 29.82755167000621, 20.796208962065982, 43.54817083777106, 27.364653583802138, 44.63608279188097, 56.25487576102582], 'perf_time': 0.01199789999998302, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [1.2231566156226394, 1.198896737328952, 1.8388423401580876, 1.5508743395555986, 91.65552382583904, 1.0959807539117439, 1.2176738566570182, 3.226364933310272], 'perf_time': 0.009020200000009027, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [1.091090508918032, 2.5834148732853293, 2.905002211180386, 2.3963870211500415, 1.7076566631280892, 0.5956234128196712, 0.5259037754156591, 3.032576033726428], 'perf_time': 0.01066409999998541, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 43, 'reward': [45.999363521480404, 36.10413275515521, 34.52454519263275, 26.170877138489168, 134.23398745312443, 19.626452365140587, 21.525803610014183, 53.599571321301184], 'perf_time': 0.007963700000004792, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [0.007940209185246593, 0.02631715397072846, 0.011725947393704465, 0.030700872066220714, 12.413993317867915, 0.0024171484954359484, 0.0031109168435743267, 0.02784923531628476], 'perf_time': 0.00859390000005078, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [0.003409294400453157, 0.006036337911717578, 0.01028868348160849, 0.013244056340703358, 0.0050875774849466855, 0.002725064457990882, 0.0031326692890908535, 0.019264238023639364], 'perf_time': 0.009157599999980448, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [12.007285252461271, 13.684971906756498, 19.842138166826572, 21.91273013170089, 14.168761178706177, 13.008806959908965, 30.55801366203583, 15.759620232330887], 'perf_time': 0.008964399999968009, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 45, 'reward': [1.1289715281876225, 1.1330511507049863, 0.21438876224866527, 0.7980635023973811, 100.7060492568204, 0.806341101057434, 0.5479717729027538, 0.8841253571270075], 'perf_time': 0.008178499999985434, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 2.17050105711053, 1.9844434944079996, 0, 5.716447685699124, 5.313818778134275, 0.5858063681906329, 0], 'perf_time': 0.008459600000037426, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [3.1333107485370744, 13.76241568789928, 5.663462031471179, 0.02798704536184613, 112.62634628164794, 38.86177640708795, 77.91174336148904, 5.637092783641881], 'perf_time': 0.00935340000000906, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [3.1333107485370744, 13.76241568789928, 5.663462031471179, 0.02798704536184613, 112.62634628164794, 47.065075053804115, 98.2615169247047, 5.637092783641881], 'perf_time': 0.008709400000043388, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [3.1333107485370744, 13.76241568789928, 5.663462031471179, 0.02798704536184613, 112.62634628164794, 47.05048309556247, 98.64895581867124, 5.637092783641881], 'perf_time': 0.009128799999984949, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [3.1333107485370744, 13.76241568789928, 5.663462031471179, 0.02798704536184613, 112.62634628164794, 48.78406328784095, 101.57967231847181, 5.637092783641881], 'perf_time': 0.009354700000017147, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [3.1333107485370744, 13.76241568789928, 5.663462031471179, 0.02798704536184613, 112.62634628164794, 33.59076863060014, 33.820783390919296, 5.637092783641881], 'perf_time': 0.008815000000026885, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [3.1333107485370744, 13.76241568789928, 5.663462031471179, 0.02798704536184613, 112.62634628164794, 33.591851975224984, 32.456932004483946, 5.637092783641881], 'perf_time': 0.008884200000011333, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [3.1333107485370744, 13.76241568789928, 5.663462031471179, 0.02798704536184613, 112.62634628164794, 53.53236438044419, 64.52986441637857, 5.637092783641881], 'perf_time': 0.009529899999961344, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [3.1333107485370744, 13.76241568789928, 5.663462031471179, 0.02798704536184613, 112.62634628164794, 62.0217864525805, 32.05107501499913, 5.637092783641881], 'perf_time': 0.009074400000031346, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [3.1333107485370744, 13.76241568789928, 5.663462031471179, 0.02798704536184613, 112.62634628164794, 70.63801318691516, 32.14720440579728, 5.637092783641881], 'perf_time': 0.008600999999998749, 'population': 25, 'numerosity': 57}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 18, 'reward': [4.819056772359887e-41, 1.2436082719336002e-77, 4.825990615478481e-41, 0, 100.0, 1.7391418077044548e-40, 1.2956589228804703e-40, 1.7866755702002991e-40], 'perf_time': 0.003220499999997628, 'population': 27, 'numerosity': 27}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 4 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 8, 'reward': [1.474497530364636, 1.025777791136062, 1.0551646737675033, 0.5857829505287536, 118.80790832381055, 1.6854869388285092, 1.218881125419689, 0.7225538605952161], 'perf_time': 0.0013403000000380416, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [29.178606312945643, 8.84296838190046, 16.688206742158442, 19.79090548177882, 20.968217759746985, 39.82631034592296, 29.39555782605858, 12.117699095970494], 'perf_time': 0.009517400000049747, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 49, 'reward': [41.80401131312636, 19.394148249560587, 19.87186846604857, 9.850155487830637, 123.44683156574195, 62.22665452628357, 22.436668064438635, 25.07049150505641], 'perf_time': 0.00935750000007829, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [0.4516123006854404, 0.4261260715193558, 0.2311948577105668, 0.2842568888878777, 0.7334532111511431, 0.5673599978094553, 0.8436785032902497, 0.35629739741690564], 'perf_time': 0.010043999999993503, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [39.798859811052026, 60.62798636631365, 54.6170783567425, 8.137137197687446, 53.190129173031046, 42.85706728875605, 32.84487365690554, 68.6056738551353], 'perf_time': 0.010073600000055194, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [9.624338887357426, 9.766143282580723, 9.538711276619798, 7.466117623858, 11.477930486772646, 15.916262996163976, 27.46224718379961, 10.912457917667243], 'perf_time': 0.011466100000006918, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [19.08039801582798, 12.523855129670682, 12.028414074382912, 14.638053463731161, 10.983021152212848, 35.19215379837518, 33.16541140671916, 13.165911823036017], 'perf_time': 0.011709699999983059, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [16.802910470860073, 3.9687805987172062, 0.8752333923988131, 12.78488501958497, 3.7534434424430847, 7.5481340398424095, 5.867844250871336, 3.4302903998324945], 'perf_time': 0.009303400000021611, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [40.65377856129188, 54.12989158008246, 40.64340276994125, 59.18992180878552, 47.62734835369679, 29.45099460152677, 52.71671474065134, 34.288472572846224], 'perf_time': 0.009822700000086115, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 0, 0, 51.20988188887786, 0, 0, 0, 0], 'perf_time': 0.009427600000094571, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [1.6867416321448285, 4.617589710688832, 45.96559628723977, 0.005053942108265064, 25.25639962604689, 6.030291561093828, 5.114282778320304, 2.531120619656089], 'perf_time': 0.009664599999950951, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [1.6867416321448285, 4.617589710688832, 16.966378758054564, 0.005053942108265064, 59.01619606842499, 6.030291561093828, 5.114282778320304, 2.531120619656089], 'perf_time': 0.009312899999940782, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [1.6867416321448285, 4.617589710688832, 51.35026121305311, 0.005053942108265064, 4.336784423947715, 6.030291561093828, 5.114282778320304, 2.531120619656089], 'perf_time': 0.009070100000030834, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [1.6867416321448285, 4.617589710688832, 49.61092768383183, 0.005053942108265064, 39.078356313509445, 6.030291561093828, 5.114282778320304, 2.531120619656089], 'perf_time': 0.009893400000009933, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [1.6867416321448285, 4.617589710688832, 13.587105890349692, 0.005053942108265064, 47.600684595782035, 6.030291561093828, 5.114282778320304, 2.531120619656089], 'perf_time': 0.010476100000005317, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [1.6867416321448285, 4.617589710688832, 40.37907093766519, 0.005053942108265064, 17.124860116345598, 6.030291561093828, 5.114282778320304, 2.531120619656089], 'perf_time': 0.00862470000004123, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [1.6867416321448285, 4.617589710688832, 33.86868044567069, 0.005053942108265064, 39.673323839306605, 6.030291561093828, 5.114282778320304, 2.531120619656089], 'perf_time': 0.010334299999954055, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [1.6867416321448285, 4.617589710688832, 45.25254596349221, 0.005053942108265064, 59.1668591168193, 6.030291561093828, 5.114282778320304, 2.531120619656089], 'perf_time': 0.008956899999930101, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [1.6867416321448285, 4.617589710688832, 54.83449222022301, 0.005053942108265064, 18.75473050240964, 6.030291561093828, 5.114282778320304, 2.531120619656089], 'perf_time': 0.0095969999999852, 'population': 30, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [7.067690423992028e-40, 4.9737601128241956e-40, 7.482752198607512e-40, 1.0114105919575962e-39, 4.333513066696724e-40, 1.2597197871437968e-39, 1.0389891115186806e-39, 3.7832861817295384e-40], 'perf_time': 0.008126999999944928, 'population': 19, 'numerosity': 33}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 5 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 1, 'reward': [6.473269496193492, 6.046681658488924, 10.672717545060273, 5.280428430604473, 106.30379727883957, 4.796930863292842, 7.7055371897919525, 21.4336432079284], 'perf_time': 0.00024130000008426578, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [23.742151148545766, 55.07362070093257, 24.070892634334687, 41.58522007149768, 27.710597367558726, 41.33196987747116, 43.28714196292344, 5.766403974504584], 'perf_time': 0.00991199999998571, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [19.52256183099417, 40.65893088434865, 50.56942192575464, 15.558031275928176, 25.8506711125921, 41.330388298656786, 34.98807491656186, 39.18492201971024], 'perf_time': 0.008772799999974268, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [0.4688579423654539, 0.8438929067707437, 3.74549984610865, 0.5366554296886454, 1.0315166632843755, 1.0168714178639011, 1.337865412374984, 3.853673365779538], 'perf_time': 0.009530799999993178, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [4.065609590283871, 2.673643384365115, 2.93209801815511, 1.9568366753524407, 2.0177111563306465, 4.0678177865411875, 2.4333367022885555, 7.696840783721621], 'perf_time': 0.009416700000087985, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 8, 'reward': [1.7196751387728613, 1.3669004275390901, 1.6786131054115383, 1.3374405966604581, 101.69991526517722, 1.6024628306924937, 0.607782890533085, 1.05033080535726], 'perf_time': 0.0015051999999968757, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [9.2635408717393, 19.69533737555151, 14.247837699208329, 27.97056404654012, 44.23375530993221, 1.1842602523450305, 35.56436437182583, 0.31986899231347954], 'perf_time': 0.009585900000047332, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [12.637665088850788, 12.410775705732737, 17.54597661483462, 11.809284287157183, 15.03960584163866, 21.778158666390357, 11.393231948847294, 23.25291751838344], 'perf_time': 0.009283900000014, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [5.1239008919373585, 6.854517003812751, 6.732096584326645, 6.6781993002089965, 4.39637211384265, 8.369554241936845, 5.684701745632996, 1.7514561954887655], 'perf_time': 0.009956900000020141, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1.7630299327032248, 0, 0.948437219883711, 1.2487181088630184, 1.5604764894352858, 0, 2.5631992075044123, 0], 'perf_time': 0.00979460000007748, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [40.932759987840555, 0.5999937910159945, 0.948437219883711, 17.741240825831706, 80.69052417819785, 0.18534150605516853, 71.5383099591101, 0.14901813936303349], 'perf_time': 0.009856299999910334, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [40.932759987840555, 0.5999937910159945, 0.948437219883711, 17.741240825831706, 73.85080493569468, 0.18534150605516853, 66.47476320000223, 0.14901813936303349], 'perf_time': 0.009047000000009575, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [40.932759987840555, 0.5999937910159945, 0.948437219883711, 17.741240825831706, 81.88803630889628, 0.18534150605516853, 68.40427969533347, 0.14901813936303349], 'perf_time': 0.008693300000004456, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [40.932759987840555, 0.5999937910159945, 0.948437219883711, 17.741240825831706, 113.86229093879179, 0.18534150605516853, 68.79917061986173, 0.14901813936303349], 'perf_time': 0.01033370000004652, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [40.932759987840555, 0.5999937910159945, 0.948437219883711, 17.741240825831706, 69.2530566513236, 0.18534150605516853, 67.85416424387863, 0.14901813936303349], 'perf_time': 0.010009099999933824, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [40.932759987840555, 0.5999937910159945, 0.948437219883711, 17.741240825831706, 71.91985747869388, 0.18534150605516853, 93.92285327493443, 0.14901813936303349], 'perf_time': 0.010014599999976781, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [40.932759987840555, 0.5999937910159945, 0.948437219883711, 17.741240825831706, 79.50397667434733, 0.18534150605516853, 70.62744791777381, 0.14901813936303349], 'perf_time': 0.012339399999973466, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [40.932759987840555, 0.5999937910159945, 0.948437219883711, 17.741240825831706, 80.68567946736731, 0.18534150605516853, 71.29013268842102, 0.14901813936303349], 'perf_time': 0.013300399999934598, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [40.932759987840555, 0.5999937910159945, 0.948437219883711, 17.741240825831706, 94.44723445071685, 0.18534150605516853, 78.00480453199079, 0.14901813936303349], 'perf_time': 0.009045100000093953, 'population': 29, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [5.694668101856356e-40, 2.4792990365509988e-40, 8.912070257967542e-40, 7.158566095987325e-40, 9.832806522853248e-40, 7.7560455113488e-40, 9.489742121284216e-40, 2.15160255039726e-40], 'perf_time': 0.010384199999975863, 'population': 22, 'numerosity': 34}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 6 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [14.655789498041315, 30.785357064307874, 28.613979723592497, 45.99632332199871, 34.82595907875709, 14.290957761719367, 22.17404411673213, 16.652259067710702], 'perf_time': 0.010050500000033935, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [11.905077823063985, 34.584689351700135, 7.140859108026693, 37.17994841532367, 19.390921240216038, 30.755222576918985, 23.130820153127484, 10.386907406115114], 'perf_time': 0.008974599999987731, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [16.818587968078482, 4.549192015564075, 7.193240140149948, 8.878365635040808, 19.535505246207855, 12.166201313944772, 0.005179420269223841, 6.757119779546776], 'perf_time': 0.008598500000061904, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [15.895275519382338, 20.70668003932011, 17.449493530153042, 15.877031312160224, 9.332625681884151, 16.155038122582386, 14.654892161401971, 9.494714912909602], 'perf_time': 0.010380999999938467, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [3.0158522939845356, 3.0140786164983675, 1.8080160708906383, 1.5465391518325682, 0.47973742114494683, 2.4004615491017027, 8.815217210030324, 2.306186295626194], 'perf_time': 0.008907300000032592, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [6.819683429916944, 2.239174921468336, 1.9822156656630303, 12.53575767877244, 0.058341322477012264, 5.198140017520414, 3.863680064687902, 5.30592854420976], 'perf_time': 0.009293200000001889, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [63.337688606392916, 49.78314191916104, 58.31671284283142, 66.31547106040374, 58.75490148315475, 73.0943435790895, 59.50924923687081, 61.166007004443394], 'perf_time': 0.00801319999993666, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 14, 'reward': [5.47311794518065, 6.477518129438612, 10.051021040349486, 9.789921834230956, 183.886473205274, 5.986845142733395, 8.978281888609219, 7.065755465924511], 'perf_time': 0.0025184999999510183, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [0.015336355942549403, 0.03692631065949479, 0.0045111329835244105, 0.022802073374707497, 0.006567880722540237, 0.035293873771138934, 0.011549955747565965, 0.012708566988296364], 'perf_time': 0.010900399999968613, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0.09287683442164728, 0.09274740460510095, 0, 0.022487517223630675, 0.09821870996498111, 0.09260359369782725, 0, 0.1299172219194249], 'perf_time': 0.009605499999906897, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [22.79291580169713, 0.09274740460510095, 18.604671485653242, 13.29351138613127, 17.956588676623664, 79.7674126746224, 17.05831560725229, 5.267686381224979], 'perf_time': 0.009576799999990726, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [56.095565835414625, 0.09274740460510095, 18.604671485653242, 59.29927361454425, 9.653684577998433, 4.346477362611116, 15.357325787043283, 8.464621581693212], 'perf_time': 0.009640999999987798, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [85.99196484841143, 0.09274740460510095, 18.604671485653242, 59.29927361454425, 9.653684577998433, 4.346477362611116, 15.357325787043283, 8.464621581693212], 'perf_time': 0.012081899999998313, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [66.42243082504388, 0.09274740460510095, 18.604671485653242, 59.29927361454425, 9.653684577998433, 4.346477362611116, 15.357325787043283, 8.464621581693212], 'perf_time': 0.014017099999932725, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [63.65623813728336, 0.09274740460510095, 18.604671485653242, 59.29927361454425, 9.653684577998433, 4.346477362611116, 15.357325787043283, 8.464621581693212], 'perf_time': 0.007954599999948186, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [59.109795774055115, 0.09274740460510095, 18.604671485653242, 59.29927361454425, 9.653684577998433, 4.346477362611116, 15.357325787043283, 8.464621581693212], 'perf_time': 0.00981119999994462, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [90.35541065720363, 0.09274740460510095, 18.604671485653242, 59.29927361454425, 9.653684577998433, 4.346477362611116, 15.357325787043283, 8.464621581693212], 'perf_time': 0.00949049999996987, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [88.56931385929181, 0.09274740460510095, 18.604671485653242, 59.29927361454425, 9.653684577998433, 4.346477362611116, 15.357325787043283, 8.464621581693212], 'perf_time': 0.009340199999996912, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [81.26923679440492, 0.09274740460510095, 18.604671485653242, 59.29927361454425, 9.653684577998433, 4.346477362611116, 15.357325787043283, 8.464621581693212], 'perf_time': 0.010358300000007148, 'population': 31, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [6.637631044141416e-40, 7.471298525761159e-40, 6.6674864248539006e-40, 8.82275696760356e-40, 8.017542484535888e-40, 1.1540024361696362e-39, 8.244759821273698e-40, 1.3078458203845017e-40], 'perf_time': 0.009386100000028819, 'population': 19, 'numerosity': 35}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 7 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [0.5703062132148471, 0.2001089669022489, 0.4428149694324227, 0.21185188950377642, 0.40677744622618783, 0.7014698969254209, 0.11472270757368941, 1.189957510328072], 'perf_time': 0.00822809999999663, 'population': 21, 'numerosity': 49}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [50.39352341017293, 49.24170951227052, 53.60585064046111, 34.690121318949444, 39.42840040985215, 37.2316859732623, 82.3067016125805, 52.360291556077414], 'perf_time': 0.008279700000002777, 'population': 21, 'numerosity': 49}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [25.595868685986808, 29.628207917181516, 27.617956603941746, 24.975347269152184, 35.94639244304284, 38.22399992632246, 20.57630215427045, 11.258714249731412], 'perf_time': 0.008149899999921217, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [14.214714545327743, 34.425514921848254, 21.971678642736336, 28.71381267673112, 25.958999568015575, 57.660022026488, 32.25517077361088, 24.891129441036554], 'perf_time': 0.008648099999959413, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 6, 'reward': [0.0774376750938617, 0.08162010482154035, 0.051821661906244806, 0.05866613163871426, 100.08172545548018, 0.1253839831141192, 0.03377652209482812, 0.20182561651749825], 'perf_time': 0.0010852999999997337, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [10.325901854071864, 22.24618479845892, 8.534535316576013, 6.042685722351397, 8.437469321669294, 13.50410976150642, 7.608167438680601, 12.612001054287681], 'perf_time': 0.009029100000020662, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [0.4938609936957539, 0.8747452311491171, 1.0543692252948633, 0.7284278163356602, 0.5980392144361123, 5.722104467792831, 0.7075880630829107, 0.34965969081244563], 'perf_time': 0.009261599999945247, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [5.737539054222865, 2.0579764451391998, 2.3274738148958845, 2.0688967106782363, 2.7588905610042764, 3.4633656138578295, 2.76927081564162, 3.271506937783762], 'perf_time': 0.010330499999895437, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [34.25078119897177, 18.412169093431658, 34.072659912951295, 5.097873883385358, 54.80759827624837, 18.219887793722336, 14.925259871185713, 27.93911914046742], 'perf_time': 0.00953160000005937, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [0, 40.0719759928617, 0, 0, 0, 7.662429064496131, 0, 0], 'perf_time': 0.007615899999905196, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [0, 79.14629153428417, 0, 0, 0, 89.45081126460019, 0, 0], 'perf_time': 0.007853299999965202, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [0, 91.33553435700212, 0, 0, 0, 53.68524946516886, 0, 0], 'perf_time': 0.009026199999993878, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [0, 73.73443477539989, 0, 0, 0, 99.15819659481706, 0, 0], 'perf_time': 0.007962399999996705, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [0, 53.44083148895565, 0, 0, 0, 55.67509415166244, 0, 0], 'perf_time': 0.009871700000076089, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [0, 86.03044888087283, 0, 0, 0, 81.78206147422527, 0, 0], 'perf_time': 0.00929919999998674, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [0, 53.075276398804185, 0, 0, 0, 81.78206147422527, 0, 0], 'perf_time': 0.008496699999909652, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [0, 74.31270901242304, 0, 0, 0, 81.78206147422527, 0, 0], 'perf_time': 0.0165410999999267, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [0, 84.95069926807022, 0, 0, 0, 53.3533598927939, 0, 0], 'perf_time': 0.009093399999983376, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [0, 75.14686233042121, 0, 0, 0, 106.82110626026721, 0, 0], 'perf_time': 0.009013099999947372, 'population': 21, 'numerosity': 51}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 15, 'reward': [9.157569735971692e-41, 0, 9.045429029577503e-41, 9.157569735971692e-41, 100.0, 2.4625253376549222e-40, 1.3330105938324744e-40, 1.7333258150782746e-40], 'perf_time': 0.002920399999993606, 'population': 18, 'numerosity': 18}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 8 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [27.108032478531232, 41.32951318079379, 43.49748212831706, 30.594402386247236, 26.96134494939017, 28.321615716029353, 3.7854572308858407, 11.909392638725624], 'perf_time': 0.009355000000027758, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [48.35336716074551, 43.544421353278125, 50.2043324195407, 51.206285729840246, 84.87948234010119, 62.84748163922452, 34.65907627052591, 33.08382672153443], 'perf_time': 0.009441100000003644, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [43.004657290598125, 32.67742562467269, 24.918011113743756, 29.29723446254547, 24.88890643746081, 20.757822300606485, 19.799148282066035, 4.395981145742572], 'perf_time': 0.009282799999937197, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [3.636909759817597, 6.8025394647550845, 2.9487682658544863, 5.148256390856194, 7.856369763700172, 4.769339894021753, 13.047142901358221, 12.84093266160868], 'perf_time': 0.009907400000088273, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [0.3823098464471127, 1.6359380488239368, 0.26309808060246964, 0.43725232108134915, 3.807326993855475, 0.29175805038377123, 1.3228954501977586, 5.338668631049322], 'perf_time': 0.010149599999977, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [27.38667519030787, 43.19547209701821, 30.306153041673383, 28.16460981766502, 25.08317066450732, 26.57337232756036, 29.66549408674666, 44.369118942946876], 'perf_time': 0.02624439999999595, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [0.16665033117503586, 0.6949053432502605, 0.1315443512468846, 0.1837708180727025, 1.0261001640593654, 0.3900547121703674, 1.0063980318787125, 7.623912087965231], 'perf_time': 0.009652500000015607, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 50, 'reward': [1.2491772370890122, 1.69290670207763, 0.47178754501794945, 2.0275665282024997, 1.2700005255961395, 0.6263252523823443, 0.4173470176099841, 4.125146032928043], 'perf_time': 0.012192700000014156, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [16.142854659802452, 26.50237479849922, 30.057142379849516, 37.72024218709063, 17.700060994371835, 21.583087020613167, 16.457225723186156, 17.997359358250982], 'perf_time': 0.010872800000015559, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 1, 'reward': [0, 0, 0, 0, 106.73252755235019, 0, 0, 0], 'perf_time': 0.0002498000000059619, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [85.78397619320747, 24.166045089232064, 0, 0, 20.46886518771746, 0, 10.546828463548643, 0], 'perf_time': 0.010943600000018705, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [76.29777824466673, 24.166045089232064, 0, 0, 20.46886518771746, 0, 10.546828463548643, 0], 'perf_time': 0.009994399999982306, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [75.70596804459343, 24.166045089232064, 0, 0, 20.46886518771746, 0, 10.546828463548643, 0], 'perf_time': 0.009117999999944004, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [79.99638522355507, 24.166045089232064, 0, 0, 20.46886518771746, 0, 10.546828463548643, 0], 'perf_time': 0.009151200000019344, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [79.56474649385353, 24.166045089232064, 0, 0, 20.46886518771746, 0, 10.546828463548643, 0], 'perf_time': 0.014855500000066968, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [86.76519223498097, 24.166045089232064, 0, 0, 20.46886518771746, 0, 10.546828463548643, 0], 'perf_time': 0.012458499999979722, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [80.87858028188892, 24.166045089232064, 0, 0, 20.46886518771746, 0, 10.546828463548643, 0], 'perf_time': 0.009620000000040818, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [85.21946643963435, 24.166045089232064, 0, 0, 20.46886518771746, 0, 10.546828463548643, 0], 'perf_time': 0.00925310000002355, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [76.70582255523144, 24.166045089232064, 0, 0, 20.46886518771746, 0, 10.546828463548643, 0], 'perf_time': 0.009303599999952894, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [6.496177597077556e-40, 5.086839322926874e-40, 7.602083326968627e-40, 3.547688432768938e-40, 2.713490273308966e-40, 6.8211204413336704e-40, 1.1444830708173965e-39, 5.7971510940936614e-40], 'perf_time': 0.007540800000015224, 'population': 23, 'numerosity': 35}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 9 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 18, 'reward': [0.7888324454837391, 0.40623142161542825, 0.3866460452821894, 1.4095323864570555, 101.03257074911984, 0.3372304095795904, 1.1205520287053083, 0.6826561030317029], 'perf_time': 0.005416400000058275, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [0.013186918037932958, 0.020964214283539884, 0.02071615247163662, 0.037707405911130996, 0.044524025429071856, 0.0390680329231441, 0.019900430687588073, 0.016821438047952303], 'perf_time': 0.014696100000037404, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 50, 'reward': [6.884840822492536, 11.937305770377048, 11.33048689255622, 4.497092737913263, 10.494750888993515, 3.1570432990257857, 5.51885416912832, 7.213864639135361], 'perf_time': 0.009589000000005399, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 1600, 'steps_in_trial': 50, 'reward': [11.77368498327505, 11.791542449609015, 5.238005271402311, 29.362577637077713, 15.632546237110844, 32.91409650847286, 20.877561972062573, 30.01215840524046], 'perf_time': 0.011203900000055, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 50, 'reward': [36.644699775012434, 29.38187756376285, 23.509345628530696, 39.523449523009454, 45.98745151018309, 24.493851270237155, 13.084989681835614, 37.38545306326501], 'perf_time': 0.011208300000021154, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 50, 'reward': [30.56966101558201, 12.938193558114058, 25.466937394678343, 26.0775579114894, 45.67003549365863, 51.91385319273574, 43.98310878639512, 18.1457170433558], 'perf_time': 0.007927200000040102, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 2800, 'steps_in_trial': 50, 'reward': [37.15074296878649, 38.973166173349874, 36.13978697391083, 29.26956406498884, 51.350205356557495, 45.05392668499691, 38.63348262995895, 35.57155405132719], 'perf_time': 0.009461900000019341, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3200, 'steps_in_trial': 2, 'reward': [0.48038109484834823, 0.44345394125986015, 0.515262067221513, 0.764902351162291, 215.97183205832962, 0.9670283490786047, 0.9557879311925823, 0.6956402213459132], 'perf_time': 0.0006483999999318257, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 3600, 'steps_in_trial': 50, 'reward': [29.118664309693536, 7.781243618491357, 10.120442341776565, 12.03925944011652, 11.839825469781486, 10.951926961689479, 27.266868485761634, 10.590257840627446], 'perf_time': 0.007805599999983315, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [91.16865607332119, 0, 0, 0, 0, 0, 0, 0], 'perf_time': 0.010378000000059728, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [85.41304540427754, 15.840134545065286, 1.5575322165474643, 1.8203941471537046, 13.357372489753667, 3.5596878808910013, 1.5402116445539966, 91.24362700482129], 'perf_time': 0.012708100000054401, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [13.223997712281534, 12.595186728144895, 1.5575322165474643, 1.8203941471537046, 13.357372489753667, 7.9044519052185676, 1.5402116445539966, 11.371165259792338], 'perf_time': 0.00899919999994836, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [71.25175934668621, 10.20210128524246, 3.374711087313403, 30.665790827857215, 13.357372489753667, 28.808877750010772, 1.2475714656087895, 5.561336524285495], 'perf_time': 0.012210800000048039, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [91.68400837395916, 18.313157828721156, 3.374711087313403, 25.529136222898103, 13.357372489753667, 52.79458767723523, 1.2475714656087895, 82.35987265220898], 'perf_time': 0.010428100000012819, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 50, 'reward': [91.683949502455, 18.313157828721156, 3.374711087313403, 25.529136222898103, 13.357372489753667, 52.79458767723523, 1.2475714656087895, 53.90767032071146], 'perf_time': 0.008956300000022566, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 50, 'reward': [91.683949502455, 18.313157828721156, 3.374711087313403, 25.529136222898103, 13.357372489753667, 52.79458767723523, 1.2475714656087895, 86.53792740712672], 'perf_time': 0.009612199999992299, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [91.683949502455, 18.313157828721156, 3.374711087313403, 25.529136222898103, 13.357372489753667, 52.79458767723523, 1.2475714656087895, 84.56170431784484], 'perf_time': 0.008917400000086673, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 50, 'reward': [91.683949502455, 18.313157828721156, 3.374711087313403, 25.529136222898103, 13.357372489753667, 52.79458767723523, 1.2475714656087895, 91.76143964255668], 'perf_time': 0.008055300000023635, 'population': 28, 'numerosity': 60}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 50, 'reward': [91.683949502455, 18.313157828721156, 3.374711087313403, 25.529136222898103, 13.357372489753667, 52.79458767723523, 1.2475714656087895, 91.4892577088441], 'perf_time': 0.010001899999906527, 'population': 28, 'numerosity': 60}\n" - ] - } - ], - "source": [ - "cfg = Configuration(number_of_actions=8,\n", - " max_population=60,\n", - " gamma=0.9,\n", - " chi=1, # crossover\n", - " metrics_trial_frequency=100,\n", - " user_metrics_collector_fcn=xcs_metrics)\n", - "\n", - "df = avg_experiment(maze,\n", - " cfg,\n", - " number_of_tests=10,\n", - " explore_trials=4000,\n", - " exploit_metrics=1000)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialperf_timepopulationnumerosity
trial
043.30.01139321.832.3
10045.60.01257228.458.6
20050.00.01168628.358.6
30050.00.00973328.358.6
40029.70.00573428.358.6
50050.00.01126128.358.6
60050.00.01024728.358.6
70050.00.01108228.358.6
80050.00.00993328.358.6
90042.80.00812128.358.6
100044.70.00894928.358.8
110045.20.00907828.358.8
120049.90.00988828.358.8
130050.00.00942428.358.8
140046.20.00872928.358.8
150040.30.00875828.358.8
160050.00.01240328.358.8
170047.20.00931528.358.8
180049.30.00923128.358.8
190045.90.00906728.358.8
200044.90.00885628.358.8
210050.00.00951528.358.8
220045.20.00857728.358.8
230050.00.00939628.358.8
240045.80.01024928.358.8
250050.00.00970228.358.8
260047.80.00850128.358.8
270045.90.00860628.358.8
280050.00.00956128.358.8
290050.00.01061528.358.8
300050.00.00946028.358.8
310037.50.00714228.358.8
320040.10.00824228.358.8
330042.70.00864528.358.8
340050.00.00965528.358.8
350046.10.00873028.358.8
360049.50.00981428.358.8
370050.00.00949528.358.8
380045.20.00964128.358.8
390049.70.01243628.358.8
400045.10.00816728.358.8
410050.00.00973628.358.8
420050.00.00951828.358.8
430050.00.00985828.358.8
440050.00.01016828.358.8
450050.00.00969328.358.8
460050.00.00991028.358.8
470050.00.01087028.358.8
480050.00.00947328.358.8
490050.00.00938128.358.8
\n", - "
" - ], - "text/plain": [ - " steps_in_trial perf_time population numerosity\n", - "trial \n", - "0 43.3 0.011393 21.8 32.3\n", - "100 45.6 0.012572 28.4 58.6\n", - "200 50.0 0.011686 28.3 58.6\n", - "300 50.0 0.009733 28.3 58.6\n", - "400 29.7 0.005734 28.3 58.6\n", - "500 50.0 0.011261 28.3 58.6\n", - "600 50.0 0.010247 28.3 58.6\n", - "700 50.0 0.011082 28.3 58.6\n", - "800 50.0 0.009933 28.3 58.6\n", - "900 42.8 0.008121 28.3 58.6\n", - "1000 44.7 0.008949 28.3 58.8\n", - "1100 45.2 0.009078 28.3 58.8\n", - "1200 49.9 0.009888 28.3 58.8\n", - "1300 50.0 0.009424 28.3 58.8\n", - "1400 46.2 0.008729 28.3 58.8\n", - "1500 40.3 0.008758 28.3 58.8\n", - "1600 50.0 0.012403 28.3 58.8\n", - "1700 47.2 0.009315 28.3 58.8\n", - "1800 49.3 0.009231 28.3 58.8\n", - "1900 45.9 0.009067 28.3 58.8\n", - "2000 44.9 0.008856 28.3 58.8\n", - "2100 50.0 0.009515 28.3 58.8\n", - "2200 45.2 0.008577 28.3 58.8\n", - "2300 50.0 0.009396 28.3 58.8\n", - "2400 45.8 0.010249 28.3 58.8\n", - "2500 50.0 0.009702 28.3 58.8\n", - "2600 47.8 0.008501 28.3 58.8\n", - "2700 45.9 0.008606 28.3 58.8\n", - "2800 50.0 0.009561 28.3 58.8\n", - "2900 50.0 0.010615 28.3 58.8\n", - "3000 50.0 0.009460 28.3 58.8\n", - "3100 37.5 0.007142 28.3 58.8\n", - "3200 40.1 0.008242 28.3 58.8\n", - "3300 42.7 0.008645 28.3 58.8\n", - "3400 50.0 0.009655 28.3 58.8\n", - "3500 46.1 0.008730 28.3 58.8\n", - "3600 49.5 0.009814 28.3 58.8\n", - "3700 50.0 0.009495 28.3 58.8\n", - "3800 45.2 0.009641 28.3 58.8\n", - "3900 49.7 0.012436 28.3 58.8\n", - "4000 45.1 0.008167 28.3 58.8\n", - "4100 50.0 0.009736 28.3 58.8\n", - "4200 50.0 0.009518 28.3 58.8\n", - "4300 50.0 0.009858 28.3 58.8\n", - "4400 50.0 0.010168 28.3 58.8\n", - "4500 50.0 0.009693 28.3 58.8\n", - "4600 50.0 0.009910 28.3 58.8\n", - "4700 50.0 0.010870 28.3 58.8\n", - "4800 50.0 0.009473 28.3 58.8\n", - "4900 50.0 0.009381 28.3 58.8" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(df)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is hard to say but oking at amount of times algorithm reaches top steps (50) the steps might actually go down over trials. need to somehow smooth it to see it better" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df['steps_in_trial'].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Conclusion\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XCS_woods1_XNCS_metrics.ipynb b/XCS_Experiments/XCS_woods1_XNCS_metrics.ipynb new file mode 100644 index 0000000..84957d7 --- /dev/null +++ b/XCS_Experiments/XCS_woods1_XNCS_metrics.ipynb @@ -0,0 +1,538 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like:\n", + "\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[36mX\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n" + ] + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_woods\n", + "\n", + "maze = gym.make('Woods1-v0')\n", + "print(\"This is how maze looks like:\")\n", + "situation = maze.reset()\n", + "maze.render()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xcs import XCS, Configuration\n", + "from utils.xcs_utils import *\n", + "\n", + "cfg = Configuration(number_of_actions=8,\n", + " max_population=1600,\n", + " learning_rate=0.2,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.01,\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=1, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xcs_metrics)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 1, 'reward': 1000.0, 'perf_time': 0.00047239999999959537, 'population': 8, 'numerosity': 8, 'average_specificity': 12.75, 'fraction_accuracy': 1.0}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 2, 'reward': 1504.1548361035784, 'perf_time': 0.006607600000000602, 'population': 264, 'numerosity': 1603, 'average_specificity': 10.123518402994385, 'fraction_accuracy': 2.0223529468227565e-18}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 4, 'reward': 1255.6096947680135, 'perf_time': 0.00807600000000086, 'population': 221, 'numerosity': 1636, 'average_specificity': 7.235941320293398, 'fraction_accuracy': 9.116482292505803e-18}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 6, 'reward': 1130.2101830360214, 'perf_time': 0.018849900000001085, 'population': 269, 'numerosity': 1857, 'average_specificity': 9.990845449649973, 'fraction_accuracy': 5.7811789702408024e-18}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 7, 'reward': 1097.75560647724, 'perf_time': 0.012708599999999848, 'population': 237, 'numerosity': 1821, 'average_specificity': 7.786381109280615, 'fraction_accuracy': 4.1736124655626805e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 16, 'reward': 1004.1789444831745, 'perf_time': 0.04987759999999852, 'population': 264, 'numerosity': 2117, 'average_specificity': 8.61076995748701, 'fraction_accuracy': 7.256041304979413e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 17, 'reward': 1003.4381828772223, 'perf_time': 0.05070580000000291, 'population': 260, 'numerosity': 2129, 'average_specificity': 7.046970408642555, 'fraction_accuracy': 3.408548664653742e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 26, 'reward': 1000.2321215204573, 'perf_time': 0.0633636000000024, 'population': 270, 'numerosity': 2462, 'average_specificity': 8.03127538586515, 'fraction_accuracy': 5.9762455819293225e-18}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 5, 'reward': 1248.7320916970837, 'perf_time': 0.01531310000000019, 'population': 293, 'numerosity': 2670, 'average_specificity': 7.344194756554307, 'fraction_accuracy': 6.225021203088247e-18}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 11, 'reward': 1023.6607895777664, 'perf_time': 0.04438640000000049, 'population': 366, 'numerosity': 3615, 'average_specificity': 8.097648686030428, 'fraction_accuracy': 8.026765585997684e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 4, 'reward': 1000.0, 'perf_time': 0.010870700000005229, 'population': 414, 'numerosity': 4562, 'average_specificity': 11.068171854449803, 'fraction_accuracy': 2.996470273358862e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 4, 'reward': 1000.0, 'perf_time': 0.010870700000005229, 'population': 414, 'numerosity': 4562, 'average_specificity': 11.068171854449803, 'fraction_accuracy': 2.996470273358862e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 4, 'reward': 1460.7290129023108, 'perf_time': 0.011446999999996876, 'population': 399, 'numerosity': 4207, 'average_specificity': 9.655811742334205, 'fraction_accuracy': 2.8473404621539156e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 4, 'reward': 1460.7290129023108, 'perf_time': 0.011446999999996876, 'population': 399, 'numerosity': 4207, 'average_specificity': 9.655811742334205, 'fraction_accuracy': 2.8473404621539156e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': 1588.393744412426, 'perf_time': 0.0079521999999983, 'population': 371, 'numerosity': 3788, 'average_specificity': 9.538806758183737, 'fraction_accuracy': 3.082901510373173e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': 1588.393744412426, 'perf_time': 0.0079521999999983, 'population': 371, 'numerosity': 3788, 'average_specificity': 9.538806758183737, 'fraction_accuracy': 3.082901510373173e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 13, 'reward': 1000.000000425869, 'perf_time': 0.026899200000002566, 'population': 299, 'numerosity': 2466, 'average_specificity': 8.036090835360909, 'fraction_accuracy': 3.497510101315578e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 13, 'reward': 1000.000000425869, 'perf_time': 0.026899200000002566, 'population': 299, 'numerosity': 2466, 'average_specificity': 8.036090835360909, 'fraction_accuracy': 3.497510101315578e-17}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 3.6552529472225224e-05, 'perf_time': 0.05360910000000274, 'population': 218, 'numerosity': 1600, 'average_specificity': 9.2375, 'fraction_accuracy': 3.8878450171860393e-14}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 3.6552529472225224e-05, 'perf_time': 0.05360910000000274, 'population': 218, 'numerosity': 1600, 'average_specificity': 9.2375, 'fraction_accuracy': 3.8878450171860393e-14}\n" + ] + } + ], + "source": [ + "df = avg_experiment(maze=maze,\n", + " cfg=cfg,\n", + " number_of_tests=1,\n", + " explore_trials=1000,\n", + " exploit_trials=500)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timepopulationnumerosityaverage_specificityfraction_accuracy
trial
011000.0000000.0004728812.7500001.000000e+00
10021504.1548360.006608264160310.1235182.022353e-18
20041255.6096950.00807622116367.2359419.116482e-18
30061130.2101830.01885026918579.9908455.781179e-18
40071097.7556060.01270923718217.7863814.173612e-17
500161004.1789440.04987826421178.6107707.256041e-17
600171003.4381830.05070626021297.0469703.408549e-17
700261000.2321220.06336427024628.0312755.976246e-18
80051248.7320920.01531329326707.3441956.225021e-18
900111023.6607900.04438636636158.0976498.026766e-17
100041000.0000000.010871414456211.0681722.996470e-17
110041460.7290130.01144739942079.6558122.847340e-17
120031588.3937440.00795237137889.5388073.082902e-17
1300131000.0000000.02689929924668.0360913.497510e-17
1400500.0000370.05360921816009.2375003.887845e-14
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time population numerosity \\\n", + "trial \n", + "0 1 1000.000000 0.000472 8 8 \n", + "100 2 1504.154836 0.006608 264 1603 \n", + "200 4 1255.609695 0.008076 221 1636 \n", + "300 6 1130.210183 0.018850 269 1857 \n", + "400 7 1097.755606 0.012709 237 1821 \n", + "500 16 1004.178944 0.049878 264 2117 \n", + "600 17 1003.438183 0.050706 260 2129 \n", + "700 26 1000.232122 0.063364 270 2462 \n", + "800 5 1248.732092 0.015313 293 2670 \n", + "900 11 1023.660790 0.044386 366 3615 \n", + "1000 4 1000.000000 0.010871 414 4562 \n", + "1100 4 1460.729013 0.011447 399 4207 \n", + "1200 3 1588.393744 0.007952 371 3788 \n", + "1300 13 1000.000000 0.026899 299 2466 \n", + "1400 50 0.000037 0.053609 218 1600 \n", + "\n", + " average_specificity fraction_accuracy \n", + "trial \n", + "0 12.750000 1.000000e+00 \n", + "100 10.123518 2.022353e-18 \n", + "200 7.235941 9.116482e-18 \n", + "300 9.990845 5.781179e-18 \n", + "400 7.786381 4.173612e-17 \n", + "500 8.610770 7.256041e-17 \n", + "600 7.046970 3.408549e-17 \n", + "700 8.031275 5.976246e-18 \n", + "800 7.344195 6.225021e-18 \n", + "900 8.097649 8.026766e-17 \n", + "1000 11.068172 2.996470e-17 \n", + "1100 9.655812 2.847340e-17 \n", + "1200 9.538807 3.082902e-17 \n", + "1300 8.036091 3.497510e-17 \n", + "1400 9.237500 3.887845e-14 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX8AAAEJCAYAAAB8Pye7AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA+y0lEQVR4nO3dd3ic1ZX48e9RL1ZvtqzqJndJtmRjMGBCKIEESAi9JUCyIRBIXciGTTYh2SW/kBBSWTYQSqhJKAkk1IAxzbZc5N4tWXKVbHVZ/fz+mJGRbdmekWfmHWnO53n0aObVzLxHsnz0zr3nniuqijHGmNAS5nQAxhhjAs+SvzHGhCBL/sYYE4Is+RtjTAiy5G+MMSHIkr8xxoQgvyZ/EXlERPaJyJoBx+4RkVUislJEXheRbH/GYIwx5mjizzp/ETkDaAUeV9Xp7mOJqtrsvn07MFVVv+K3IIwxxhwlwp8vrqrvikjBEceaB9yNBzz665Oenq4FBQUnfJwxxpiPLVu2rF5VM4487tfkfywi8hPgeqAJOMuT5xQUFFBRUeHXuIwxZqQRkerBjjsy4auq31PVXOBJ4LZjPU5EviwiFSJSUVdXF7gAjTFmhHO62ucp4NJjfVFVH1LVMlUty8g46l2LMcaYIQp48heRiQPuXgRsCHQMxhgT6vw65i8iTwMLgHQRqQV+AFwgIkVAH1ANWKWPMSGku7ub2tpaOjo6nA5lRImJiSEnJ4fIyEiPHu/vap+rBjn8sD/PaYwJbrW1tSQkJFBQUICIOB3OiKCq7N+/n9raWgoLCz16jtNj/saYENPR0UFaWpolfh8SEdLS0rx6N2XJ3xgTcJb4fc/bn+mIT/6vrNrNYx9UOR2GMcYElRGf/N9cv5df/2sLtl2lMSYQLrjgAhobGwH41a9+xZQpU7jmmmv429/+xr333nvc55566qkAVFVV8dRTT/k1TkdW+AZSeUEqL6zYSdX+dgrT450Oxxgzwv3jH/84dPt3v/sd//znPw9Nwl500UXHfe4HH3wAfJz8r776ar/FOeKv/OcUpgCwdPsBhyMxxgSLtrY2LrzwQoqLi5k+fTrPPvssBQUF3HnnncyZM4c5c+awZcsWAOrq6rj00kspLy+nvLyc999/H4DW1la++MUvMmPGDGbOnMlf//pXwNWKpr6+nq985Sts27aNiy66iPvvv59HH32U225zNTTYu3cvn/3sZykuLqa4uPhQ0h81ahQAd911F4sWLaKkpIT777+f008/nZUrVx6K/7TTTmPVqlUn9TMY8Vf+4zNGkRofxZKqA1xenut0OMaYAX7497Ws29V84gd6YWp2Ij/4zLTjPubVV18lOzubV155BYCmpibuvPNOEhMTWbJkCY8//jhf//rXefnll7njjjv4xje+wfz589mxYwfnnXce69ev55577iEpKYnVq1cD0NDQcNg5HnzwQV599VXefvtt0tPTefTRRw997fbbb+fMM8/khRdeoLe3l9bW1sOee++993Lffffx8ssvA5Camsqjjz7KL3/5SzZt2kRnZyczZ848qZ/TiL/yFxHK8lNYWmVX/sYYlxkzZvDmm29y5513smjRIpKSkgC46qqrDn3+8MMPAXjzzTe57bbbKCkp4aKLLqK5uZmWlhbefPNNbr311kOvmZKS4vH5//Wvf3HLLbcAEB4efuj8x3LZZZfx8ssv093dzSOPPMIXvvAFb77dQY34K3+AOYWpvL5uL3ubO8hKjHE6HGOM24mu0P1l0qRJLFu2jH/84x9897vf5dxzzwUOL5fsv93X18eHH35IbGzsYa+hqgErWY2Li+Occ87hpZde4rnnnvNJh+MRf+UPruQPsMTG/Y0xwK5du4iLi+Paa6/l29/+NsuXLwfg2WefPfR53rx5AJx77rn85je/OfTc/rH3I48fOexzPGeffTa///3vAejt7aW5+fChr4SEBFpaWg47dvPNN3P77bdTXl5Oamqqx+c6lpBI/lPHJBIfFW5DP8YYAFavXs2cOXMoKSnhJz/5CXfffTcAnZ2dzJ07lwceeID7778fcJVrVlRUMHPmTKZOncqDDz4IwN13301DQwPTp0+nuLiYt99+2+PzP/DAA7z99tvMmDGD2bNns3bt2sO+PnPmTCIiIiguLj4Ux+zZs0lMTOSLX/yiL34E/t3G0ZfKysr0ZN7qXPfwYupaOnn162f4MCpjjLfWr1/PlClTnA7jKP0bRqWnpzsdyqB27drFggUL2LBhA2Fhg1+3D/azFZFlqlp25GND4sofXPX+G/e20HSw2+lQjDHGK48//jhz587lJz/5yTETv7dCKvmrwrJqG/oxxhytqqoqaK/6r7/+empqarjssst89pohk/xL85KJDBeWbPd8UsYY4x/DZbh5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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df['average_specificity'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"specificity\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAiAUlEQVR4nO3de5hU9Z3n8fe3b1Rz6ULkUsUt4KwbQRHFRgluIk6UqKOgjztPdIi3hLCM4iabx1USE2PMZjIxJmaMJjzEMRjHgDNqlLioUUfjJmoEvIs3vETbBkGQa9vQl+/+cU43RdvdVFf36bqcz+t5+qHOpao+3UB9+5zf+Z2vuTsiIhJfZfkOICIi+aVCICIScyoEIiIxp0IgIhJzKgQiIjFXke8APTV8+HCfMGFCvmOIiBSVtWvXfujuIzrbVnSFYMKECaxZsybfMUREioqZ/bWrbTo1JCIScyoEIiIxp0IgIhJzRTdGICK5aWpqoq6ujsbGxnxHkQglEgnGjh1LZWVl1s9RIRCJibq6OoYMGcKECRMws3zHkQi4O1u2bKGuro6JEydm/bzITg2Z2S1mtsnMXupiu5nZDWa23sxeMLNpUWUREWhsbOTggw9WEShhZsbBBx/c46O+KMcIlgGndLP9VODQ8GsB8MsIs4gIqAjEQC5/x5EVAnd/HNjazS5zgd944ClgqJmlo8rz6sYd/PjBV9ne0BTVW4iIFKV8XjU0BngvY7kuXPcJZrbAzNaY2ZrNmzfn9GZ/3dLATY++ybtbG3J6voj03g033MCkSZOYN29er19r2bJl1NfXty/Pnz+fdevW9fp14yifhaCz45dOu+S4+1J3r3X32hEjOp0hfUDpZAKADds/zun5ItJ7v/jFL1i1ahW33377fuubm5t7/FodC8HNN9/M5MmTe52xP7W0tOQ7ApDfQlAHjMtYHgvUd7Fvr6WT1QBs3KFL50TyYeHChbz11lvMmTOH66+/nquvvpoFCxYwe/Zszj//fN555x0++9nPMm3aNKZNm8YTTzzR/txrr72WKVOmMHXqVBYvXsydd97JmjVrmDdvHkcddRQff/wxs2bNar/9zPLly5kyZQpHHHEEV1xxRfvrDB48mCuvvJKpU6cyY8YMPvjgg0/kfPrpp5k5cyZHH300M2fO5LXXXgOCD+3LLruMKVOmcOSRR/Lzn/8cgNWrVzNz5kymTp3Ksccey86dO1m2bBmLFi1qf83TTz+dxx57rD3DVVddxXHHHceTTz7JNddcw/Tp0zniiCNYsGABbV0j169fz0knncTUqVOZNm0ab775Jueddx733ntv++vOmzePlStX9vrvJp+Xj64EFpnZCuA4YLu7b4jqzQ4eVEVluVG/TYVA5Hu/f5l19Tv69DUnj67hu2cc3uX2JUuW8MADD/Doo48yfPhwrr76atauXcuf/vQnqquraWho4KGHHiKRSPDGG29w7rnnsmbNGu6//37uuece/vKXvzBw4EC2bt3KsGHDuPHGG7nuuuuora3d733q6+u54oorWLt2LQcddBCzZ8/mnnvu4cwzz2T37t3MmDGDH/zgB1x++eX86le/4tvf/vZ+zz/ssMN4/PHHqaio4OGHH+Zb3/oWd911F0uXLuXtt9/m2WefpaKigq1bt7J3716++MUvcscddzB9+nR27NhBdXV1tz+n3bt3c8QRR3DNNdcEP7fJk7nqqqsAOO+887jvvvs444wzmDdvHosXL+ass86isbGR1tZW5s+fz/XXX8/cuXPZvn07TzzxBLfeemsuf137iawQmNlyYBYw3MzqgO8ClQDuvgRYBZwGrAcagIuiygJQVmaMqkmwUaeGRArGnDlz2j84m5qaWLRoEc899xzl5eW8/vrrADz88MNcdNFFDBw4EIBhw4Z1+5qrV69m1qxZtJ1GnjdvHo8//jhnnnkmVVVVnH766QAcc8wxPPTQQ594/vbt27ngggt44403MDOampracyxcuJCKior2HC+++CLpdJrp06cDUFNTc8Dvuby8nLPPPrt9+dFHH+Xaa6+loaGBrVu3cvjhhzNr1izef/99zjrrLCCYJAZwwgkncMkll7Bp0ybuvvtuzj777PY8vRFZIXD3cw+w3YFLonr/zqSTCTZs1xGBSHe/ufenQYMGtT++/vrrGTVqFM8//zytra3tH37u3qNLIttOrXSmsrKy/bXKy8s7HZv4zne+w4knnsjvfvc73nnnHWbNmtVljq6yVVRU0Nra2r6ceV1/IpGgvLy8ff3FF1/MmjVrGDduHFdffTWNjY3dfg/nnXcet99+OytWrOCWW27pcr+eiNW9hlLJao0RiBSo7du3k06nKSsr47bbbmsfSJ09eza33HILDQ3BFX9btwZXpQ8ZMoSdO3d+4nWOO+44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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['fraction_accuracy'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"fraction accuracy\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEGCAYAAACUzrmNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA5VklEQVR4nO3deXxU1fn48c+TPYQkQAgQEiDsOwKJbCqoyCIi4oKFYkWttbXan0vV6rfV1ra2uFQtWrW2Ku4LWhVXQARBVoMsmhAgYQ2QhUBCQsg2c35/3BsYQiAJZHInmef9es1r7j1z79xnhnCfueece44YY1BKKaVOJ8DpAJRSSvk+TRZKKaVqpclCKaVUrTRZKKWUqpUmC6WUUrUKcjoAb2nbtq1JTEx0OgyllGpS1q1bd8AYE1u9vNkmi8TERFJSUpwOQymlmhQR2VVTuVZDKaWUqpUmC6WUUrXSZKGUUqpWzbbNoiYVFRVkZWVRWlrqdCjqLISFhZGQkEBwcLDToSjlN/wqWWRlZREZGUliYiIi4nQ46gwYY8jPzycrK4uuXbs6HY5SfsOvqqFKS0uJiYnRRNGEiQgxMTF6dahUI/OrZAFoomgG9N9Qqcbnd8lCKeWsA8VlvLN2N2WVLqdDUfWgyUKd0vz585k9ezYAH330EWlpaQ5HpJqDhz7+kfv/9wNT/7WSrTlFToej6kiThR+prKys1/ZTpkzh/vvvBzRZqIaxKauAz3/IZny/9uQeLuXyZ77l1ZU70UnYfJ8mi0a2c+dO+vbtyy9+8Qv69+/P+PHjOXr0KBdeeOGx4UkOHDhA1bhWc+fOZerUqVx++eV07dqVZ599lieffJIhQ4YwYsQIDh48CEBmZiYTJ04kKSmJCy64gPT0dABuuOEG7r77bi666CJ+97vfsWHDBkaMGMGgQYO48sorOXToEABz5syhX79+DBo0iOnTpx879u23387KlSuZP38+9957L4MHDyYzM5OhQ4ce+0zbtm0jKSmpsb5C1YQ9vmALrVsE88S15/DlnaMZ1T2GP85P5ca535FbpJ0WfJlfdZ319PAnqaTtO9yg79mvYxR/vLx/rdtt27aNt99+m//85z9ce+21fPDBB6fd/scff2T9+vWUlpbSo0cPHn30UdavX89dd93Fa6+9xp133sktt9zCCy+8QM+ePVmzZg2//vWv+frrrwHYunUrX331FYGBgQwaNIhnnnmGMWPG8NBDD/Hwww/z9NNPM3v2bHbs2EFoaCgFBQUnHH/UqFFMmTKFyZMnc8011wAQHR3Nhg0bGDx4MK+88go33HDDGX1nyn+szDzA8m0H+P2kvkSFBUMYvHzDuby+ehePfLaZS59ezmPXDGJs3/ZOh6pqoFcWDujatSuDBw8GICkpiZ07d552+4suuojIyEhiY2OJjo7m8ssvB2DgwIHs3LmT4uJiVq5cybRp0xg8eDC//OUv2b9//7H9p02bRmBgIIWFhRQUFDBmzBgAZs2axbJlywAYNGgQM2fO5I033iAoqPbfEDfffDOvvPIKLpeLd999l5/+9Kdn8E0of2GM4bEvtxAXHcbPRnY5Vi4iXD8ykU9/cz7tosL4+asp/OGjHzharo3fvsZvryzqcgXgLaGhoceWAwMDOXr0KEFBQbjdboCT7iHw3D4gIODYekBAAJWVlbjdblq1asWGDRtqPF5EREStMX322WcsW7aM+fPn85e//IXU1NTTbn/11Vfz8MMPc/HFF5OUlERMTEytx1D+a2FaDhv2FDD7qoGEBQee9HrP9pF8dNso/rFwKy8u286qzHz+OX0IA+KjHYhW1USvLHxEYmIi69atA+D999+v175RUVF07dqVefPmAdavuI0bN560XXR0NK1bt2b58uUAvP7664wZMwa3282ePXu46KKLeOyxxygoKKC4uPiEfSMjIykqOt5zJSwsjAkTJnDrrbdy44031ite5V9cbsMTC7bQrW0E1yQlnHK70KBA/m9SX968eThHylxc+dwKXvgmE5dbG799gSYLH3HPPffw/PPPM2rUKA4cOFDv/d98801eeuklzjnnHPr378/HH39c43avvvoq9957L4MGDWLDhg089NBDuFwurrvuOgYOHMiQIUO46667aNWq1Qn7TZ8+nccff5whQ4aQmZkJwMyZMxERxo8fX+94lf/4aP1etuUW89vxvQkKrP2Uc16Ptnx55wVc0rc9s79IZ+Z/V7Ov4GgjRKpOR5prl7Xk5GRTffKjzZs307dvX4cian6eeOIJCgsL+ctf/tLox9Z/y6ahrNLFxU98Q+uIYObfdj4BAXW/+94Yw7x1WfxpfipBAcLfrhrI5EEdvRitAhCRdcaY5Orlfttmoc7OlVdeSWZm5rEeV0rV5O01u9lbcJS/XzWw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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['numerosity', 'population']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"numerosity\", \"population\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['steps_in_trial'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"steps\"])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XCS_woods2.ipynb b/XCS_Experiments/XCS_woods2.ipynb deleted file mode 100644 index d31d50e..0000000 --- a/XCS_Experiments/XCS_woods2.ipynb +++ /dev/null @@ -1,412 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### XCS in Woods 14\n", - "This experiment is meant to replicate An Analysis of Generalization in the XCS Classifier System Wood14 version without generalization" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "# logging \n", - "import logging\n", - "logging.basicConfig(level=logging.INFO)\n", - "logger = logging.getLogger(__name__)\n", - "\n", - "import pandas as pd\n", - "import numpy as np\n", - "import matplotlib.pyplot as plt\n", - "\n", - "# environment setup\n", - "import gym\n", - "# noinspection PyUnresolvedReferences\n", - "import gym_woods\n", - "\n", - "from lcs.agents.xcs import XCS, Configuration\n", - "from utils.xcs_utils import *" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "This is how maze looks like\n", - "\n", - "['.', '.', '.', '.', '.', 'O', 'F', '.']\n", - "\n", - "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[36mX\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n" - ] - } - ], - "source": [ - "maze = gym.make('Woods2-v0')\n", - "print(\"This is how maze looks like\")\n", - "situation = maze.reset()\n", - "print(type(situation))\n", - "print(situation)\n", - "maze.render()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "scrolled": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 41, 'reward': [4.589021266313866e-40, 4.870406642378066e-40, 5.959442979254628e-40, 6.860782503982207e-40, 3.0171325838869193e-40, 6.489390878997436e-40, 3.94250424467599e-40, 100.0], 'perf_time': 0.006837500000017371, 'population': 24, 'numerosity': 36}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 0 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 41, 'reward': [31.227858902627208, 20.98261270552403, 25.696276955844596, 19.439123118080225, 45.11857677023246, 105.8820921485077, 37.14719066103274, 51.33684556639302], 'perf_time': 0.006837500000017371, 'population': 24, 'numerosity': 36}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [42.5554792144864, 47.708236760051335, 40.03833988291377, 128.93834245958055, 144.4562445233263, 50.64753390375941, 135.52504055505057, 24.29046353103902], 'perf_time': 0.029150899999990543, 'population': 90, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 25, 'reward': [6.638584357586653, 14.597593415761454, 5.7478318392997245, 21.540128971979502, 8.548421019481717, 22.27742127894104, 13.946145547387852, 192.87769268132132], 'perf_time': 0.01547130000000152, 'population': 114, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [7.499219163798673, 10.486150168186573, 16.67964194068747, 19.525966536648838, 16.563205378316304, 111.72284607509269, 23.922069364939926, 16.198794109117124], 'perf_time': 0.03213629999999057, 'population': 132, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 2, 'reward': [39.100282668019375, 38.465392754987505, 63.84836125785483, 45.044492603348345, 293.74319441980606, 64.50916419994435, 39.62575040223986, 33.61545585122868], 'perf_time': 0.002739599999983966, 'population': 157, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 2, 'reward': [114.49715892582802, 103.74794500644748, 72.2367128729825, 133.59798332268235, 175.27126743420618, 256.01866890453636, 183.91779816028497, 107.53674306173893], 'perf_time': 0.002739599999983966, 'population': 157, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 34, 'reward': [68.89895352171446, 74.59482727537517, 52.0916882942894, 52.33042353080907, 64.06649621877034, 58.74127474820169, 52.54095975547141, 39.7281186921704], 'perf_time': 0.028834400000022242, 'population': 161, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 12, 'reward': [53.0770669886775, 51.220628101228144, 58.84972301504349, 35.12395860956079, 42.90848982133214, 93.01934429703019, 141.02040479082711, 80.83791767338981], 'perf_time': 0.010869299999995974, 'population': 159, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [31.565796068849284, 19.66426069711489, 35.3892363620897, 50.31856273731795, 65.76219587565423, 143.19228374866384, 42.984207630084406, 23.799987948846056], 'perf_time': 0.039542100000005576, 'population': 142, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 8, 'reward': [0.12352154796998, 0, 0, 7.682467441847171, 0, 100.12352154796999, 7.381198386348389, 7.381198386348389], 'perf_time': 0.0034471000000166896, 'population': 144, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 8, 'reward': [20.196598420995223, 6.694095781018486, 13.90345253236297, 20.940648896534135, 129.10786430721893, 11.98578524667543, 80.91287257621939, 27.627471474026084], 'perf_time': 0.0034471000000166896, 'population': 144, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 8, 'reward': [3.082926071716781, 8.516430229493823, 5.864258064333518, 3.1688261498785013, 5.251602172055398, 13.53324653936051, 19.66179735072489, 8.64500383951148], 'perf_time': 0.0034471000000166896, 'population': 144, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 8, 'reward': [15.202742837883187, 1.3104296565473565, 2.3179061728700203, 1.0717305875161154, 4.488074086724723, 2.258294354697086, 5.573037812807293, 4.454248140723558], 'perf_time': 0.0034471000000166896, 'population': 144, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 8, 'reward': [0.4276984628455858, 1.3510370586517777, 1.186917452005985, 0.67655205874641, 11.732719086614539, 3.7711268975668224, 35.57858304691315, 0.9038472975688421], 'perf_time': 0.0034471000000166896, 'population': 144, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [9.971231157773431, 62.99698306909121, 0.8256065304719682, 22.762132134260142, 13.018894294650904, 0.9113464085333559, 26.948294338105647, 3.526009895771219], 'perf_time': 0.025946000000004688, 'population': 148, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [7.717436583882668, 96.66777075471138, 0.9773191701485545, 37.10669078055416, 79.62791656303942, 6.861311301676159, 31.41929455236082, 3.526009895771219], 'perf_time': 0.025946000000004688, 'population': 148, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [7.717436583882668, 7.465342202437859, 1.726966514408943, 130.6769099474419, 79.62791656303942, 6.886589032497902, 31.41929455236082, 12.844478709090573], 'perf_time': 0.025946000000004688, 'population': 148, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [7.717436583882668, 96.15137294975126, 2.4554305297172574, 76.24987149962918, 12.092199426458707, 6.886589032497902, 6.694079907090284, 12.844478709090573], 'perf_time': 0.025946000000004688, 'population': 148, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [7.05748251666995, 7.408117109225682, 2.9348509481074814, 191.24092788705218, 10.882984655669667, 6.886589032497902, 6.694079907090284, 12.844478709090573], 'perf_time': 0.025946000000004688, 'population': 148, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [6.2280206657155e-40, 7.1974355919257256e-40, 2.437105947764535e-40, 4.653815734456753e-40, 6.418565469885413e-40, 8.236964861005169e-40, 6.985247389210972e-40, 4.6834533287214085e-40], 'perf_time': 0.009961199999992232, 'population': 29, 'numerosity': 44}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 1 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [10.841269563963595, 16.223665408382505, 11.093233251479349, 55.05709858299984, 62.75267162802808, 9.505721233233034, 9.749489655247443, 14.215314692654403], 'perf_time': 0.009961199999992232, 'population': 29, 'numerosity': 44}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 36, 'reward': [18.162413204707207, 14.685764854650428, 13.401277311561138, 69.60838013815156, 209.03987971540468, 176.65922846175837, 11.607676976558064, 15.522432202091014], 'perf_time': 0.02381040000000212, 'population': 125, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 22, 'reward': [38.33530634283262, 30.713882965096836, 54.24454234469141, 26.33987152975941, 133.3448486336064, 19.73657522561052, 45.407845974176695, 23.035744631821466], 'perf_time': 0.01633329999998523, 'population': 135, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 6, 'reward': [37.255400146238316, 35.73879137331795, 46.61096201848053, 80.1610258682077, 261.9957361950339, 82.2900458081408, 95.58714407864491, 28.58108766520924], 'perf_time': 0.006248300000009976, 'population': 142, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [23.177771745759085, 26.451190345252137, 15.868746096653902, 47.289476407393565, 30.585782048190694, 62.17300121059529, 31.861481182991195, 45.79602019469192], 'perf_time': 0.044525099999987106, 'population': 166, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': [48.58036621658319, 33.91315053446508, 41.61098941953001, 245.21586853107942, 120.39359104569985, 72.5511565522055, 53.40735685965471, 101.62585224968899], 'perf_time': 0.044525099999987106, 'population': 166, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 27, 'reward': [11.904110037447104, 12.580645116826432, 15.81469154543553, 20.480503925554057, 17.758088730063605, 20.999403455995438, 19.66781907490802, 27.160474617260412], 'perf_time': 0.02872470000002636, 'population': 176, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 16, 'reward': [52.67972148963402, 38.702395341302505, 32.102780591998496, 143.95528573854799, 47.038759004235665, 49.72289559124075, 236.14106319599256, 43.185771933845054], 'perf_time': 0.01272679999999582, 'population': 162, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 50, 'reward': [44.087732273561336, 40.046942087440804, 43.03049386438283, 43.23698584837458, 167.7914257272011, 188.81023180050374, 45.30935068578546, 56.96125680143945], 'perf_time': 0.055519699999990735, 'population': 160, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [21.044382451812083, 12.454856916988494, 15.6850999079917, 0, 0, 29.992138464646978, 0, 9.08939203321768], 'perf_time': 0.02203360000001453, 'population': 147, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1.4435994483098908, 1.5276602743084151, 4.466685658109856, 2.5954497566774584, 23.336379016505184, 12.535867884825532, 3.5198644809900026, 3.506188481876729], 'perf_time': 0.02203360000001453, 'population': 147, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [1.938319446115079, 1.5912134971996523, 2.3025012226556933, 2.9611904433502394, 2.1426622861039726, 3.324382187093801, 2.6359458043032533, 2.0941994611987886], 'perf_time': 0.02203360000001453, 'population': 147, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [3.135018792840201, 4.198678434662753, 1.7442987432651211, 0.7416470364458752, 8.193757596786462, 35.59320630398009, 9.739755532475629, 2.98132423155632], 'perf_time': 0.02203360000001453, 'population': 147, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [15.340827532452467, 27.166988320043345, 5.896581239002648, 20.259847905179907, 14.310626726401669, 4.252596450368774, 28.437476587133382, 32.47982203482833], 'perf_time': 0.02203360000001453, 'population': 147, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [4.990582646306038, 47.30113819050466, 25.58777414208589, 39.94207390282566, 26.4261199334998, 4.132627048888231, 17.068140901691898, 37.356204933742475], 'perf_time': 0.022635000000008176, 'population': 147, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [29.457312286172304, 39.102073301820255, 82.74805797565774, 22.224504802759487, 31.97883777385442, 117.78919079474184, 65.49898273482606, 47.310951149443895], 'perf_time': 0.022635000000008176, 'population': 147, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [29.457312286172304, 34.31421500613699, 36.328657327536, 22.224504802759487, 37.1347862801926, 117.78919079474184, 65.49898273482606, 47.310951149443895], 'perf_time': 0.022635000000008176, 'population': 147, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [29.457312286172304, 75.84764020867995, 55.87418706624759, 53.56670000668446, 60.68865076362752, 117.78919079474184, 72.40449989611754, 47.310951149443895], 'perf_time': 0.022635000000008176, 'population': 147, 'numerosity': 1000}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [29.457312286172304, 74.44616712188858, 82.03801204198257, 53.56670000668446, 97.77512802862347, 117.78919079474184, 71.67566012830272, 47.310951149443895], 'perf_time': 0.022635000000008176, 'population': 147, 'numerosity': 1000}\n" - ] - } - ], - "source": [ - "cfg = Configuration(number_of_actions=8,\n", - " max_population=1000,\n", - " gamma=0.9,\n", - " chi=1, # crossover\n", - " metrics_trial_frequency=100,\n", - " user_metrics_collector_fcn=xcs_metrics)\n", - "\n", - "df = avg_experiment(maze,\n", - " cfg,\n", - " number_of_tests=2,\n", - " explore_trials=800,\n", - " exploit_metrics=200)" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
steps_in_trialperf_timepopulationnumerosity
trial
045.50.00839926.540.0
10043.00.026481107.51000.0
20023.50.015902124.51000.0
30028.00.019192137.01000.0
40026.00.023632161.51000.0
50030.50.028780168.51000.0
60014.00.011798160.51000.0
70050.00.047531151.01000.0
80029.00.012740145.51000.0
90050.00.024291147.51000.0
\n", - "
" - ], - "text/plain": [ - " steps_in_trial perf_time population numerosity\n", - "trial \n", - "0 45.5 0.008399 26.5 40.0\n", - "100 43.0 0.026481 107.5 1000.0\n", - "200 23.5 0.015902 124.5 1000.0\n", - "300 28.0 0.019192 137.0 1000.0\n", - "400 26.0 0.023632 161.5 1000.0\n", - "500 30.5 0.028780 168.5 1000.0\n", - "600 14.0 0.011798 160.5 1000.0\n", - "700 50.0 0.047531 151.0 1000.0\n", - "800 29.0 0.012740 145.5 1000.0\n", - "900 50.0 0.024291 147.5 1000.0" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "display(df)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEGCAYAAACUzrmNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAn1ElEQVR4nO3de5xVdb3/8ddnLszAMNwvIqCDCigggpAi/hSvaSWgFR5MO5h57JRWWnrC8/hVPx/m+Vl5OGYdLSuV1KOZpnLqV8ciPVomHggqQfYAgjrJHofr7Jlhhrl8fn+sNcyeYS57bvsy+/18POax9/6utfb+zAL2m7W+3/Vd5u6IiIh0JifVBYiISPpTWIiISJcUFiIi0iWFhYiIdElhISIiXcpLdQH9ZcyYMV5SUpLqMkREMsqGDRv2uPvYtu0DNixKSkpYv359qssQEckoZvZ2e+06DSUiIl1SWIiISJcUFiIi0iWFhYiIdElhISIiXeq3sDCzh8zsfTN7I65tlJn9xsy2hY8j45bdbmbbzSxiZpfEtc8zs7+Gy+4zM+uvmkVEpH39eWTxCHBpm7aVwFp3nwqsDV9jZjOA5cDMcJv7zSw33OYB4AZgavjT9j1FRKSf9dt1Fu7+spmVtGleCpwXPl8NvAR8JWx/0t3rgJ1mth04w8x2AcPc/Y8AZvYT4HLgV/1Vd7p4ekMZ7+ytTnUZIpKBPn/hVPJz+/ZYINkX5Y13990A7r7bzMaF7ROB1+LWKwvb6sPnbdvbZWY3EByFcNxxx/Vh2cm1v/owt/7szwDopJuIdNfnzj+J/Nyu1+uOdLmCu72vRO+kvV3u/iDwIMD8+fMz9q5OkfIYAKuvO4NF04666l5EJOmSPRqq3MwmAISP74ftZcDkuPUmAe+F7ZPaaR/QItEgLKaPL05xJSIigWSHxRpgRfh8BfB8XPtyMyswsykEHdmvh6esYma2IBwF9fdx2wxYkfIYwwfnM35YQapLEREB+vE0lJk9QdCZPcbMyoCvA3cDT5nZp4F3gGUA7r7ZzJ4CtgANwI3u3hi+1WcJRlYNJujYHvCd26XRGNPHF6NRwiKSLvpzNNRVHSy6sIP17wLuaqd9PTCrD0tLa+5OpDzG5XM67McXEUk6XcGdZnYfrCVW28C0Y9RfISLpQ2GRZtS5LSLpSGGRZpqHzSosRCSdKCzSTGk0xjHDChk+JD/VpYiIHKGwSDNbozGmq79CRNKMwiKNNDQ2sb2iSmEhImlHYZFGdu2t4XBDE9PUXyEiaUZhkUZKw87tk3VkISJpRmGRRiLRGDkGJ40bmupSRERaUVikkUg0RsnoIgr7em5hEZFeUlikkdLymPorRCQtKSzSRG19I7v2VmuaDxFJSwqLNLH9/SqaXJ3bIpKeFBZpYms4J5ROQ4lIOlJYpInS8hiD8nIoGT0k1aWIiBxFYZEmItEYJ40dSl6u/khEJP3omylNRKIx9VeISNpSWKSBgzX1RCtrNRJKRNKWwiIN6B4WIpLuFBZp4EhY6MhCRNKUwiINlEZjFBfmMWF4YapLERFpl8IiDUSiMaaPL8bMUl2KiEi7FBYp5u5EymPq3BaRtKawSLHyyjoOHqpX57aIpDWFRYqpc1tEMoHCIsVKoxo2KyLpT2GRYlujMcYVFzCyaFCqSxER6ZDCIsVKy2M6BSUiaU9hkUKNTR6EhU5BiUiaU1ik0Dv7aqhraNKwWRFJewqLFIpEKwF1botI+lNYpFAkWoUZTB0/NNWliIh0KiVhYWa3mNlmM3vDzJ4ws0IzG2VmvzGzbeHjyLj1bzez7WYWMbNLUlFzfygtj3HcqCEMGZSX6lJERDqV9LAws4nAF4D57j4LyAWWAyuBte4+FVgbvsbMZoTLZwKXAvebWW6y6+4PW6OVOgUlIhkhVaeh8oDBZpYHDAHeA5YCq8Plq4HLw+dLgSfdvc7ddwLbgTOSW27fq61vZNfeGg2bFZGMkPSwcPe/AfcA7wC7gYPu/gIw3t13h+vsBsaFm0wE3o17i7Kw7ShmdoOZrTez9RUVFf31K/SJHRVVNDY503RkISIZIBWnoUYSHC1MAY4Fiszsms42aafN21vR3R909/nuPn/s2LG9L7YflYZzQum+2yKSCVJxGuoiYKe7V7h7PfBzYCFQbmYTAMLH98P1y4DJcdtPIjhtldEi0Sryc42SMUWpLkVEpEupCIt3gAVmNsSCu/1cCLwJrAFWhOusAJ4Pn68BlptZgZlNAaYCrye55j4XiVZy4tih5Odq9LKIpL+kj9l093Vm9jTwJ6AB2Ag8CAwFnjKzTxMEyrJw/c1m9hSwJVz/RndvTHbdfa20vIr5JSO7XlFEJA2kZIC/u38d+Hqb5jqCo4z21r8LuKu/60qWytp6/nbgEJ8Yf1yqSxERSYjOgaTANnVui0iGUVikQCRaBaBhsyKSMRQWKRCJVlI0KJdJIwenuhQRkYQoLFIgUh5j2jHFBIPBRETSn8IiydydSDSm/goRySgKiySrqKpjf029+itEJKMoLJIsEg1GQmm2WRHJJAqLJDsSFjoNJSIZRGGRZKXlMcYMHcTooQWpLkVEJGEKiySLRGM6qhCRjKOwSKKmJqe0vEqd2yKScRQWSfTu/hoO1Teqc1tEMo7CIonUuS0imUphkUTNd8ebqiMLEckwCosk2hqNMXnUYIYWpGRmeBGRHlNYJFFpeUz9FSKSkRQWSXK4oYm3KqrVXyEiGUlhkSRv7amiock1bFZEMpLCIkk0EkpEMpnCIkki0Rh5OcYJY4amuhQRkW5TWCRJaXmME8YWMShPu1xEMo++uZJkazTG9GOGpboMEZEeUVgkQVVdA2X7DzF9vE5BiUhmUlgkQfOV2xoJJSKZSmGRBKXhSKiTdRpKRDKUwiIJIuUxhgzKZdLIwakuRUSkRxQWSRCJxpg6vpicHEt1KSIiPaKwSIJgTih1botI5kp4+lMzywXGx2/j7u/0R1EDyZ6qOvZUHVbntohktITCwsw+D3wdKAeawmYHZvdTXQOGOrdFZCBI9Mjii8B0d9/bn8UMRJHmYbPH6DSUiGSuRPss3gUO9tWHmtkIM3vazLaa2ZtmdpaZjTKz35jZtvBxZNz6t5vZdjOLmNklfVVHMkSiMUYVDWLs0IJUlyIi0mOJHlm8BbxkZr8E6pob3X1VDz/3O8Cv3f3jZjYIGAL8M7DW3e82s5XASuArZjYDWA7MBI4Ffmtm09y9sYefnVSR8hjTxg/FTCOhRCRzJXpk8Q7wG2AQUBz3021mNgw4F/gxgLsfdvcDwFJgdbjaauDy8PlS4El3r3P3ncB24IyefHayNTU5pdGY+itEJOMldGTh7ncAmFlx8NKrevGZJwAVwMNmdhqwgaBPZLy77w4/b7eZjQvXnwi8Frd9Wdh2FDO7AbgB4LjjjutFiX3jbwcOUX24USOhRCTjJXRkYWazzGwj8Aaw2cw2mNnMHn5mHnA68IC7zwWqCU45dfjx7bR5eyu6+4PuPt/d548dO7aH5fWd5jmhpqtzW0QyXKJ9Fg8CX3L3FwHM7Dzgh8DCHnxmGVDm7uvC108ThEW5mU0IjyomAO/HrT85bvtJwHs9+Nyk2xrVBIIysNTX11NWVkZtbW2qS5FeKiwsZNKkSeTn5ye0fqJhUdQcFADu/pKZFfWkQHePmtm7Zjbd3SPAhcCW8GcFcHf4+Hy4yRrgP8xsFUEH91Tg9Z58drKVlseYOGIwxYWJ/WGIpLuysjKKi4spKSnRoI0M5u7s3buXsrIypkyZktA2CY+GMrOvAo+Gr68BdvagxmafBx4PR0K9BXyK4JTYU2b2aYIO9WUA7r7ZzJ4iCJMG4MaMGQkVjeme2zKg1NbWKigGADNj9OjRVFRUJLxNomFxHXAH8HOCPoSXCb7ge8TdNwHz21l0YQfr3wXc1dPPS4X6xiZ2VFRx3vRxXa8skkEUFANDd/8cEx0NtR/4Qk8KylY791RT3+jq3BbJYmvWrGHLli2sXLmS5557jmnTpjFjxoxUl9UjnYaFmd3r7jeb2X/Szggkd1/Sb5VluEjYuT19vK6xEBkoGhoayMtLeP5VlixZwpIlwdfkc889x2WXXZaxYdHV0NnmPop7gH9t50c6UFoeIzfHOHFcj8YBiEgHdu3axSmnnMI//MM/MHPmTD74wQ9y6NAhzjvvPNavXw/Anj17KCkpAeCRRx7h8ssvZ/HixUyZMoXvfe97rFq1irlz57JgwQL27dsHwI4dO7j00kuZN28e55xzDlu3bgXg2muv5Utf+hLnn38+X/nKV9i0aRMLFixg9uzZXHHFFezfvx+A++67jxkzZjB79myWL19+5LNvuukmXn31VdasWcNtt93GnDlz2LFjB6effvqR32nbtm3MmzcvWbuwRzqNSHffED6d4+7fiV9mZl8E/ru/Cst0W6MxpowpoiAvN9WliPSLO/5zM1veq+zT95xx7DC+vrjrS7i2bdvGE088wQ9/+EOuvPJKnnnmmU7Xf+ONN9i4cSO1tbWcdNJJfPOb32Tjxo3ccsst/OQnP+Hmm2/mhhtu4Pvf/z5Tp05l3bp1fO5zn+N3v/sdAKWlpfz2t78lNzeX2bNn893vfpdFixbxta99jTvuuIN7772Xu+++m507d1JQUMCBAwdaff7ChQtZsmQJl112GR//+McBGD58OJs2bWLOnDk8/PDDXHvttT3aZ8mS6HQfK9ppu7YP6xhwghseaSSUSH+YMmUKc+bMAWDevHns2rWr0/XPP/98iouLGTt2LMOHD2fx4sUAnHrqqezatYuqqipeffVVli1bxpw5c/jMZz7D7t27j2y/bNkycnNzOXjwIAcOHGDRokUArFixgpdffhmA2bNnc/XVV/PYY48ldKrq+uuv5+GHH6axsZGf/vSnfOITn+jBnkiervosrgI+AUwxszVxi4oBTVfegZrDDbyzr4aPnT4p1aWI9JtEjgD6S0FByyzOubm5HDp0iLy8PJqagtvttL1oMH79nJycI69zcnJoaGigqamJESNGsGnTpnY/r6io69PJv/zlL3n55ZdZs2YNd955J5s3b+50/Y997GPccccdXHDBBcybN4/Ro0d3+Rmp1NWRxasEfRNbad1X8WXg0v4tLXNtK6/CXVduiyRTSUkJGzYEZ86ffvrpbm07bNgwpkyZws9+9jMguGjtz3/+81HrDR8+nJEjR/LKK68A8Oijj7Jo0SKampp49913Of/88/nWt77FgQMHqKpqPYVecXExsVjsyOvCwkIuueQSPvvZz/KpT/X4SoSk6TQs3P1td3/J3c9y9/+O+/mTuzckq8hMEzkyJ5TCQiRZbr31Vh544AEWLlzInj17ur39448/zo9//GNOO+00Zs6cyfPPP9/ueqtXr+a2225j9uzZbNq0ia997Ws0NjZyzTXXcOqppzJ37lxuueUWRowY0Wq75cuX8+1vf5u5c+eyY8cOAK6++mrMjA9+8IPdrjfZzL3dOflar2S2APgucArBNOW5QLW7p+240Pnz53vzyIhku/MXW3h83dtsvuNScnN0AZMMHG+++SannHJKqssYMO655x4OHjzInXfemZLPb+/P08w2uPtRF00nOmD4ewQ3IPoZwZXXfw+c1Ms6B6zS8hhTxxUrKESkQ1dccQU7duw4MuIq3SV8dYm7bzez3HBepofN7NV+rCujbY3GWDQt9VOki0j6evbZZ1NdQrckGhY14aR/m8zsW8BuQFebtWNf9WEqYnUaNisiA0qi11l8kqCf4iaCmxVNBj7WX0VlsuYbHk1T57aIDCCJTiT4dvj0EMHss9KB5jmhTlZYiMgA0tVFeX+lg1uYArj77D6vKMNFymMMH5zPuOKCrlcWEckQXZ2GugxY3MmPtNF8wyPN+S+SWeInIuxP9913H6eccgpXX311j98jWbXG62oiwbc7Wy6tuTul0RiXz52Y6lJEJIm6M3X5/fffz69+9atOb2fa3anQkyGhDm4zi5lZZfhTa2aNZta3000OAO8drCVW16DObZF+0tH05ECvpygHeOyxx1i4cCGzZs3i9ddfB6C6uprrrruOD3zgA8ydO/fIld2PPPIIy5YtY/Hixe1egb1q1SpmzZrFrFmzuPfeewH4x3/8R9566y2WLFnCv/3bv7Vav+37vfTSS1x22WVHlt9000088sgjR33OCy+8wFlnncXpp5/OsmXLjkwzsnLlyiNTpt9666092NutJdrB3erbz8wuB87o9acPMKXq3JZs8quVEP1r377nMafCh+7udJX2pie/5pprOt0mkSnKIQiGV199lZdffpnrrruON954g7vuuosLLriAhx56iAMHDnDGGWdw0UUXAfDHP/6Rv/zlL4waNarV523YsIGHH36YdevW4e6ceeaZLFq0iO9///v8+te/5sUXX2TMmDFH1Rn/fi+99FKXu2vPnj184xvf4Le//S1FRUV885vfZNWqVdx00008++yzbN26FTM7asr0nujRcY67P2dmK3v96QNM85xQ08YpLET6S3enJ4eWKcqLi4uPmqL8L3/5y5H1rrrqKgDOPfdcKisrOXDgAC+88AJr1qzhnnvuAYIZbd955x0ALr744qOCAuD3v/89V1xxxZHZaj/60Y/yyiuvMHfu3E7r7Oj9OvLaa6+xZcsWzj77bAAOHz7MWWedxbBhwygsLOT666/nIx/5SKsjlJ5KKCzM7KNxL3MIpvzoelKpLBOJxpgwvJDhQ/JTXYpI/+viCKC/tDc9OdCrKcqbtR2YYma4O8888wzTp09vtWzdunUdTl2eyJx77Yl/v/jfB47+nZo/5+KLL+aJJ544atnrr7/O2rVrefLJJ/ne977X62lFEr0oL34E1CVADFjaq08egCLRmKYlF0mR3kxR3uynP/0pEBwZDB8+nOHDh3PJJZfw3e9+90gAbNy4scv3Offcc3nuueeoqamhurqaZ599lnPOOadbtRx//PFs2bKFuro6Dh48yNq1a49aZ8GCBfzhD39g+/btANTU1FBaWkpVVRUHDx7kwx/+MPfee2+H9+nojkT7LNJ/svUUa2hsYntFFedMPfo8pIj0v1tvvZUrr7ySRx99lAsuuKBH7zFy5EgWLlxIZWUlDz30EABf/epXufnmm5k9ezbuTklJCb/4xS86fZ/TTz+da6+9ljPOCLp2r7/++i5PQbU1efJkrrzySmbPns3UqVPb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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df[['numerosity', 'population']].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"population\")\n", - "ax.legend([\"numerosity\", \"number of rules\"])\n", - "\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is hard to say but oking at amount of times algorithm reaches top steps (50) the steps might actually go down over trials. need to somehow smooth it to see it better" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEGCAYAAABiq/5QAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA49ElEQVR4nO3deXycZbnw8d+VvdnaZk+TtumSpU2hKy2lUEhqKZsitnpQUTxHD76KHnBB4OhR4eCr+CouqLjgggqiLAqWraUJSKG0dF+TSVeatplJ0qadyZ7M/f4xMyWFJJ2m88x6fT+f+Uzmycw8V542V565n+u+LzHGoJRSKnbEhToApZRSwaWJXymlYowmfqWUijGa+JVSKsZo4ldKqRiTEOoA/JGTk2NKSkpCHYZSSkWUTZs2tRhjct+9PSISf0lJCRs3bgx1GEopFVFE5NBg23WoRymlYowmfqWUijGa+JVSKsZExBj/YHp7e2lsbKSrqyvUoQRVSkoKxcXFJCYmhjoUpVSEitjE39jYSEZGBiUlJYhIqMMJCmMMra2tNDY2MmnSpFCHo5SKUJYO9YjIQRHZISJbRWSjd1uWiKwWkQbv/diRvHdXVxfZ2dkxk/QBRITs7OyY+5SjlAqsYIzxVxljZhlj5nkf3wWsMcaUAmu8j0cklpK+Tyz+zEqpwArFxd3rgUe8Xz8CfDAEMSilwtDre1uob3KGOoywcKqrl/tW7uZAS3vA39vqxG+AVSKySURu8W7LN8YcA/De5w32QhG5RUQ2isjG5uZmi8MMnB//+Md0dHSEOgylItJtj2/lm8/sDHUYYWFtQwsPrz1Ai6s74O9tdeJfZIyZA1wN3Coii/19oTHm18aYecaYebm575lxHLY08Ss1Mi2ublpc3Ww8dIKTnb2hDifkauocjB6VyOzxYwL+3pYmfmPMUe+9A/g7MB+wi0ghgPfeYWUMVmpvb+faa69l5syZzJgxg3vuuYejR49SVVVFVVUVAKtWrWLhwoXMmTOHD3/4w7hcLsCzDMWdd97J/PnzmT9/Pnv37gXgiSeeYMaMGcycOZPFi/3+O6lUxLPZPUM8/W7Daw2R8ynfCm634ZV6B5eX5ZIQH/g0bVk5p4ikAXHGGKf36yuBe4FngZuB73nvnznffd3zz13sPnrqfN/mDNPHZfKt91cO+5wXX3yRcePG8dxzzwFw8uRJfv/731NbW0tOTg4tLS3cd999vPzyy6SlpXH//ffzwAMP8M1vfhOAzMxMNmzYwB//+Eduv/12Vq5cyb333stLL71EUVERbW1tAf2ZlApnNu/Y/qjEeGrqHFx34bgQRxQ6O46cpMXVQ3XFoCPh583KM/58YK2IbAM2AM8ZY17Ek/CXikgDsNT7OCJdcMEFvPzyy9x555289tprjB49+ozvv/nmm+zevZtFixYxa9YsHnnkEQ4demfNpI9+9KOn79etWwfAokWL+NSnPsVvfvMb+vv7g/fDKBVi9XYXo0clsqwyn1fqm+l3x24/8Jo6B3ECl5dZM8xt2Rm/MWY/MHOQ7a3AkkDu62xn5lYpKytj06ZNPP/889x9991ceeWVZ3zfGMPSpUv5y1/+MujrB5Zm+r7+5S9/yfr163nuueeYNWsWW7duJTs727ofQqkw0WB3Up6fQVVFHv/YepRtjW3MmTCiaT4Rr6bOwewJYxmblmTJ++taPefh6NGjpKamctNNN/HVr36VzZs3k5GRgdPp+ch68cUX8/rrr58ev+/o6MBms51+/V//+tfT9wsXLgRg3759LFiwgHvvvZecnBwOHz4c5J9KqeAzxlBvd1JWkM7lZbnECdTWRezlv/PiONXFjiMnLRvmgQhesiEc7NixgzvuuIO4uDgSExN56KGHWLduHVdffTWFhYXU1tbyhz/8gY9+9KN0d3tKsu677z7KysoA6O7uZsGCBbjd7tOfCu644w4aGhowxrBkyRJmznzPhyalok7TqS6cXX2U52cwJjWJuRPHUlPn4CtXloc6tKB7pd5zYbuqXBN/WFq2bBnLli07Y9u8efP44he/ePpxdXU1b7311qCvv/XWW/nWt751xrann3468IEqFeZ8k7ZK8zMAqKrI4/sv1mM/1UV+ZkooQwu6mjoHhaNTmFaYYdk+dKhHKRVyvlLOMm/i9w1zxNpwT0+fm7V7W7iiPM/S5Vk08YfIwYMHycnJCXUYSoUFm91FbkYyWd6LmeX5GRSNGUVNjCX+tw4ex9XdZ+n4PkR44jcm9sq9YvFnVtHP5q3o8RERqipyWbu3he6+2ClrrqlzkJQQx6Kp1lbyRWziT0lJobW1NaYSoW89/pSU2BrzVNHN7TbY7M7Twzw+1RV5dPT0s+HA8RBFFny1dQ4unpxNapK1l18j9uJucXExjY2NRNICboHg68ClVLQ4fKKDrl43ZfnpZ2xfODmH5IQ4auocXFYaOet1jdTBlnb2t7TzyYUTLd9XxCb+xMRE7UKlVBTwVfSUFZx5xj8qKZ5LpmRTW+cI2STNYPJdz6iuyLd8XxE71KOUig4NDs/ChaV56e/5XnVFHgdbO9jf7Ap2WEFXW+9gal46E7JTLd+XJn6lVEjVNzkpGjOKjJTE93yvylvdEu3VPe3dfazff9zyah4fTfxKqZCy2Z2UFww+Wal4bCpl+elRn/jX7m2hp99t6WzdgTTxK6VCprffzb5mF6X57x3m8amqyGPDgeM4u6K3OUvNHgcZKQnMKwnOonSa+JVSIXOotZ3efnNGDf+7VZfn0ec2rG1oCWJkwWOMobbeweLSXBItaLoyGE38SqmQqW/yXLR9dw3/QHMnjiUzJSFqh3t2HT2Fw9l9+npGMGjiV0qFTL3dSZzA1EEqenwS4uNYXJZLbX0z7ihszlJT50AErigP3lwFTfxKqZCxNTkpyU4jJTF+2OdVV+TR4upm59GTQYoseGrqHFxYPIac9OSg7TOqE38sLeegVCSy2Z3DXtj1ubwsF5HoK+tsdXWzrbGN6iBV8/hEdeL/zWv7+cRv1/Pizib6+t2hDkcpNUBXbz8HW9uHvbDrk52ezOzxY6JumeZX6psxhqDV7/tYnvhFJF5EtojISu/jb4vIERHZ6r1dY9W+05IT2Otw8X/+vIlF99fwwGobR9s6rdqdUuoc7Gt24TbvXaphKNUVeWxrPEmzs9viyIKnpt5BbkYyleMyg7rfYJzx3wbsede2HxljZnlvz1u1448vmMhrX6viN5+cx7TCTB6saeDS+2v4zCMbqa1z0B+FF4qUihS+5iv+nPHDO7N4X6mPjrP+3n43/7I1U1WeS1ycdU1XBmPpIm0iUgxcC3wH+LKV+xpKQnwcS6fns3R6PoePd/D4W2/z17cO8/IeO0VjRvGxBRP48Lxi8jJ0qWOlgqm+yUVivFCSk+bX86cXZlKQmUJNnYMPzxtvcXTW23ToBM6uvqAsyvZuVp/x/xj4GvDuAfYviMh2EfmdiAw6VU1EbhGRjSKyMVBLL4/PSuWOZRW8cdcSfv6xOUzMTuX/vVTPJd+t4dZHN/PG3ha9IKxUkNjsTibnpPs9acnXnOW1hhZ6+iL/ml1tnYPEeOHS0uB34rMs8YvIdYDDGLPpXd96CJgCzAKOAT8c7PXGmF8bY+YZY+bl5ga2vjUpIY5rLyzksf+8mDVfuZxPXVLC6/ta+NjD61nyw1d5+LX9nGjvCeg+lVJnstmdfo/v+1SV5+Hq7mPjwchvzlJT52DBpGzSk4O/Or6VZ/yLgA+IyEHgcaBaRP5sjLEbY/qNMW7gN8B8C2M4qym56Xzjuum8efcSfvRvM8lKS+K+5/aw4Ltr+PJft7Lx4HH9FKBUgLm6+2g80Um5H6WcAy2amkNSfFzEl3UePt5Bg8MV1Nm6A1mW+I0xdxtjio0xJcCNQI0x5iYRKRzwtBuAnVbFcC5SEuO5YXYxT37uEl68/TJuvGg8q3bbWfHLdVz149f447qDnIriRaKUCqYG74Xd4ZZqGExacgILJmdRE+EXeN9puhJliX8Y3xeRHSKyHagCvhSCGIZVUZDJvdfPYP1/L+F7H7qAxAThm8/sYsF31nDXU9vZ0Rh9sweVCqbTFT3nONQDnmS5v7mdQ63tgQ4raGrqHEzKSWOSnxe2Ay0og0vGmFeAV7xffyIY+wyEtOQEbpw/gRvnT2B7YxuPvvk2z2w9yuNvHebC4tF8fMEE3j9znOWNkZWKNvVNLlIS4xg/9ty7TVVX5HHPP3dTU+fg3xdFXvvVjp4+1u1v5aYF1vfWHUpUz9wNpAuLx3D/igtZ//Ul3Ht9JV29/dz51A4WfGcN33pm5+m+oUqps2twOCnNyxhR/frE7DQm56ZF7Dj/G3tb6elzh2yYByK42XqoZKYk8smFJXzi4olsOnSCR9e/zV82HOaRdYeYN3EsH794AlfPKDzrolNKxbL6JieXlY68Wq+6PI8/rjtEe3cfaSGoijkfNfUO0pLimT8pK2Qx6Bn/CIkI80qy+NG/zeLN/17C16+ZRourmy/9dRsXf3cN33lud0w0iFbqXJ1o78Hh7Ka84Nwqegaqrsijp9/N63sjqzmLMYbaOgeXluaQlBC69KuJPwCy0pL4z8WTqfnKFTz6mQVcMiWb379+kOofvsrHH36T53cco1cXiVMKeOfC7rlW9Aw0rySL9OQEaiOsuqeuycmxk10hHeYBHeoJqLg4YdHUHBZNzcHh7OKJjY08tv5tPv/oZq67sJCffWxOqENUKuQCkfiTEuJYXJZDTZ0DYwwiwV3rZqR81yWC1VR9KHrGb5G8jBRurZrKv75WxccWTOClXU06D0ApwGZ3kZGcQOHo81sfq6o8D/upbnYdPRWgyKxXW+dgRlEmeZmhXRtME7/F4uOE5XOK6O03UbeWuFIjUe9dquF8z9Kv8J41R8rv1Yn2Hja/fSIki7K9myb+IJg9fiw56cms2mUPdShKhZQxxrNGz3kM8/jkZiQzs3h0xMzi/VdDM+4QNF0ZjCb+IIiLE5ZOz+eVegddvf2hDkepkGl2dtPW0XvOa/QMpaoij62H22h1hX9zlpo6BznpSVxYNDrUoWjiD5Zllfm09/RHXPmZUoFUH4ALuwNVV+RhDLxqC8zS7Vbp63fzqq2Zy8vygt50ZTCa+IPkkik5ZCQn8NKuplCHolTI2OyeuS3nuhzzUGaMG01OenLYz+LdcriNto7esBjmAU38QZOUEEdVRR4v73Fo43cVs2xNTrLTkshJTw7I+8XFCVXlufzL1hzWv1c1dQ4S4oTLyoLfdGUwmviDaFllAcfbe9h46ESoQ1EqJOoDdGF3oOqKPE519bEpjH+vausczCsZS2ZKYqhDATTxB9UV5bkkJcRpdY+KSW63ocHuHNFSzMO5tDSHxHgJ2+qeI22d1DU5w2aYBzTxB1VacgKXTc3hpV1N2tVLxZwjbZ209/RTGqCKHp+MlEQuKskK23r+2hA3XRmMJv4gu7IynyNtnRE121CpQGhweJuvBHioBzxJ1WZ3cfh4R8Df+3zV1jkYnzWKKbmB/YN3PjTxB9n7puUTJ7BKq3tUjKlv8lT0lFqQ+H29a8Nt0bau3n5e39dCdXleWK0npIk/yLLTk5lXksVLOs6vYozN7qRwdAqjRwX+AufknDQmZqeGXVnnuv2tdPW6Q9ZUfSiWJ34RiReRLSKy0vs4S0RWi0iD936s1TGEm2WVBdTbnRxsidyeoUqdq/qmwFf0+IgI1RV5rNvXSmdP+MyOr61zMCoxnosnZ4c6lDME44z/NmDPgMd3AWuMMaXAGu/jmHLldM8iTTqZS8WKfrdhb7OLsgBf2B2ouiKP7j43b+wLj9nxxhhq6hwsmpoddh35LE38IlIMXAs8PGDz9cAj3q8fAT5oZQzhaHxWKpXjMlm1W4d7VGw41NpOT5/bsjN+gPmTskhNig+b4Z69DheNJzrDYjXOd7P6jP/HwNeAgVPq8o0xxwC894MOfonILSKyUUQ2NjeH9zocI7GssoDNb5/A4ewKdShKWc7XfCXQNfwDJSfEc+nUHGq9zVlC7XTTlYqR9xa2imWJX0SuAxzGmE0jeb0x5tfGmHnGmHm5ueF34M7XlZX5GAOr9axfxYD6JhciMDXP2pLG6oo8jp7sOr0YXCitqXMwrTCTwtGjQh3Ke1h5xr8I+ICIHAQeB6pF5M+AXUQKAbz34fG5LMjK8zOYmJ2q1T0qJtjsTiZkpZKaZG23V1/1TKiHe0529LLp0Amqw/BsHyxM/MaYu40xxcaYEuBGoMYYcxPwLHCz92k3A89YFUM4ExGWVRawbl+LtmRUUc9md1KaZ90wj09+ZgqV4zJDPov3Xw3N9LtNWM3WHSgUdfzfA5aKSAOw1Ps4Ji2rzNeWjCrqdff1c6ClnfKC4Mxcra7IY9OhE7R19ARlf4OprXMwNjWRWePDs1o9KInfGPOKMeY679etxpglxphS7/3xYMQQjmaPH0tuRrKWdaqodqClnT63sbSiZ6CqijzcIWzO0u82vGJr5vKyXOLDoOnKYHTmbgi905KxWVsyqqhV32R9Rc9AM4vHkJWWFLJP0tsa2zje3hN2s3UH0sQfYssqC+jQlowqitnsThLihMk5wRnqiY8TrijL5RWbZ5w92GrrHMQJXF4Wnhd2QRN/yC2cnK0tGVVUs9ldlOSkkZQQvHRTVZFHW0cvW94OfnOWmjoHcyeOZUxqUtD37S9N/CGmLRlVtLPZnZYsxTycxd7x9WCXddpPdbHr6KmwHuYBTfxhQVsyqmjV0dPH28c7gnZh12f0qETmTRwb9MQfjk1XBqOJPwz4WjLqcI+KNnsdLowhaKWcA1VX5FHX5ORoW2fQ9llT52Dc6JSgf8I5V5r4w4CvJeOqXfawWGNEqUDxVfQE+4wf3jnrDlZzlu6+ftbubaF6Wng1XRmMJv4wsayyQFsyqqjT4HCRlBDHxOy0oO97al46xWNHBa2sc8OB43T09If9MA9o4g8bS6blaUtGFXXqm5xMzU0PyUQmX3OW1/e2BmWezJo9DpIT4lg4OcfyfZ2vIRO/iMwZ7hbMIGOBtmRU0chmdwZt4tZgqiry6Ozt5839rZbuxxhDbb2DS6ZkMyopvJquDGa4pfJ+OMz3DFAd4Fhi3rLKAv535W4OtrRTkhP8j8ZKBdLJzl6OnewKyfi+z8LJ2aQkxlFb5+CKcuuGYPa3tHOotYPPXDrJsn0E0pBn/MaYqmFumvQtoC0ZVTRpON18JfgVPT4pifEsmpJDTb21zVlqTzddCf/xffBzjF9EZojIR0Tkk76b1YHFIl9LRk38KhrY7C6AoCzHPJyqijwOH+9kr8Nl2T5q6hyU5adTPDbVsn0E0lkTv4h8C3jQe6sCvg98wOK4YpanJWMbjlPaklFFNpvdSVpSPEVjQtuByurmLM6uXjYcOB4xZ/vg3xn/CmAJ0GSM+XdgJpBsaVQxbFllAQCr9+hFXhXZ6puclOZnEBfipYmLxoyioiDDssS/tqGFPreh2sJrCIHmT+LvNMa4gT4RycTTKnGytWHFrrL8dG3JqKJCKNboGUpVRR4bD53gZGfgu93V1DnITElg7sTwbLoyGH8S/0YRGQP8BtgEbAY2WBlULNOWjCoatLi6aW3voSyEpZwDVVfk0e82vNYQ2OYsbrehtr6ZxWW5JMRHzrSos0ZqjPm8MabNGPNLPK0Sb/YO+SiLaEtGFelsdt9SDaGr6Blo9vgxjB6VGPDhnp1HT9Li6o6I2boDDTeBq8J7P3DSVhaQ4M8ELhFJEZENIrJNRHaJyD3e7d8WkSMistV7uyZQP0y00JaMKtLZfF23wmSoJyE+jivKc3m1vhl3AJuz1NQ5kDBvujKY4SZwfRm4hcEncvkzgasbqDbGuEQkEVgrIi94v/cjY8wPzjnaGOFryfiPLUfo6u0nJTH8ZwIqNVC93cWY1ERyM8KnDqS6Io9nth5lW2MbsycEZjy+ts7BrPFjyE4Pn5/TH8NN4LpFROKAb4xkApfx8BXOJnpvuvSkn3wtGdc2aEtGFXlsdidl+RlhtUrl5WW5xAkBG0JtdnazrfEkSyJsmAfOMsbvreYZ8Zm5iMSLyFY8lUCrjTHrvd/6gohsF5HfiUjkXAoPIl9LxlW7dbhHRRZjDLam8Kno8RmTmsScCWOpCdAyzb7lniOpft/Hn8vQq0RkuYzgT7cxpt8YMwsoBuaLyAzgIWAKMAs4xhBrAonILSKyUUQ2NjcH9kp8JNCWjCpSNZ3qwtndFzYXdgeqqshj55FTAZkgWVvnoCAzhemFmQGILLj8SfxfBp4AukXklIg4ReScFo03xrQBrwBXGWPs3j8IbjwlovOHeM2vjTHzjDHzcnMj68JJoGhLRhWJQtl85WwC1Zylp8/Naw0tVFXkhtVwlr/8KefMMMbEGWOSjDGZ3sdn/RMnIrne+n9EZBTwPqBORAoHPO0GYOcIY4962pJRRaJ3SjnDL/FXFGRQODqFNXvOL/FvPHgcV3cfVRE0W3cgf9bqWePPtkEUArUish14C88Y/0rg+yKyw7u9CvjSOcYcM7Qlo4pE9U0u8jKSGZuWFOpQ3kNEqKrIY+3eFrr7Rt6cpabOQVJ8HIumhn/TlcEMWc4pIilAKpDjvQDr+zyTCYw72xsbY7YDswfZ/omRhRqbllUWsKbOwa6jp5hRNDrU4Sh1VqFuvnI21eV5PLb+bTYcOM5lpSMbRq6pd7BgchZpycNVxIev4c74P4tniYYK773v9gzwc+tDU6AtGVVkcbsNDQ5nyJdiHs4lU7NJSogb8SzeQ63t7G9uj7jZugMNV8f/E2PMJOCrxpjJxphJ3ttMY8zPghhjTMtOT+YibcmoIsThEx109bpD2nzlbFKTElg4OXvE9fy+PxhRmfh9jDEPBiMQNbQrKwuotzs52NIe6lCUGlY4V/QMVF2Rx8HWDvY3n3tzlpo6B5Nz05iYHbntUSNnObkYpi0ZVaTwVfSURkDih3NvztLe3cf6/ccjau39wWjijwDaklFFinq7i+Kxo0gP84ue47NSmZqXfs71/K/vbaGn3x3Rwzzgf8/dIhG5REQW+25WB6bOpC0ZVSRo8K7REwmWVOSx4YCnHt9ftfUO0pMTmFeSZWFk1vOnjv9+4HXgG8Ad3ttXLY5LvYuvJeOq3XqRV4Wn3n43+5pdEZP4qyry6O03rPWzOYsxhpo6B4vLckhKiOzBEn+i/yBQboy5xhjzfu9Nm60HWVl+OiXZqZr4Vdg62NJOb78J64qegeZOHEtGSoLf4/y7jp7Cfqo7YmfrDuRP4t+PZ0llFUIiwpXaklGFsfowXqphMInxcSwuy6Wmzr/mLL7yzytiJPF3AFtF5Fci8lPfzerA1HtpS0YVzmxNTuIEpuRGxhk/eGbxtri62Xn05FmfW1PvYGbx6LBqLjNS/iT+Z4H/Bd7gzBm8Ksi0JaMKZza7i5LstIjqGHdFeS4iZy/rbHV1s/VwW0SuvT+Ys9ZcGWMeCUYg6uy0JaMKZ7YIqujxyU5PZmbxGGrrHNz+vrIhn/eqrRljInu27kDDNVv/m/d+h7db1hm34IWoBtKWjCocdfX2c7C1nbIwXpxtKNUVeWxrPEmzs3vI59TUOchJT2bGuOhYKHG4oZ7bvPfXAe8f5KZCYOHkbDJSEnS4R4WVvQ4XbkPYtVv0h+8s/pUhJnP19bv5l62ZqvJc4uIir+nKYIZbpO2Y9/7QYLfghagGSkqIo7oij5f32LUlowobDQ5PRU+klHIOVDkuk7yM5CFn8W46dIJTXX1RM8wDumRDRLpyegEnOnq1JaMKG/VNLhLjJSIXLhMRqsrzeM3WQu8gJ1M19Q4S44VLSyOz6cpgNPFHIG3JqMKNze5kSm46ifGRmVKqKvJwdvfx1sHj7/lebZ2Di0qyyEiJnulM5/SvJCJjReRCq4JR/tGWjCrc1DdFXkXPQJeW5pAYL++ZI9N4ogOb3RVVwzzg31o9r4hIpohkAduA34vIA9aHpoazrLKAI22d7Dp6KtShqPNwpK2T1/dGdoWWq7uPI22dYd1u8WzSkxNYMCn7PfX8vj8E0VK/7+PPGf9oY8wp4EPA740xc4H3ne1FIpIiIhtEZJuI7BKRe7zbs0RktYg0eO/Hnt+PEJt8LRl1uCdyPbf9GFf9+F98/OH1vN3aEepwRqwhwpZqGEp1RR77mts51PpOw6M1dQ4mZqcyOSfyrl0Mx5/EnyAihcBHgJXn8N7dQLUxZiYwC7hKRC4G7gLWGGNKgTXex+ocvdOSURN/pOns6efup7dz62ObKclOQwSe2twY6rBGzHY68UdeRc9A727O0tnTz7p9rVRX5CESHWWcPv4k/nuBl4B9xpi3RGQy0HC2FxkPX1+zRO/NANcDvtnAj+BZ/VONwLLKAmx2Fwe0JWPEqGs6xQd+tpbH3zrM566YwtOfv4RFU3J4ekujXwuFhaP6JhcpiXGMH5sa6lDOS0lOGpNz0k4n/jf2tdDdF/lNVwbjT8/dJ4wxFxpjPud9vN8Ys9yfNxeReBHZCjiA1caY9UD+gDkCx4BBj6qI3CIiG0VkY3Ozf+tlx5ql3paMq/SsP+wZY/jTm4e4/mev09bZy5/+YwF3XlVBYnwcK+YWc/h4JxsGqSiJBL6lGqJhclNVRR7r9x+nvbuPmjoHqUnxzJ8U2U1XBuPPxd3JIvJPEWkWEYeIPCMik/x5c2NMvzFmFlAMzBeRGf4GZoz5tTFmnjFmXm5urr8viynakjEytHX08Lk/b+Z//rGTiydn88Jtl51RE76ssoD05ASe3BSZwz31EbhGz1CqK/Lo6Xfz+t4WauscXDo1h+SE6FsTy5+hnseAvwGFwDjgCeDxc9mJMaYNeAW4CrB7rxngvdc1hs+DtmQMb28dPM41P3mNNXV2vn7NNH7/qYvIST9zWd9RSfFce0Ehz+84Rvs5tAEMByfae2h2dkfkUg2Duagki/TkBH756j6OnuyKymEe8C/xizHmT8aYPu/tz3jG6od/kUiuiIzxfj0KTyVQHZ5lnm/2Pu1m4JkRRa4AbckYrvrdhgfXNPBvv1pHYkIcT33uEv5z8eQhh0NWzCumo6efF3dG1qc334Xd0gi/sOuTlBDHpVNz2Px2GxB9ZZw+/iT+WhG5S0RKRGSiiHwNeM5bljnc4Feh97XbgbfwjPGvBL4HLBWRBmCp97EaIV9LRh3uCR9NJ7v4+MNv8sPVNt4/cxwrv3gpFxaPGfY18yaOZWJ2asRV9/gSfyTX8L+b7yy/clwm+ZkpIY7GGmddjx/4N+/9Z9+1/T/wnPlPHuxFxpjtwOxBtrcCS84hRjUMEWFZZQG/XXuAk529jB4VPdPKI9GaPXa++sQ2uvvc/ODDM1k+p8ivUkARYfmcYh5YbaPxRAfFEVIhU293kpGSQEEUJcgrKnJJ8Pa+iFb+VPVMGuY2aNJXwXVlZQF9bjPksrLKet19/dzzz118+pGNFI4exT+/eCkr5hafU/33DbOLAPj75iNWhRlwtiYX5fkZUVXnnpeRwvO3Xcb/uXxKqEOxjD9VPaki8g0R+bX3camIXGd9aMpfs8eP0ZaMIbS/2cWHfvEGv3/9IJ+6pIS/33rJiPrOjs9KZeHkbJ7a3BgRazAZY7A5nBHZfOVsyvIzorrDnT9j/L8HeoBLvI8bgfssi0idM19Lxlfqm+nq7Q91ODHDGMOTmxq57sG1HG3r5OFPzuPbH6g8r/K/5XOLOdjawaYIWHK72dlNW0cvZXnRcWE3lviT+KcYY74P9AIYYzqB6PlcFyW0JWNwubr7+NJft/LVJ7ZxQdFoXrhtMe8LwJjw1TMKSE2Kj4ia/nrfUg1ReMYf7fxJ/D3eckwDICJT8KzDo8JIpLRkPHy8g7uf3s4vX913xmJYkWR7YxvX/vQ1nt12lC8vLeOx/7yYgtGBubiZlpzANRcUsnL7MTp7wvvTW32Tt6InSmr4Y4k/VT3fBl4ExovIo8Ai4N+tDEqdu3e3ZEwIw4YY/9x2lP9+egfd/W56+tx874U6phVmcvWMAq6eUUBpmCcQt9vw27UH+P5LdeSmJ/PXzy7kopLAT+dfPqeYJzc1smp3E9fPKgr4+weKze4kJz2J7HdNSFPh76yJ3xizSkQ2ARfjGeK5zRij4wlhaFllAc9sPcpbB0+wcEp2qMM5raOnj3ue3c1fNx5mzoQx/OTG2YjAizubeHFnEw+stvHAahtT89K5ekYBV80oYHphZlhVirS4uvnK37bxqq2ZZZX53L/8QsakJlmyrwWTsigeO4onNzWGeeJ3Rc1SDbHmrIlfRNYYY5YAzw2yTYWRy8s8LRlX7W4Km8S/59gpvvDYZva3tHNr1RRuf1/Z6fZ8n7lsMp+5bDL2U128tKuJF3Y08fPavTxYs5cJWamn/wjMGj8mpH8E1ja08KW/beVkZy//+8EZ3LRggqXxxMUJH5pTzIM1DRw72Unh6FGW7Wuk3G5Dg93Jh+eND3UoagSGTPwikgKkAjneZim+/+mZeNbsUWFmYEvGb143PaTJ0rca5X3P7WH0qET+/OkFLJo6eLPq/MwUPrmwhE8uLKHV1c3q3XZe2NnE714/wK/+tZ/C0SksqyzgmgsKmTtxLPFBWgWyt9/NA6tt/PLVfUzJTedPn55PRUFmUPa9fE4RP13TwNObj3Br1dSg7PNcHGnrpL2nX8/4I9RwZ/yfBW7Hk+Q38U7iPwX83Nqw1EgtqyxgTZ2DXUdPMaNodEhiaOvo4WtPbmfVbjtV5bn84MMz/R4Hzk5P5sb5E7hx/gROdvayZo/nj8BjG97mD28cJCc9mWWV+Vw9o5AFk7Msa+59+HgH//X4Fra83cZH54/nm9dVMiopeHXdE7PTmF+SxVObG/n8FVPCatgLBi7VoKWckWjIxG+M+QnwExH5ojHmwSDGpM7DwJaMoUj8Gw4c57bHt9Di6uYb107jPxZNGvE67aNHJfKhOcV8aE4xru4+auscvLizib9vOcKj699mTGoiS6flc/UFBSwK4PK5z20/xl1PbwcDP/vYbK67MDQfcFfMLeZrT21ny+E25kwIrw6l9acXZ9Mz/kjkT1VPk4hkGGOcIvINYA5wnzFms8WxqREY2JLxK1eWB22//W7DgzUN/HRNAxOyUnn6c4u4oDhwf3jSkxN4/8xxvH/mOLp6+3nV1uy5OLyriSc2NZKRnMCSaXlcNaOQy8tyR3R23tnTz70rd/GXDYeZPWEMP71xNuOzQrdmztUXFPDNZ3fy5KbGsEv8DXYX40ankJmia0NFIn8S//8YY54QkUuBZcAPgIeABZZGpkZsWWUB967czYGWdiYFoUn0sZOd3P74VtYfOM4Ns4v43w/OID3Zn/9aI5OSGM+yygKWVRbQ0+fm9X0tvLDjGKt32/nH1qOMSoynqiKXq2YUUl2R51csdU2n+OJjW9jb7OLzV0zhS0vLLBtG8ldGSiJXzyjkn9uO8s3rpofVEgL1TU49249g/vx2+maRXAs8ZIx5RkS+bV1I6nxdWZnPvSt389KuJssXmlq9284dT26jp8/NDz88k+Vziy3d37slJcRRVZ5HVXkeff1u1h84zgs7j/HSLjvP72giKSGOxaU5XD2jkPdNy2d06plnqMYY/rz+be5buZvMUYn86T8WnNEdK9RWzC3m71uOsHq3nffPDI+air5+N3ubXWF1nNS58SfxHxGRX+FppHK/iCTj34xfFSLFYz0tGVdZmPi7evv53gt1/OGNg1SOy+TBj85m8ggWJgukhPg4Fk3NYdHUHO75wAw2v32CF3Y08eLOY7y8x0FCnHDJ1ByunlHAldPziY8T7nxqOy/tsnN5WS4//MjM93THCrWFk7MZNzqFpzY3hk3iP3S8g54+t1b0RDB/Ev9H8LRM/IExps3bLvEOa8NS52tZZQEPrLbhONVFXoDXSt/X7OILj21hz7FT/MeiSdx5dXnY9SWNjxMuKsniopIs/ue6aWxrPMkLO4/x4s4m7n56B1//+w4yUhLp6Onj69dM49OXjvwitJV8Nf2/eGUv9lNdYdEYxKZLNUQ8f2budgBPD3h8DDhmZVDq/PkS/6rddm66eGJA3tMYwxObGvnWM7sYlRTP7z41j+qK8G9WISLMGj+GWePHcNdVFew55uTFnceotzv5/BVTmTl+TKhDHNaH5hTxs9q9/GPLET4bBmvE2+wuRGCqrsoZsay7AqdCamBLxkAkfmdXL1//+06e3XaUhZOz+fGNs8Li7PNciQjTx2UyfVxwJmIFwuTcdOZOHMuTmxq5ZfHkkNf02+xOJmSlBnVegwosy8bqRWS8iNSKyB4R2SUit3m3f1tEjojIVu/tGqtiiGW+lozr9rVysrP3vN5r2+E2rv3pWp7bcYyvXlnGnz+zICKTfiRbPqeYBoeL7Y0nQx0K9Xanju9HOCsv0vYBXzHGTMOzwNutIjLd+70fGWNmeW/PWxhDTPO1ZKytG1lLRrfb8KtX97H8oTfodxv+9tmL+UJ1adCWTFDvuPbCQpIT4kLejL27r58DLe06vh/hLEv8xphjvklexhgnsAcI36UGo9D5tGRsdnbzqT+8xXdfqGPp9Hye/6/LmDsx8EsQK/+MHpXIld7VV7v7QrdO//7mdvrdRpuvRLiglGWKSAkwG1jv3fQFEdkuIr/zLgCnLOBryfiq7dxaMr7W0MzVP3mN9ftb+c4NM/jFx+e8p/5dBd+KucWc7OylZs/IPsEFwuk1evSMP6JZnvhFJB14CrjdGHMKz6zfKcAsPNVBPxzidbeIyEYR2djc3Gx1mFHrXFoy9va7+e4Le/jEbzcwNjWRZ79wKR9fMDHkFxOVx6VTc8jPTA5pW0ab3UlCnARlRriyjqWJX0QS8ST9R40xTwMYY+zGmH5jjBv4DTB/sNcaY35tjJlnjJmXm5trZZhRzd+WjG+3drDil+v41av7+diCCTz7hUsp14/zYSU+TrhhdjGv2Jppdoam+2l9k4tJOWkkJegczkhmZVWPAL8F9hhjHhiwvXDA024AdloVg3pvS8bB/HPbUa796Wvsb3bxi4/P4f/ecIGW6oWpFXOL6Hcbntl6JCT7t9mdOr4fBaz8s70I+ARQ/a7Sze+LyA4R2Q5UAV+yMAaFZ7jnREcvbx08ccb2jp4+7nxyO1/8yxZK89N5/r8u45oLCod4FxUOpuZlMHP8GJ7c1IgxJqj77ujp4+3jHTq+HwUsm8BljFnLO81bBtLyzSDztWR8adc7LRmHa4mowtuKucX8zz92Br3Zzl6HC0Br+KOA/qbHgLTkBBaX5rB6tx232/DHdQe5/uev4+zq49FPL+COZRWa9CPI+y8sJCk+LugXeeu9a/SU5etSDZFOf9tjxJXTCzjS1slHfrWObz6zi0VTsnnhtsu4ZIg+uCp8jUlNYun0fJ7ddpSevsGv21jBZneSlBDHxGyt6Il0mvhjxPum5xMnsK2xjW9cO43f3nyR331wVfhZPreI4+091NYHr6a/3u6iNC9dZ25HAV2kLUZkpSXx8M3zKMgcFVELlKnBLS7NJSc9mac2NbKssiAo+2ywO1k4OTso+1LW0jP+GFJdka9JP0okxMfxoTlF1NQ5aHVZX9N/srOXYye7tJQzSmjiVypCLZ9TTJ/b8Oy2o5bvq8GuF3ajiSZ+pSJUeUEGFxSNDkp1T/3pxK9n/NFAE79SEWz5nCJ2HT3FnmOnLN2PrclJWlI8RWNGWbofFRya+JWKYB+YVURivPCUxWf9NruLsoIMXbAvSmjiVyqCZaUlUV2Rxz+2HqF3iLWYAsFmd+pSDVFEE79SEW7F3PG0uHr4l82a5ctbXN20tvdQqok/amjiVyrCXVGeS3ZakmUXeW1N2nwl2mjiVyrCJcbHcf2sItbscXCivSfg73+6oqdASzmjhSZ+paLAirnF9PS7+ef2wNf02+wuxqYmkqtLfEQNTfxKRYHp4zKZVphpyXCPze6kLF8reqKJJn6losSKucVsbzx5uiF6IBhjsDU5deJWlNHEr1SUuH7WOBLiAlvTf+xkF87uPl2jJ8po4lcqSuSkJ3NFeR5/33JkyP7K58p3YVcreqKLJn6losiKuUU4nN28trclIO+ni7NFJ8sSv4iMF5FaEdkjIrtE5Dbv9iwRWS0iDd77sVbFoFSsqa7IZ2xqYsCGe+qbXORnJjMmNSkg76fCg5Vn/H3AV4wx04CLgVtFZDpwF7DGGFMKrPE+VkoFQFJCHB+YOY5Vu+2c7Og97/fzVfSo6GJZ4jfGHDPGbPZ+7QT2AEXA9cAj3qc9AnzQqhiUikUr5o6np8/Nyh3nV9Pf7zY0ODTxR6OgjPGLSAkwG1gP5BtjjoHnjwOQN8RrbhGRjSKysbnZmjVIlIpGM4oyKc/POO+a/sPHO+jqdeuF3ShkeeIXkXTgKeB2Y4zfi4YbY35tjJlnjJmXm5trXYBKRRkRYfncIra83ca+ZteI38d2eqkGTfzRxtLELyKJeJL+o8aYp72b7SJS6P1+IeCwMgalYtEHZxURf541/b7EX5qnFT3RxsqqHgF+C+wxxjww4FvPAjd7v74ZeMaqGJSKVXmZKSwuzeHpzUfod5sRvUe93UXx2FGkJScEODoValae8S8CPgFUi8hW7+0a4HvAUhFpAJZ6HyulAmzF3PE0nerijX0jq+m3NWnzlWhl2Z9yY8xaYKhVnZZYtV+llMeSaXlkpiTw5KZGLis9t+tkvf1u9re4qJ42aO2FinA6c1epKJWSGM8HZo3jpV1NnOo6t5r+gy3t9PYbPeOPUpr4lYpiy+cU09Xr5vntx87pdaebr2jij0qa+JWKYrPGj2FKbto51/TbmpzECUzOTbMoMhVKmviVimIiwoq549l46AQHW9r9fl293UlJThopifEWRqdCRRO/UlHuhtlFxAk8tdn/s36b3aXj+1FME79SUa5gdAqXluby9OYjuP2o6e/q7edQa7uO70cxTfxKxYDlc4o40tbJm/tbz/rcvQ4XbgPlulRD1NLEr1QMWFZZQEZyAk/6Mdxj0+YrUU8Tv1IxICUxnutmFvLCjiZc3X3DPrfe7iQpPo6J2VrRE6008SsVI1bMLaazt5/ndwxf029rcjI5N43EeE0P0Ur/ZZWKEXMmjGVSTtpZV+y02V06vh/lNPErFSNEhOVzilh/4DiHj3cM+hxnVy9H2jq1oifKaeJXKobcMKcYGaamv8HhadyiiT+6aeJXKoYUjRnFJVOyeWpz46A1/bYmT0WPTt6Kbpr4lYoxK+YWc/h4J28dPP6e79nsLkYlxlM8dlQIIlPBoolfqRizrLKAtKT4QRdus9mdlOWnExc3VCsNFQ008SsVY1KTErj2wkKe33GMjp4za/rr7U4d348BmviVikHL5xTT3tPPizubTm873t5Ds7NbE38MsLLZ+u9ExCEiOwds+7aIHHlXD16lVJBdVJLFhKzUM4Z7Ti/VoDX8Uc/KM/4/AFcNsv1HxphZ3tvzFu5fKTWEuDjhQ3OKWLe/lcYTnpr+BrtW9MQKyxK/MeZfwHvLBpRSYWH5nGKMgb9vPgJ4xvczUxLIz0wOcWTKaqEY4/+CiGz3DgWNHepJInKLiGwUkY3Nzc3BjE+pmDA+K5WLJ2fx1OZGjDHYmjxLNYhoRU+0C3bifwiYAswCjgE/HOqJxphfG2PmGWPm5ebmBik8pWLL8jnFHGztYNOhE9TbnZTqME9MCGriN8bYjTH9xhg38BtgfjD3r5Q60zUXFJKaFM8vXtnHyc5eHd+PEUFN/CJSOODhDcDOoZ6rlLJeWnICV80ooKbOAegaPbHCynLOvwDrgHIRaRSRTwPfF5EdIrIdqAK+ZNX+lVL+WTG3+PTX2nUrNiRY9cbGmI8Osvm3Vu1PKTUyF0/KpmjMKLr73GSna0VPLLAs8SulIkNcnHDv9ZUcb+8JdSgqSDTxK6VYMi0/1CGoINK1epRSKsZo4ldKqRijiV8ppWKMJn6llIoxmviVUirGaOJXSqkYo4lfKaVijCZ+pZSKMWKMCXUMZyUizcChEb48B2gJYDiRTo/HO/RYnEmPx5mi4XhMNMa8Z137iEj850NENhpj5oU6jnChx+MdeizOpMfjTNF8PHSoRymlYowmfqWUijGxkPh/HeoAwowej3fosTiTHo8zRe3xiPoxfqWUUmeKhTN+pZRSA2jiV0qpGBPViV9ErhKRehHZKyJ3hToeq4nIeBGpFZE9IrJLRG7zbs8SkdUi0uC9HzvgNXd7j0+9iCwLXfTWEJF4EdkiIiu9j2P5WIwRkSdFpM77f2RhjB+PL3l/T3aKyF9EJCVmjocxJipvQDywD5gMJAHbgOmhjsvin7kQmOP9OgOwAdOB7wN3ebffBdzv/Xq697gkA5O8xys+1D9HgI/Jl4HHgJXex7F8LB4BPuP9OgkYE6vHAygCDgCjvI//BnwqVo5HNJ/xzwf2GmP2G2N6gMeB60Mck6WMMceMMZu9XzuBPXj+g1+P55ce7/0HvV9fDzxujOk2xhwA9uI5blFBRIqBa4GHB2yO1WORCSwGfgtgjOkxxrQRo8fDKwEYJSIJQCpwlBg5HtGc+IuAwwMeN3q3xQQRKQFmA+uBfGPMMfD8cQDyvE+L9mP0Y+BrgHvAtlg9FpOBZuD33qGvh0UkjRg9HsaYI8APgLeBY8BJY8wqYuR4RHPil0G2xUTtqoikA08BtxtjTg331EG2RcUxEpHrAIcxZpO/LxlkW1QcC68EYA7wkDFmNtCOZyhjKFF9PLxj99fjGbYZB6SJyE3DvWSQbRF7PKI58TcC4wc8LsbzUS6qiUginqT/qDHmae9mu4gUer9fCDi826P5GC0CPiAiB/EM81WLyJ+JzWMBnp+v0Riz3vv4STx/CGL1eLwPOGCMaTbG9AJPA5cQI8cjmhP/W0CpiEwSkSTgRuDZEMdkKRERPGO4e4wxDwz41rPAzd6vbwaeGbD9RhFJFpFJQCmwIVjxWskYc7cxptgYU4Ln377GGHMTMXgsAIwxTcBhESn3bloC7CZGjweeIZ6LRSTV+3uzBM81sZg4HgmhDsAqxpg+EfkC8BKeCp/fGWN2hTgsqy0CPgHsEJGt3m3/DXwP+JuIfBrPf/gPAxhjdonI3/AkgD7gVmNMf9CjDq5YPhZfBB71ngjtB/4dz8lfzB0PY8x6EXkS2Izn59uCZ4mGdGLgeOiSDUopFWOieahHKaXUIDTxK6VUjNHEr5RSMUYTv1JKxRhN/EopFWM08Ss1BO9qlp8f5vtv+PEersBGpdT508Sv1NDGAO9J/CISD2CMuSTYASkVCFE7gUupAPgeMMU7Ga4XcOFZ0GsWMF1EXMaYdO/aSM8AY4FE4BvGmGcGf0ulQk8ncCk1BO8KpyuNMTNE5ArgOWCGd1leBiT+BCDVGHNKRHKAN4FSY4zxPSdEP4JSg9IzfqX8t8GX9N9FgP8rIovxLAFdBOQDTcEMTil/aeJXyn/tQ2z/OJALzDXG9HpXBE0JWlRKnSO9uKvU0Jx4WliezWg8a//3ikgVMNHasJQ6P3rGr9QQjDGtIvK6iOwEOgH7EE99FPiniGwEtgJ1QQpRqRHRi7tKKRVjdKhHKaVijCZ+pZSKMZr4lVIqxmjiV0qpGKOJXymlYowmfqWUijGa+JVSKsb8f1+h+TyLKgoaAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "ax = df['steps_in_trial'].plot()\n", - "ax.set_xlabel(\"trial\")\n", - "ax.set_ylabel(\"steps in trial\")\n", - "ax.legend([\"steps\"])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Conclusion\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/XCS_Experiments/XNCS_Woods1_pre_populated.ipynb b/XCS_Experiments/XNCS_Woods1_pre_populated.ipynb new file mode 100644 index 0000000..5d25f08 --- /dev/null +++ b/XCS_Experiments/XNCS_Woods1_pre_populated.ipynb @@ -0,0 +1,677 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "['.', '.', '.', '.', '.', '.', '.', 'O']\n", + "\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[36mX\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n" + ] + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_woods\n", + "\n", + "maze = gym.make('Woods1-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xncs import Configuration\n", + "from utils.nxcs_utils import *\n", + "\n", + "cfg = Configuration(number_of_actions=8,\n", + " max_population=1800,\n", + " learning_rate=0.2, # beta\n", + " epsilon_0=0.01,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08, # mu\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " deletion_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction = 10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " lmc=10,\n", + " lem=20\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 1, 'reward': 1000.0, 'perf_time': 0.0101880999999997, 'numerosity': 1800, 'population': 1622, 'average_specificity': 8.035, 'fraction_accuracy': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 8, 'reward': 1078.3271337169067, 'perf_time': 0.09919509999999931, 'numerosity': 1800, 'population': 1548, 'average_specificity': 10.86, 'fraction_accuracy': 0.18455530966912712}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 7, 'reward': 1101.748979356001, 'perf_time': 0.09865720000000522, 'numerosity': 1800, 'population': 1568, 'average_specificity': 10.797222222222222, 'fraction_accuracy': 0.2016524165428857}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 6, 'reward': 1164.1117384164033, 'perf_time': 0.09157989999999927, 'numerosity': 1800, 'population': 1588, 'average_specificity': 12.010555555555555, 'fraction_accuracy': 0.20585388697704013}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 9, 'reward': 1052.5560632430102, 'perf_time': 0.1354529000000042, 'numerosity': 1800, 'population': 1601, 'average_specificity': 14.02111111111111, 'fraction_accuracy': 0.1826998071372673}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 8, 'reward': 1074.0450228370598, 'perf_time': 0.10274409999999534, 'numerosity': 1800, 'population': 1596, 'average_specificity': 15.21888888888889, 'fraction_accuracy': 0.27321950669337375}\n", + "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 9, 'reward': 1000.0000016776559, 'perf_time': 0.15066450000000486, 'numerosity': 1800, 'population': 1591, 'average_specificity': 15.515, 'fraction_accuracy': 0.27757357453773884}\n", + "INFO:lcs.agents.Agent:{'trial': 1700, 'steps_in_trial': 2, 'reward': 1537.3784862796801, 'perf_time': 0.033960400000012214, 'numerosity': 1800, 'population': 1600, 'average_specificity': 15.283888888888889, 'fraction_accuracy': 0.2718877524777994}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 10, 'reward': 1056.7966973842194, 'perf_time': 0.12077990000000227, 'numerosity': 1800, 'population': 1605, 'average_specificity': 16.441666666666666, 'fraction_accuracy': 0.20279985359056343}\n", + "INFO:lcs.agents.Agent:{'trial': 2200, 'steps_in_trial': 12, 'reward': 1017.5512716605906, 'perf_time': 0.18368450000002667, 'numerosity': 1800, 'population': 1584, 'average_specificity': 15.605, 'fraction_accuracy': 0.26546746519449194}\n" + ] + } + ], + "source": [ + "from utils.nxcs_utils import avg_experiment as XNCSExp\n", + "\n", + "number_of_experiments = 1\n", + "explore = 0\n", + "exploit = 2500\n", + "\n", + "df = XNCSExp(\n", + " maze=maze,\n", + " cfg=cfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=True\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracy
trial
011000.0000000.010188180016228.0350000.000000
10051199.1438070.059476180015598.1872220.158505
20081078.3271340.0991951800154810.8600000.184555
30061146.0024470.0588811800156811.2316670.174072
40061156.5537440.0834731800156710.8966670.185611
50071101.7489790.0986571800156810.7972220.201652
60081124.5130900.1189271800157111.2388890.199141
70061164.1117380.0915801800158812.0105560.205854
80061140.8108200.0773191800159312.4200000.203512
90021665.2151090.0199091800160412.3316670.190575
100091052.5560630.1354531800160114.0211110.182700
1100191001.4940680.2168191800159814.6505560.250071
120081074.0450230.1027441800159615.2188890.273220
1300271000.1057960.3677141800158214.3816670.285966
140021000.0000000.0329811800157814.9622220.284248
150091000.0000020.1506651800159115.5150000.277574
160061137.6137690.0716941800158915.1894440.276329
170021537.3784860.0339601800160015.2838890.271888
180071141.5408870.0965211800159015.6222220.232106
190041345.5442400.0405511800159116.7438890.208933
2000101056.7966970.1207801800160516.4416670.202800
210021000.0000000.0433601800160016.3188890.229790
2200121017.5512720.1836851800158415.6050000.265467
230071095.6735680.0979501800160116.0716670.306780
240051197.9607080.0571931800159215.9027780.327172
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 1 1000.000000 0.010188 1800 1622 \n", + "100 5 1199.143807 0.059476 1800 1559 \n", + "200 8 1078.327134 0.099195 1800 1548 \n", + "300 6 1146.002447 0.058881 1800 1568 \n", + "400 6 1156.553744 0.083473 1800 1567 \n", + "500 7 1101.748979 0.098657 1800 1568 \n", + "600 8 1124.513090 0.118927 1800 1571 \n", + "700 6 1164.111738 0.091580 1800 1588 \n", + "800 6 1140.810820 0.077319 1800 1593 \n", + "900 2 1665.215109 0.019909 1800 1604 \n", + "1000 9 1052.556063 0.135453 1800 1601 \n", + "1100 19 1001.494068 0.216819 1800 1598 \n", + "1200 8 1074.045023 0.102744 1800 1596 \n", + "1300 27 1000.105796 0.367714 1800 1582 \n", + "1400 2 1000.000000 0.032981 1800 1578 \n", + "1500 9 1000.000002 0.150665 1800 1591 \n", + "1600 6 1137.613769 0.071694 1800 1589 \n", + "1700 2 1537.378486 0.033960 1800 1600 \n", + "1800 7 1141.540887 0.096521 1800 1590 \n", + "1900 4 1345.544240 0.040551 1800 1591 \n", + "2000 10 1056.796697 0.120780 1800 1605 \n", + "2100 2 1000.000000 0.043360 1800 1600 \n", + "2200 12 1017.551272 0.183685 1800 1584 \n", + "2300 7 1095.673568 0.097950 1800 1601 \n", + "2400 5 1197.960708 0.057193 1800 1592 \n", + "\n", + " average_specificity fraction_accuracy \n", + "trial \n", + "0 8.035000 0.000000 \n", + "100 8.187222 0.158505 \n", + "200 10.860000 0.184555 \n", + "300 11.231667 0.174072 \n", + "400 10.896667 0.185611 \n", + "500 10.797222 0.201652 \n", + "600 11.238889 0.199141 \n", + "700 12.010556 0.205854 \n", + "800 12.420000 0.203512 \n", + "900 12.331667 0.190575 \n", + "1000 14.021111 0.182700 \n", + "1100 14.650556 0.250071 \n", + "1200 15.218889 0.273220 \n", + "1300 14.381667 0.285966 \n", + "1400 14.962222 0.284248 \n", + "1500 15.515000 0.277574 \n", + "1600 15.189444 0.276329 \n", + "1700 15.283889 0.271888 \n", + "1800 15.622222 0.232106 \n", + "1900 16.743889 0.208933 \n", + "2000 16.441667 0.202800 \n", + "2100 16.318889 0.229790 \n", + "2200 15.605000 0.265467 \n", + "2300 16.071667 0.306780 \n", + "2400 15.902778 0.327172 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEGCAYAAAB7DNKzAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAuNElEQVR4nO3dd3iUZdr38e9JAiSQAiGh9w4CoYQmdrH3tTy6oNi7uOuquO/66Kq7rq5tdV3riqiriL2BPgqyiIh0Eqr0EkoSkDQg/Xr/mIGNLAkZMiWZ+X2OI8fM3FPu85qBOefq5pxDRESkKg1CHYCIiNRtShQiIlItJQoREamWEoWIiFRLiUJERKoVHeoAaio5Odl17tw51GGIiNQrixYt2uWcS6nNa9SbRNG5c2cWLlwY6jBEROoVM9tc29dQ05OIiFRLiUJERKqlRCEiItWqN30Uh1NaWkpmZiZFRUWhDiVsxMTE0L59exo2bBjqUESkjqjXiSIzM5P4+Hg6d+6MmYU6nHrPOcfu3bvJzMykS5cuoQ5HROqIet30VFRURIsWLZQk/MTMaNGihWpoIvIL9TpRAEoSfqb3U0QOVe8ThYiEt8Vb9vDlsh1UVGhLhFBRoqijzj77bHJzcwF47rnn6NOnD2PGjOGzzz7jscceq/a5xx57LACbNm3inXfeCXSoIgFTVFrOTW8t4pa3F3PO379n1poctIdO8NXrzuxwNm3atIPXX3jhBb788suDHcznn39+tc/94YcfgP8kil//+teBC1QkgN6Zt4WcgmJuP7k7nyzdxriJ8xnVvQX3ndmH/u0TQx1exFCNohb27t3LOeecQ2pqKv369WPKlCl07tyZCRMmMGzYMIYNG8a6desAyMnJ4eKLL2bo0KEMHTqUOXPmAFBYWMg111xD//79GTBgAB9++CHgWbJk165d3HzzzWzYsIHzzz+fZ555hkmTJnH77bcDkJWVxUUXXURqaiqpqakHE0RcXBwA9913H7Nnz2bgwIE888wzHH/88SxduvRg/KNGjSIjIyNYb5eIT4pKy3lx1npGdm3B3Wf0YsbvTuSBc/uycns+5z3/PXdMXsLm3XtDHWZECJsaxUOfr2Dl9ny/vmbftgk8eN4xVd7/1Vdf0bZtW6ZOnQpAXl4eEyZMICEhgfnz5/Pmm2/ym9/8hi+++II777yT3/72txx33HFs2bKFM844g1WrVvHII4+QmJjIsmXLANizZ88vzvHSSy/x1VdfMXPmTJKTk5k0adLB+8aPH8+JJ57Ixx9/THl5OYWFhb947mOPPcaTTz7JF198AUBSUhKTJk3ib3/7G2vWrKG4uJgBAwb4460S8bsDtYm/XzEIgMbRUVx7XBcuSWvPK7M28M/vN/DV8h2MGd6J20/pTnJc4xBHHL5Uo6iF/v37M336dCZMmMDs2bNJTPRUha+44oqDl3PnzgVg+vTp3H777QwcOJDzzz+f/Px8CgoKmD59OrfddtvB12zevHmNz//tt99yyy23ABAVFXXw/FW59NJL+eKLLygtLWXixIlcffXVvhRXJGiKSst5adZ6RnRNYkTXFr+4LyGmIXef0YtZ95zMpWkdeOvHzZz415k8N2Mte4vLQhRxeAubGkV1v/wDpWfPnixatIhp06bx+9//ntNPPx345RDTA9crKiqYO3cusbGxv3gN51zQhqQ2adKE0047jU8//ZT33ntPq/FKnTV5/hayC4p59vJBVT6mVUIMj17Un2tHdeGJ/1vN09+s4c25m/nN6B78z9AONIzS72B/0TtZC9u3b6dJkyaMHTuWu+++m8WLFwMwZcqUg5cjR44E4PTTT+f5558/+NwDfQWHHj+06ak6p556Ki+++CIA5eXl5Of/suktPj6egoKCXxy7/vrrGT9+PEOHDiUpKanG5xIJlqLScl7893qGd0liZLcWR3x895ZxvHxlGh/ecixdkptw/yfLOeOZ73h2+lq+W5ND3v7SIEQd3pQoamHZsmUMGzaMgQMH8uc//5n7778fgOLiYoYPH86zzz7LM888A3iGuC5cuJABAwbQt29fXnrpJQDuv/9+9uzZQ79+/UhNTWXmzJk1Pv+zzz7LzJkz6d+/P0OGDGHFihW/uH/AgAFER0eTmpp6MI4hQ4aQkJDANddc44+3QMTv3vXWJu4c3cOn5w3p1Jz3bhrJa+PSiIuJ5m8z1nDVxPkMfPhrTnt6Fvd+kM7k+VtYvTOfcs3J8InVlzHJaWlp7tCmklWrVtGnT58QRXR4BzZYSk5ODnUoh7V9+3ZOOukkVq9eTYMGh/+dUBffV4kMRaXlnPjETDq1aMqUG0fUqlm2oKiUjMw8Fm/ew5KtuSzZsoc9+zy1i7jG0aR2SGRQh+YM6tiMgR2a0SJMO8PNbJFzLq02rxE2fRRyZG+++SZ/+MMfePrpp6tMEiKhNGXBVrLyi3nmsoG17ruLj2nIqO7JjOru+dHmnGPT7n0s2bKHJVtyWbxlDy/OWn+wdtG7dTz/HJdG++ZNal2OcKMahfwXva8SCkWl5Zz0xL/pmNSEKTfVrjZRU/tKyliWmcfiLbm8MHMdXVKa8t5NI4lpGBXwcweLP2oU9f5nZX1JdPWF3k8JlfcWbmVnfhF3ju4RvJGAjaIZ3rUFt5zUjacuSyUjM4+HPl9x5CdGmHqdKGJiYti9e7e+3PzkwH4UMTExoQ5FIkxxWTkvzFzP0M7NObYGI50C4fRjWnPbyd2YPH8rUxZsCUkMdVW97qNo3749mZmZ5OTkhDqUsHFghzuRYHpvgac28eSlqSFd6v6u03qRkZnH/366gj5tEhjQvlnIYqlLAtpHYWYTgXOBbOdcv0rH7wBuB8qAqc65e4/0WofroxCR+q+4zNM30a5ZLO/fPDLke6L8vLeE8/7+PQCf33EcSU0b+e21t+fuJ7ZhFM39+JpHUh/6KCYBZ1Y+YGYnAxcAA5xzxwBPBjgGEanD3luYyY684PZNVCepaSNeHDuYnIJi7nx3iV/mXDjneH3ORo57/FuG/OkbLnt5Lq98t571OYVHfnIdENBE4Zz7Dvj5kMO3AI8554q9j8kOZAwiUncVl5Xz4sx1DOnUnOO61525RwPaN+PhC45h9tpdPPPNmlq9Vml5BX/4ZDkPfb6SU/u04vaTu1NQVMaj01Zz6lOzOOXJf/PnqSuZt2E3ZeUVfiqBf4Wij6IncLyZ/RkoAu52zi043APN7EbgRoCOHTsGL0IRCYr3F2ayPa+Ixy4eUCdqE5VdPqwjS7fm8vzMdaR2aMZpfVv5/Bq5+0q49e3F/LB+N7ee1I27T+9FgwbGXaf3YlvufmasymL6qmze+GEzr87eSGJsQ07ulcLovq04oWcKCTENA1Ay3wV8HoWZdQa+ONBHYWbLgW+BO4GhwBSgqztCIOqjEAkvJWUVnPTETFonxvDhLcfWuUQBnrkdl708l405e/nsjuPokty0xs9dn1PIdZMWsD23iMcu7s+vBlc9SKSwuIzZa3KYviqbb1dnsWdfKdENjOFdkxjdpxUXDGx31H0l9aGP4nAygY+cx3ygAqg7dU4RCYr3F21le14Rd47uWSeTBEBMwyheGDOY6Cjj5rcWsa+kZsuYz16bw4X/mENhcRmTbxxebZIAz5IiZ/Vvw1OXpbLw/tP44OaRXH98V7Lyi3no85XsKiz2R3GOWigSxSfAKQBm1hNoBOwKQRwiEiIlZRW8MHM9gzo244Qedft3YvvmTXjuikGsyS7g9x8tO+K8rTfnbuLq1xfQrlksn9w2iiGdfFulOaqBkdY5ifvO6s30u07ku3tOpkfLuNoUodYCmijMbDIwF+hlZplmdh0wEejqbYJ6Fxh3pGYnEQkvHyzKZFvufu48tW6MdDqS43ukcPfpvfh06XYm/bDpsI8pLa/gfz9ZzgOfruDkXi354JZj/bJuVMcWTUL+HgW0M9s5d0UVd40N5HlFpO4qKavgHzPXMbBDM07smRLqcGrslhO7sXRrLn+euop+7RIZ2vk/NYW8faXc9s5ivl+3i5tO7Mq9Z/QmqkHdT4A1Va+X8BCR+ufDxd7aRB2ZN1FTDRoYT12WSoekJtz69mKy84sA2JBTyEUvzGHext08cckAfn9Wn7BKEqBEISJBVFJWwfPfeoabnlSPahMHJMQ05KWxQygsKuP2d5Ywa42n0zp3fynv3DCCS9M6hDrEgFCiEJGg2JG3nzsmL2Zb7n5+U89qE5X1ah3PYxf3Z/6mnxk3cT5tEmP59LZRv2iKCjf1elFAEan7SssreH3ORv42fS3lFY57z+xVL2sTlV0wsB1bdu9j4669PHTBMcTXkYlxgaJEIRKGVm7PZ9qyHVx1bCdaxodu2fgfN+zmgU+XsyarkNF9WvLgecfQISk8dpC741Tf9vSuz5QoRMJMRmYuY/85j/yiMib9sInxp3bn6mO70Cg6eC3N2QVF/GXaaj5eso32zWP551VpjD6KJTCkblCiEAkjS7fmcuVr80iMbciLY4fw2vcbeXTaat6dv5X/PbcvJ/duGdDzl5VX8K8fN/PU12soLqvgjlO6c+tJ3YltFD5bi0YiJQqRMLF4yx7GvTaf5k0bMfnGEbRrFsuo7snMXJ3NI1+s5JpJCzild0v+99y+Pq1Z5Mv57/94OSt35HN8j2QeOv8YuqaEdkax+EfAFwX0Fy0KKFK1RZt/ZtzEBbSIa8TkG0bQtlnsL+4vKatg0g8beW7GOorLyrl2VBduP6W7Xzphf95bwuNfrmbKwq20TojhgfP6cla/1vV2VFO48ceigEoUIvXcgk0/c/XE+bRMiGHyDSNonVh153V2QRFPfPUT7y/KJCW+MRPO7M2vBrWjgY8TxIpKy9mQs5d5G3fz7Iy1FBaVce1xXRh/ag/iGquhoi5RohCJcPM3/szVr8+ndUIMk28cQauEmo1wSt+ayx8/X8GSLbmkdmjGH8/ry6COzf/rcSVlFWzavZefdhawNquANVmFrMkuYNOuvRzY+G14lyQeubAfPVvF+7No4idKFCIh9sYPm/hmZRYvXTkk6L+kf9ywm2snLaBNoqcm0bKGSeKAigrHx0u28dhXq8kpKObiwe05tU9L1mYVsiargDVZBWzctZcyb0ZoYNA5uSk9W8bTs1UcPVrF06t1PD1axqmZqQ5TohAJoYnfb+ThL1YCMHZER/50Yf+gnfuH9bu4btJC2jeP5e0bhtdqrkRhcRnPf7uO177fQGm5www6JjWhhzcheJJBPF1TmhLTUKOX6ht/JAo1JoochTfnbuLhL1ZyxjGtaJMYy6QfNnF2vzYcG4R9n+es28V1byygY1IT3rlhBMlxjWv1enGNo7nvrN5cNbITuwtL6N4yTsNZ5Re01pOIj96et5kHPl3B6D6t+PsVg5lwZm+6JDflng8yKCyu2Q5oR2v22hyunbSAzi2aMtkPSaKyts1i6d8+UUlC/osShYgPpizYwh8+Xs4pvVvyjzGDaBTdgNhGUTxxyQC25+3nsS9XBezcs9bkcN0bC+mS3JR3bhhBCz8mCZHqKFGI1NAHizK576NlnNgzhRfGDKZx9H9+ead1TuK6UV34149b+GGd/3f2nflTNje8uZDuKXFMvmEESU0b+f0cIlVRohCpgY+XZHLPB+mM6pbMy1cOOWyn7u9O7xWQJqhZa3K46c1F9GwVxzs3DKe5koQEmRKFyBF8lr6d372XzoguLXj1qrQqR/5UboL6yzT/NEHNXb+bG99cSPeWcbx93QiaNVGSkOBTohCpxrRlO/jtlKWkdU7itavTjtjRe6AJ6u15W5hTyyaoRZv3HBzd9NZ1w0hsEt57HkjdpUQhUoWvlu9k/OQlDOrQjNevHkqTRjUbTX73Gb3omtyUe2vRBLUsM8+zLEd8Y96+frg6riWklChEDmP6yizumLyY/u0TmXTtMJr6MOs6pmEUT1x69E1Qq3fmc+XEeSTENuSdo5hxLeJvShQih5i5Optb315M3zYJvHHtsKNammNIpySuP873Jqj1OYWM/ec8Gkc3OOwqsCKhoEQhUsmsNTnc9K9F9Godz5vXDSehFstw/+5035qgtuzex5hX5wHw9vUj6NgiPLYMlfpPiULEa8Gmnz0jjFLiPJ3HsbXrPK7cBPXoEZqgtufu54pXf6SorJx/XT+c7i214Y/UHUoUIsC67AKuf2Mh7ZrH8q/rh/ttGOqBJqh35m3h+7WHb4LKzi/i16/+SP7+Ut66dji9Wyf45dwi/qJEIREvK7+IcRMX0Ci6AW9cM8zvs55/d3ovuqY0ZcKHGRQUlf7ivt2FxYz55zyyC4qZdO1Q+rdP9Ou5RfxBiUIiWkFRKVe/voDcfSW8fvVQOiT5v18gpmEUT1ySyo68/Tw6bfXB43n7Srnytfls+Xkfr40bypBOSX4/t4g/KFFIxCopq+Dmfy1ibVYBL44dQr92gfs1P6RTc64/viuT53uaoAqKSrnq9fmsyy7klavSGNmtRcDOLVJb2o9CIpJzjgkfZjBn3W6evDSVE3qmBPycd53Wk+mrspjwYQZtm8WwYlseL4wZzIlBOLdIbdS4RmFmqhdL2Pjr//3Ex0u2cc8ZvbhkSPugnLNyE9SizXt45n8GcvoxrYNybpHa8KVGMc/MlgKvA1+6+rKHqsgh3py7iRf/vZ4xwzty60ndgnruIZ2a88z/DCSucTSn9mkV1HOLHC1fEkVPYDRwLfB3M5sCTHLOrQlIZCIB8NXynTz4mWd3uocv6IeZBT2GCwa2C/o5RWqjxk1PzuMb59wVwPXAOGC+mc0ys5EBi1DETxZt/pk7313CwA7N+PsVg4hqEPwkIVIf1bhGYWYtgLHAlUAWcAfwGTAQeB/oEoD4RPxifU4h172xkLbNYnlt3FDtCy3iA1+anuYCbwEXOucyKx1faGYv+TcsEf/Jzi9i3MT5RDewgEyoEwl3vsyjuN8590jlJGFmlwI45x4/3BPMbKKZZZvZ8sPcd7eZOTNL9jlqkRoqLC7jmkkL+HlvCa9fPUwL7YkcBV8SxX2HOfb7IzxnEnDmoQfNrANwGrDFh/OL+KS0vIJb/rWI1TsL+MeYwVoeQ+QoHbHpyczOAs4G2pnZc5XuSgCqXTvZOfedmXU+zF3PAPcCn9Y8VBHfPPjZCmav3cVfLxnAyb1ahjockXqrJn0U24GFwPnAokrHC4Df+npCMzsf2OacSw/F0ESJDHv2ljBlwVauHNGJy9I6hDockXrtiInCOZcOpJvZ2865o9sA2MvMmgB/AE6v4eNvBG4E6NixY21OLRHmm5VZlFc4JQkRPzhiH4WZvee9usTMMg798/F83fAMo003s01Ae2CxmR12HQPn3CvOuTTnXFpKitbDkZqbumwHHZJi6ddOezuI1FZNmp7u9F6eW9uTOeeWAQcbi73JIs05V/NNhUWOIG9fKXPW7eK647qEZOa1SLg5Yo3CObej0mOznHObnXObgWyg2v+FZjYZz/yLXmaWaWbX1TZgkSP5euVOyiocZ/dvE+pQRMKCLxPu3geOrXS73HtsaFVP8C73USXnXGcfzi9SI9OW7aBds1gGaDisiF/4Mo8i2jlXcuCG97qmuEqdkre/lO/X7eLs/q3V7CTiJ74kihzv0FYAzOwCQH0LUqdMX5lFabmanUT8yZemp5uBt83seTx9E1uBqwISlchRmrZsB20TYxjYoVmoQxEJGzVOFM659cAIM4sDzDlXELiwRHyXX1TK7LW7uHJkJzU7ifhRTZbwGOuc+5eZ3XXIcQCcc08HKDYRn8xYlUVJeYWanUT8rCY1igPLbcYHMhCR2pqasZM2iTEMUrOTiF/VJFEc2FR4pXPu/UAGI3K0CopK+W5tDmOGd6SBdq4T8auajHo628wacuQlxUVC5tvV2ZSUVXCOmp1E/K4mNYqv8AyDbWpm+ZWOG56ttLWYjoTc1IwdtEpozOCOzUMdikjYqckSHvc45xKBqc65hEp/8UoSUhcUFpfx7zU5nNWvjZqdRAKgxhPunHMXBDIQkaN1oNlJo51EAqMmy4x/770sMLP8Qy8DH6JI9b5ctoOW8Y1J66RmJ5FAqMnGRcd5LzU8VuqcfSVlzPwpm8vSOqjZSSRAatz0ZGYjzCy+0u04MxsemLBEaubb1dkUlarZSSSQfFkU8EWgsNLtfd5jIiHz5bKdJMc1ZmjnpFCHIhK2fEkU5pxzB2445yrwbVFBEb/aX1LOt6uzObNfK6LU7CQSML4kig1mNt7MGnr/7gQ2BCowkSOZ+VM2+0vL1ewkEmC+JIqb8exwtw3IBIYDNwYiKJGamLZsBy2aNmJ4lxahDkUkrPmyzHg2cHkAYxGpsaJST7PThYPaqdlJJMB8GfXU08xmmNly7+0BZnZ/4EITqdq/f8pmX0m51nYSCQJfmp5exbMwYCmAcy4D1TAkRKYt20lS00YM76LRTiKB5kuiaOKcm3/IsTJ/BiNSE0Wl5cxYlcUZx7QiOsqXf8IicjR8+V+2y8y6AQ7AzC4BdgQkKpFqzFqTw94SjXYSCRZf5kHcBrwC9DazbcBGYExAohKpxpfLdtC8SUNGdNVoJ5Fg8GXU0wZgtJk1BRo45woCF5bI4RWVljN9VTbn9G9DQzU7iQSFL6OeWpjZc8Bs4N9m9qyZ6SedBNXstbsoLC7j7AFqdhIJFl9+kr0L5AAXA5d4r08JRFAiVfly2Q4SYxtybDf9RhEJFl/6KJKcc49Uuv0nM7vQz/GIVKm4rJxvVmZxZr/WanYSCSJf/rfNNLPLzayB9+8yYGqgAhM51Pdrd1GgZieRoPMlUdwEvAMUAyV4mqLu0k534qvS8gpmrMpi0eY95O0rrfHzpi3bSUJMNKO6JQcwOhE5lC+jnrTDndTa1p/3Mf7dJSzZknvwWHJcY7qlNKV7yzi6pcR5LlvG0TYxBjPPOk4lZRV8s3Inp/VtTaNoNTuJBFONE4WZjQKWOuf2mtlYYDDwN+fcloBFJ2FlasYO7vsoAxw8eWkqzZs0ZF12IetzClmXXcjn6dvJL/rPZP8mjaLomtKU7ilxxDSMIr+ojHMGtA5hCUQiky+d2S8CqWaWCtwLvAa8BZwYiMAkfBSVlvPwFyt5Z94WBnZoxt+vGESHpCYAnNqn1cHHOefYVVhyMHEcuFywaQ/bcveTHNeYUd3V7CQSbL4kijLnnDOzC4BnnXOvmdm4QAUm4WFNVgG3v7OYNVmF3HxiN353es8qRyyZGSnxjUmJb/xfs673FpdR4RyNo6OCEbaIVOJLoigws98DY4ETzCwKaBiYsKS+c84xef5WHvp8BfEx0bx57TBO6Jly1K/XtLF23RUJFV/+9/0P8GvgOufcTjPrCDwRmLCkPsvbX8r/+2gZU5ft4PgeyTx1WSot42NCHZaIHCVfRj3tBJ6udHsL8OaB22Y21zk30r/hSX2zeMsexk9ews68Iiac2ZubTuhKA+1AJ1Kv+XOc4X/9ZDSziWaWfWBXPO+xJ8xstZllmNnHZtbMjzFIiFRUOF7893oufWkuAO/dPJJbTuqmJCESBvyZKNxhjk0Czjzk2DdAP+fcAGANnl3zpB7LLihi3Ovzefyr1Zx5TGumjj+ewR2bhzosEfGTgPYQOue+M7POhxz7utLNH/EsMCj1VO6+Ei76xw/sKizm0Yv6c8WwDgcnyYlIePBnojiab4drqWYFWjO7EbgRoGPHjkcZlgSKc44JH2aQlV/EezePVC1CJEz51PRkZp3MbLT3eqyZVV7W40ofX+sPePbcfruqxzjnXnHOpTnn0lJSjn5opQTGO/O38H8rsrjnjF5KEiJhzJeNi24APgBe9h5qD3xy4H7n3PLDPK2q1xoHnAuMcc4drm9D6rg1WQU8/PlKju+RzA3Hdw11OCISQL7UKG4DRgH5AM65tUBLX09oZmcCE4DznXP7fH2+hF5RaTnjJy8hrnE0T12WqpFNImHOl0RR7JwrOXDDzKI5/EgnKj1mMjAX6GVmmWZ2HfA8EA98Y2ZLzeylo4hbQugv01axemcBT16qiXQikcCXzuxZZvb/gFgzOw24Ffi8uic45644zOHXfDin1DHTV2bxxtzNXDuqCyf39rlCKSL1kC81ivvw7JO9DM8mRtOA+wMRlNRNO/OKuOeDdPq2SWDCWb1CHY6IBIkvS3hUAK96/yTClFc47npvKUWlFTx3xSCt4ioSQXzZuGgZ/90nkQcsBP7knNvtz8Ckbnn5u/X8sH43j1/cn+4t40IdjogEkS99FF8C5Xj2zQa43HuZj2epjvP8F5bUJUu27OGpr9dwTv82XJbWIdThiEiQ+ZIoRjnnRlW6vczM5jjnRnm3RpUwVFBUyvh3l9A6IYZHf9Vfy3OIRCBfOrPjzGz4gRtmNgw40AZRdvinSH3mnOP+T5azbc9+nr18IImx2qdKJBL5UqO4HphoZnF41nXKB643s6bAXwIRnITWR4u38enS7fx2dE/SOieFOhwRCRFfRj0tAPqbWSJgzrncSne/5+/AJLQ27drLA58uZ1jnJG4/pXuowxGREPJp9VgzOwc4Bog50FbtnHs4AHFJCJWUVTD+3SVERzXgmcsHEqUlOkQimi/DY18CmgAnA//Es4/E/ADFJSH01Nc/kZGZx0tjB9OuWWyowxGREPOlM/tY59xVwB7n3EPASEBjJY/ShpxC5m2oe1NPZqzK4uXvNnDFsI6c2a9NqMMRkTrAl6anIu/lPjNrC+wGuvg/pPBWVl7BK7M38Ldv1lJSXsFpfVvxwLl96ZDUJKRxOef45+yN/OXLVfRpk8AD5/YNaTwiUnf4kig+N7NmwBPAYjyztLWchw/WZBVwz/vppGfmcVa/1vRrl8g/Zq5j9NOzuO3k7tx4QldiGgZ/aYy9xWXc+2EGUzN2cFa/1jxxaSqxjbREh4h41ChRmFkDYIZ3pNOHZvYFEOOcywtkcOGirLyCl7/bwLPT1xIXE83zvx7EuQPaAvCrwe3409RVPP3NGj5cnMmD5/XllN6tghbbpl17uemtRazNLmDCmb25+cSumlQnIr9gNd1gzszmOudGBjieKqWlpbmFCxeG6vRH7aedBdzzQToZmXmc3b81D1/Qj+S4xv/1uDnrdvHAp8tZn7OX0X1a8eB5gW+O+nZ1Fne+u5SoBsbfrxjE8T203axIuDGzRc65tFq9hg+J4iEgA/goFNuX1rdEcWgt4pEL+nHOgOo7h0vKKnh9zkaenbGW8grHrSd156YT/d8cVVHheO7btfxt+lqOaZvAS2OHhLyPREQCI9iJogBoimdhwP14Zmc751xCbQKoqfqUKH7aWcDd76ezbFse5wxow8PnH0OLw9QiqrIjbz9/nrqKLzJ20DGpCX8833/NUXn7S7lrylJmrM7mV4Pa8eiv+oekX0REgiOoiSLU6kOiKC2v4OVZ63l2xloSYhryyIX9OLv/0Q8xnbNuFw9+toJ12YWM7tOSB887pla//H/aWcBNby0kc89+HjivL1eO6KT+CJEwF+wahQFjgC7OuUfMrAPQxjkXlEl3dT1RrN6Zz93vp7N8W/5R1SKqcmhz1Mm9WtKrdTx92sTTu3UCHZOa0KAGM6c/T9/OvR9kEBcTzYtjBmvtJpEIEexE8SJQAZzinOtjZs2Br51zQ2sTQE3V5USxYnseF/5jjl9qEVXZmVfEM9+sYcGmn9m4ey8HPrbYhlH0bB1P71bx9G4TT6/WngSS1LQR4Okrefyr1bw6eyNDOjXnhTGDaZUQ4/f4RKRu8kei8GUexXDn3GAzWwLgnNtjZo1qc/JwMXN1NqXljqnjj6d1YmC+hFsnxvD4JQMA2F9SzpqsAn7aWcCqnfn8tLOAb1ZlMWXh1oOPbxnfmN5tEigoKmXJllyuGtmJ+8/pS6NoXybji4j4lihKzSwK73aoZpaCp4YR8dIz8+ia3DRgSeJQsY2iSO3QjNQOzQ4ec86RU1jM6h2/TCC7Cot58tJULhnSPiixiUj48SVRPAd8DLQ0sz/jWRTw/oBEVc+kb81lVPfkkMZgZrSMj6FlfAwn9NR8CBHxH1/2o3jbzBYBp+IZGnuhc25VwCKrJ3bmFZFdUMyA9omhDkVEJCB8WWb8WWCKc+4fAYyn3lm6NRfgF81AIiLhxJeezcXA/Wa2zsyeMLNa9aKHi4zMXKIbGH3bBGXeoYhI0NU4UTjn3nDOnQ0MA9YAj5vZ2oBFVk+kZ+bSu028ZjeLSNg6mrGS3YHeQGdgtV+jqWcqKhwZmXkMaN8s1KGIiARMjROFmR2oQTwMLAeGOOfOC1hk9cDG3XspKCpjoBKFiIQxX4bHbgSOBboCjYEBZoZz7ruARFYPZGTmAjCgg0Y8iUj48iVRlAPfAu2BpcAIYC5wiv/Dqh/St+bRpFEUPVrGhzoUEZGA8aWPYjwwFNjsnDsZGATkBCSqeiI9M5d+bROJqsGifCIi9ZUviaLIOVcEYGaNnXOrgV6BCavuKymrYMX2fFLV7CQiYc6XpqdMM2sGfAJ8Y2Z7gO2BCKo+WJNVQElZhUY8iUjY82UJj4u8V/9oZjOBROCrgERVDxyYkT1QM7JFJMz5UqM4yDk3y9+B1DcZmbk0b9KQ9s1jQx2KiEhABXRzAjObaGbZZra80rEkM/vGzNZ6L5sHMoZASd+aR2qHZtpKVETCXqB3sZkEnHnIsfuAGc65HsAM7+16ZW9xGWuzC9Q/ISIRIaCJwjsZ7+dDDl8AvOG9/gZwYSBjCITl2/KocDBQI55EJAKEYl/MVs65HQDey5ZVPdDMbjSzhWa2MCen7kzZyMjMA1CNQkQiQp3eQNk594pzLs05l5aSUnd2bVuamUu7ZrEkxzUOdSgiIgEXikSRZWZtALyX2SGIoVYyMnM10U5EIkYoEsVnwDjv9XHApyGI4ajtLixm68/7SVWzk4hEiEAPj52MZ+HAXmaWaWbXAY8Bp3mXLD/Ne7veyNim/gkRiSxHNeGuppxzV1Rx16mBPG8gpW/NxQz6t1fTk4hEhjrdmV0XZWTm0T0ljrjGAc2xIiJ1hhKFD5xzpG/NJVXrO4lIBFGi8MG23P3s3ltCqpqdRCSCKFH4IH2rpyNbNQoRiSRKFD7IyMylUVQDerdOCHUoIiJBo0Thg6Vbc+nTNoFG0XrbRCRy6BuvhsorHMu35al/QkQijhJFDa3PKWRvSblmZItIxFGiqKF079anWuNJRCKNEkUNpWfmEtc4mq7JcaEORUQkqJQoaigjM4/+7RJp0EBbn4pIZFGiqIHisnJW7cjX/AkRiUhKFDWwakcBpeVOI55EJCIpUdTAfzqym4U0DhGRUFCiqIH0zFyS4xrTJjEm1KGIiASdEkUNpG/NZWCHRMzUkS0ikUeJ4gjyi0rZsGuvJtqJSMRSojiC5Zl5OAcD1D8hIhFKieII0jO9S4trxJOIRCgliiNI35pLpxZNaNakUahDEREJCSWKI8jIzFX/hIhENCWKamQXFLE9r4gBanYSkQimRFGNDO/WpwPVkS0iEUyJohrpmblENTCOaasahYhELiWKaqRn5tGzVTyxjaJCHYqISMgoUVTBOeftyFZtQkQimxJFFbb8vI/cfaVaCFBEIp4SRRWWeleM1YgnEYl0ShRVyMjMI6ZhA3q2ig91KCIiIaVEUYX0rbkc0zaRhlF6i0Qksulb8DDKyitYvj1PM7JFRFCiOKw1WYUUlVaQ2kH9EyIiShSHkZ6ZC6AahYgIShSHlZGZS2JsQzq1aBLqUEREQk6J4hAlZRUs3pzLgPba+lREBCA61AGEmnOO9TmFzF67i9lrd/Hjht3sKynn7P5tQh2aiEidEJGJ4ue9JcxZt4vZa3OYvXYXO/KKAOiS3JRLhrTnuO7JnNSrZYijFBGpG0KWKMzst8D1gAOWAdc454oCca7isnIWb849mBiWb/fsg50QE81xPZIZ3yOF47on0yFJfRIiIocKSaIws3bAeKCvc26/mb0HXA5M8ve5/vjZCqYs2Mr+0nKiGxiDOzbnrtE9Ob5nCv3bJRLVQP0QIiLVCWXTUzQQa2alQBNgeyBO0q5ZLJeltef4HimM6NaCuMYR2domInLUQvKt6ZzbZmZPAluA/cDXzrmvD32cmd0I3AjQsWPHozrXDSd0rUWkIiISkuGxZtYcuADoArQFmprZ2EMf55x7xTmX5pxLS0lJCXaYIiJC6OZRjAY2OudynHOlwEfAsSGKRUREqhGqRLEFGGFmTcwzq+1UYFWIYhERkWqEJFE45+YBHwCL8QyNbQC8EopYRESkeiEbAuScexB4MFTnFxGRmtFaTyIiUi0lChERqZYShYiIVMucc6GOoUbMLAfYfJRPTwZ2+TGc+iSSyw6RXf5ILjtEdvkrl72Tc65WE9HqTaKoDTNb6JxLC3UcoRDJZYfILn8klx0iu/z+LruankREpFpKFCIiUq1ISRSRPJkvkssOkV3+SC47RHb5/Vr2iOijEBGRoxcpNQoRETlKShQiIlKtsE8UZnammf1kZuvM7L5QxxMIZrbJzJaZ2VIzW+g9lmRm35jZWu9l80qP/733/fjJzM4IXeS+M7OJZpZtZssrHfO5rGY2xPuerTOz57yrGNd5VZT/j2a2zfv5LzWzsyvdFzblN7MOZjbTzFaZ2Qozu9N7POw//2rKHpzP3jkXtn9AFLAe6Ao0AtLx7NMd8tj8XM5NQPIhx/4K3Oe9fh/wuPd6X+/70BjPxlHrgahQl8GHsp4ADAaW16aswHxgJGDAl8BZoS5bLcr/R+Duwzw2rMoPtAEGe6/HA2u8ZQz7z7+asgflsw/3GsUwYJ1zboNzrgR4F8/OepHgAuAN7/U3gAsrHX/XOVfsnNsIrMPzPtULzrnvgJ8POexTWc2sDZDgnJvrPP9z3qz0nDqtivJXJazK75zb4Zxb7L1egGcPm3ZEwOdfTdmr4teyh3uiaAdsrXQ7k+rf3PrKAV+b2SLvPuMArZxzO8Dzjwxo6T0eju+Jr2Vt571+6PH67HYzy/A2TR1oegnb8ptZZ2AQMI8I+/wPKTsE4bMP90RxuLa3cBwPPMo5Nxg4C7jNzE6o5rGR8p5A1WUNt/fgRaAbMBDYATzlPR6W5TezOOBD4DfOufzqHnqYY/W6/Icpe1A++3BPFJlAh0q32wPbQxRLwDjntnsvs4GP8TQlZXmrmXgvs70PD8f3xNeyZnqvH3q8XnLOZTnnyp1zFcCr/KcpMezKb2YN8XxRvu2c+8h7OCI+/8OVPViffbgnigVADzPrYmaNgMuBz0Ick1+ZWVMziz9wHTgdWI6nnOO8DxsHfOq9/hlwuZk1NrMuQA88nVv1mU9l9TZPFJjZCO+Ij6sqPafeOfAl6XURns8fwqz83lhfA1Y5556udFfYf/5VlT1on32oe/ODMFrgbDwjBNYDfwh1PAEoX1c8oxvSgRUHygi0AGYAa72XSZWe8wfv+/ETdXy0x2HKOxlPFbsUz6+j646mrECa9z/VeuB5vKsU1PW/Ksr/Fp695zO8XxBtwrH8wHF4mkkygKXev7Mj4fOvpuxB+ey1hIeIiFQr3JueRESklpQoRESkWkoUIiJSLSUKERGplhKFiIhUS4lCpBpm1szMbq3m/h9q8BqF/o1KJLiUKESq1wz4r0RhZlEAzrljgx2QSLBFhzoAkTruMaCbmS3FM8mtEM+Et4FAXzMrdM7Fedfg+RRoDjQE7nfO1enZviI1pQl3ItXwrtT5hXOun5mdBEwF+jnP0s1UShTRQBPnXL6ZJQM/Aj2cc+7AY0JUBJFaU41CxDfzDySJQxjwqHfl3go8Sze3AnYGMziRQFCiEPHN3iqOjwFSgCHOuVIz2wTEBC0qkQBSZ7ZI9QrwbD15JIlAtjdJnAx0CmxYIsGjGoVINZxzu81sjpktB/YDWVU89G3gczNbiGdlz9VBClEk4NSZLSIi1VLTk4iIVEuJQkREqqVEISIi1VKiEBGRailRiIhItZQoRESkWkoUIiJSrf8PYRSrCEcOV7cAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df['average_specificity'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"specificity\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['fraction_accuracy'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"fraction accuracy\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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Hf7ss8+YMmUK99xzD/379+euu+5izpw5HHHEEQwZMgSAO++8k1mzZjFnzhyGDx/+g9c//vjjOffcc/n73//O7Nmzadu2LY0aNWL27NkAjBw5kgEDBsT3BqWRaioVUat2uGDU7tivsmVdWBDv27nh9tWM0BR4zv1w5EXpjk6qUFk1ilTKzs6mU6dOAHTu3Jlly5aVuv3JJ59MgwYNaNCgAY0aNeIXvwhffo444gjmzJnDxo0bmTp1Kr179961z9atW3fd7927N7Vr12bdunWsXbuWk046CYBLL7101z4dO3akX79+9OrVi169epV5DldccQUjR47k3nvvZfz48cyYMaMc70D1paRSUdndwtLta7+smXMw3MPS59/OC8ljxbxwnYa1XxZus9e+YQTSiddBp77pi1V2O/XqFS6zX7t2bb7//nvq1KlDfn64JkzRGf+J29eqVWvX41q1arFjxw7y8/Np3LjxrppDUXvvvXeZMb388su8++67TJo0idtuu4358+eXuv0FF1zAkCFDOOWUU+jcuTP77lszVptQUqmo7K7h59L34Kh+qX+9z9+GLz8s5joSCY/3aFD68FH3MHek2KvmrQ0/N64IiWTFfNi6LtrRwoWEWnSGzgNg/2g4a4MDUrs8u0g5ZGVlMXPmTLp06cKzzz5brn0bNmxIdnY2zzzzDL1798bdmTNnDkceeeQPtmvUqBFNmjThvffeo2vXrowePZqTTjqJ/Px8vvrqK04++WROPPFExowZw8aNG3+wb4MGDdiwYcOux/Xr1+eMM85g0KBBPPbYYxU/8WpGSaWimh8KezULTWCpTirL3g8rnOaXNfIkGvVTL0oy9RrAju9/mDzKOsYe+8B+HcIAhAMOD/1H+x0Ke5T9TU0knW644QYuvPBCRo8ezSmnlP9Cek899RSDBg3i9ttvZ/v27fTp0+dHSQXg8ccf39VR36ZNG0aOHMnOnTu55JJLWLduHe7OddddR+PGjX+wX58+ffjNb37DsGHDePbZZ2nbti39+vXj+eef5/TTT6/oaVc7ukhXZTwzINQe/rggdd/Y134Jj3SHPZvC5a+FsuKuy11w25pYA1kfLmVa7JXyCu43Lrxfr2HNvnSvVNrChQs59NBD0x1GjTF06FDWrVvHbbfdlpbXL+7z1EW60im7W7gs7nefp2YZ8W2bw+qyO7dD37GFa41p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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['numerosity', 'population']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"numerosity\", \"number of rules\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['steps_in_trial'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"steps\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "184.0\n" + ] + } + ], + "source": [ + "print(sum(df['steps_in_trial'])/number_of_experiments)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XNCS_Woods1_pre_populated_default_settings.ipynb b/XCS_Experiments/XNCS_Woods1_pre_populated_default_settings.ipynb new file mode 100644 index 0000000..62ee0d1 --- /dev/null +++ b/XCS_Experiments/XNCS_Woods1_pre_populated_default_settings.ipynb @@ -0,0 +1,188 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n" + ] + }, + { + "ename": "TypeError", + "evalue": "'int' object is not subscriptable", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 6\u001b[0m \u001b[0mmaze\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mgym\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mmake\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Woods1-v0'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 7\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"This is how maze looks like\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 8\u001b[1;33m \u001b[0msituation\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mmaze\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreset\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 9\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mtype\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msituation\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 10\u001b[0m \u001b[0mprint\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0msituation\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32m~\\miniconda3\\envs\\pyalcs-experiments\\lib\\site-packages\\gym\\wrappers\\time_limit.py\u001b[0m in \u001b[0;36mreset\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 42\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_episode_started_at\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mtime\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mtime\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 43\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_elapsed_steps\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 44\u001b[1;33m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0menv\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mreset\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[1;32mc:\\users\\metron\\documents\\github\\openai-envs\\gym_woods\\envs\\woods_env.py\u001b[0m in \u001b[0;36mreset\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 50\u001b[0m \u001b[1;32mdef\u001b[0m \u001b[0mreset\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 51\u001b[0m \u001b[0mlogging\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mdebug\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m'Resetting the environment'\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 52\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_insert_animat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 53\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_observe\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 54\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;32mc:\\users\\metron\\documents\\github\\openai-envs\\gym_woods\\envs\\woods_env.py\u001b[0m in \u001b[0;36m_insert_animat\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 160\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 161\u001b[0m \u001b[0mstarting_position\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mrandom\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mchoice\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mpossible_coords\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 162\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpos_x\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstarting_position\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 163\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mpos_y\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mstarting_position\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 164\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mTypeError\u001b[0m: 'int' object is not subscriptable" + ] + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_woods\n", + "\n", + "maze = gym.make('Woods1-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xncs import Configuration\n", + "from utils.nxcs_utils import *\n", + "\n", + "cfg = Configuration(number_of_actions=8,\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " metrics_trial_frequency=10,\n", + " max_population=1000,\n", + " )\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "\n", + "\n", + "number_of_experiments = 2\n", + "explore = 0\n", + "exploit = 2500\n", + "\n", + "df = avg_experiment(\n", + " maze=maze,\n", + " cfg=cfg,\n", + " number_of_tests=number_of_experiments,\n", + " explore_trials=explore,\n", + " exploit_trials=exploit,\n", + " pre_generate=True\n", + " )\n", + "\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df['average_specificity'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"specificity\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df['fraction_accuracy'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"fraction accuracy\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df[['numerosity', 'population']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"numerosity\", \"number of rules\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df['steps_in_trial'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"steps\"])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XNCS_maze.ipynb b/XCS_Experiments/XNCS_maze.ipynb index cbf9c74..72e177d 100644 --- a/XCS_Experiments/XNCS_maze.ipynb +++ b/XCS_Experiments/XNCS_maze.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 4, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -23,13 +23,13 @@ "text": [ "This is how maze looks like\n", "\n", - "('1', '1', '9', '0', '0', '1', '0', '1')\n", + "('1', '0', '0', '0', '1', '0', '0', '0')\n", "\n", "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[31mA\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", - "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" @@ -52,7 +52,7 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -62,7 +62,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -77,264 +77,38 @@ " initial_error=0.01,\n", " metrics_trial_frequency=50,\n", " covering_wildcard_chance = 0.9,\n", - " user_metrics_collector_fcn=xcs_maze_metrics,\n", + " user_metrics_collector_fcn=xncs_metrics,\n", " lmc=10,\n", - " lem=200\n", + " lem=20\n", " )\n" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': [2.8566112218933495e-40, 8.400832354756411e-40, 3.0089755020947694e-40, 5.373945905528416e-40, 1.331157464532907e-39, 7.2462590953615124e-40, 1.2413732752587846e-39, 8.502887850913455e-40], 'numerosity': 74, 'population': 62, 'average_specificity': 2.324324324324324, 'fraction_accuracy': 0.09002976190476192}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 4, 'reward': [19.04115636378121, 282.52017309674295, 226.5067539676668, 8.421850892652117, 5.431990731337813, 15.731977597089834, 11.963625607846652, 14.502821779440746], 'numerosity': 366, 'population': 206, 'average_specificity': 1.7978142076502732, 'fraction_accuracy': 0.00012562392327923093}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 3, 'reward': [9.141033961819875, 503.015057902867, 8.863140156841938, 9.473248851504252, 10.954050664477583, 5.113548666757833, 10.610099188209634, 6.427631106549245], 'numerosity': 376, 'population': 207, 'average_specificity': 1.8085106382978724, 'fraction_accuracy': 0.002685303593785624}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 8, 'reward': [236.62182341932353, 17.71831643714007, 169.77052904218897, 9.885835547509476, 3.7531533272066295, 3.492515487209963, 4.602117471447815, 8.500254071547586], 'numerosity': 380, 'population': 207, 'average_specificity': 1.7973684210526315, 'fraction_accuracy': 0.029532007613889643}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 4, 'reward': [135.7803478314048, 450.7886225104653, 14.72247029751609, 4.572676939519304, 11.63699361165655, 15.083527445343089, 25.43823816003597, 5.356680235746249], 'numerosity': 382, 'population': 207, 'average_specificity': 1.7958115183246073, 'fraction_accuracy': 0.0064821793669427264}\n", - "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 1, 'reward': [218.9779987445338, 560.3080029864477, 4.628089864393865, 2.8052160415666796, 11.859517588053768, 4.325274560832783, 6.284963398815211, 33.54393462509168], 'numerosity': 382, 'population': 207, 'average_specificity': 1.7958115183246073, 'fraction_accuracy': 0.005001010385987953}\n", - "INFO:lcs.agents.Agent:{'trial': 1800, 'steps_in_trial': 7, 'reward': [13.135194486657284, 493.6535088133593, 12.417384480151332, 22.74253293618887, 10.932168768078794, 3.2971373023255612, 4.570089035733947, 19.641580876438702], 'numerosity': 382, 'population': 207, 'average_specificity': 1.7958115183246073, 'fraction_accuracy': 0.007293011429806728}\n", - "INFO:lcs.agents.Agent:{'trial': 2100, 'steps_in_trial': 5, 'reward': [33.69239728997236, 564.1246357266482, 3.3293423929079964, 2.3605428093942398, 8.754942465846353, 2.873620086579977, 6.588360230435732, 14.707460577876544], 'numerosity': 382, 'population': 207, 'average_specificity': 1.7958115183246073, 'fraction_accuracy': 0.0019079329181071096}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 7, 'reward': [95.27548590841683, 400.8054428471048, 51.28659289721928, 9.397675259440012, 10.264134401651521, 2.873620086579977, 14.182604637030222, 16.305140503616084], 'numerosity': 382, 'population': 207, 'average_specificity': 1.7958115183246073, 'fraction_accuracy': 0.0013329544909790438}\n", - "INFO:lcs.agents.Agent:{'trial': 2700, 'steps_in_trial': 4, 'reward': [3.8719475782675903, 598.8377444943224, 43.41676649934165, 1.7303620527514036, 11.178729589211162, 2.873620086579977, 0.6959811681736219, 52.13301090746528], 'numerosity': 382, 'population': 207, 'average_specificity': 1.7958115183246073, 'fraction_accuracy': 0.00041098423726583603}\n" + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 50, 'reward': 0.0, 'perf_time': 0.024100099999998292, 'numerosity': 74, 'population': 66, 'average_specificity': 1.864864864864865, 'fraction_accuracy': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 26, 'reward': 1000.138880235737, 'perf_time': 0.329812000000004, 'numerosity': 1800, 'population': 1192, 'average_specificity': 8.991666666666667, 'fraction_accuracy': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': 1.3360874108178934e-12, 'perf_time': 0.8133116999999856, 'numerosity': 1800, 'population': 1330, 'average_specificity': 11.657222222222222, 'fraction_accuracy': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 14, 'reward': 1011.437914927404, 'perf_time': 0.24458859999998595, 'numerosity': 1800, 'population': 1355, 'average_specificity': 13.273888888888889, 'fraction_accuracy': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 35, 'reward': 1000.0110957432273, 'perf_time': 0.7310306000000253, 'numerosity': 1800, 'population': 1390, 'average_specificity': 14.805, 'fraction_accuracy': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 3, 'reward': 1663.377965961677, 'perf_time': 0.08162349999997787, 'numerosity': 1800, 'population': 1399, 'average_specificity': 16.635, 'fraction_accuracy': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 1, 'reward': 2144.250513788887, 'perf_time': 0.01140459999999166, 'numerosity': 1800, 'population': 1412, 'average_specificity': 16.419444444444444, 'fraction_accuracy': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 4, 'reward': 1306.9938981928083, 'perf_time': 0.08042490000002545, 'numerosity': 1800, 'population': 1449, 'average_specificity': 17.11722222222222, 'fraction_accuracy': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 9, 'reward': 1046.6069274511074, 'perf_time': 0.17500010000003385, 'numerosity': 1800, 'population': 1455, 'average_specificity': 17.447222222222223, 'fraction_accuracy': 0.09821428571428571}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 2, 'reward': 1624.0372437156136, 'perf_time': 0.052321100000028764, 'numerosity': 1800, 'population': 1464, 'average_specificity': 17.857222222222223, 'fraction_accuracy': 0.0}\n" ] } ], "source": [ "agent = XNCS(cfg)\n", "explore_population, explore_metrics =\\\n", - " agent.explore(maze, 3000, True)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "scrolled": false - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Cond:00#000## - Act:0 - Num:3 [fit: 0.000, exp: 769.00, pred: 362.000]\n", - "Cond:001##001 - Act:1 - Num:2 [fit: 0.000, exp: 299.00, pred: 735.269]\n", - "Cond:0010#001 - Act:2 - Num:1 [fit: 0.000, exp: 153.00, pred: 273.097]\n", - "Cond:0#100001 - Act:3 - Num:3 [fit: 0.006, exp: 21.00, pred: 209.456]\n", - "Cond:001000#1 - Act:4 - Num:3 [fit: 0.000, exp: 65.00, pred: 253.011]\n", - "Cond:00100#01 - Act:5 - Num:1 [fit: 0.004, exp: 156.00, pred: 279.322]\n", - "Cond:10100001 - Act:6 - Num:2 [fit: 0.244, exp: 3.00, pred: 6.916]\n", - "Cond:00100001 - Act:7 - Num:1 [fit: 0.001, exp: 82.00, pred: 273.815]\n", - "Cond:0#01#01# - Act:0 - Num:3 [fit: 0.000, exp: 814.00, pred: 428.572]\n", - "Cond:#9010010 - Act:1 - Num:3 [fit: 0.000, exp: 2354.00, pred: 541.384]\n", - "Cond:09010010 - Act:2 - Num:1 [fit: 0.000, exp: 235.00, pred: 247.591]\n", - "Cond:09010010 - Act:3 - Num:3 [fit: 0.000, exp: 56.00, pred: 306.198]\n", - "Cond:#9010010 - Act:4 - Num:3 [fit: 0.000, exp: 94.00, pred: 300.504]\n", - "Cond:09##001# - Act:5 - Num:3 [fit: 0.000, exp: 59.00, pred: 371.361]\n", - "Cond:#9#10010 - Act:6 - Num:3 [fit: 0.000, exp: 61.00, pred: 291.819]\n", - "Cond:0#01#0## - Act:7 - Num:3 [fit: 0.000, exp: 85.00, pred: 284.094]\n", - "Cond:11001011 - Act:0 - Num:3 [fit: 0.000, exp: 62.00, pred: 203.801]\n", - "Cond:11001011 - Act:1 - Num:3 [fit: 0.000, exp: 200.00, pred: 255.488]\n", - "Cond:110010#1 - Act:2 - Num:3 [fit: 0.000, exp: 80.00, pred: 273.577]\n", - "Cond:11001#11 - Act:3 - Num:3 [fit: 0.000, exp: 617.00, pred: 422.712]\n", - "Cond:###0#01# - Act:4 - Num:3 [fit: 0.000, exp: 163.00, pred: 320.334]\n", - "Cond:1##0#011 - Act:5 - Num:3 [fit: 0.000, exp: 34.00, pred: 285.247]\n", - "Cond:#1001011 - Act:6 - Num:3 [fit: 0.000, exp: 34.00, pred: 209.057]\n", - "Cond:#1001011 - Act:7 - Num:3 [fit: 0.000, exp: 47.00, pred: 250.444]\n", - "Cond:119#0101 - Act:0 - Num:1 [fit: 0.000, exp: 244.00, pred: 226.670]\n", - "Cond:119###01 - Act:1 - Num:4 [fit: 0.000, exp: 242.00, pred: 313.680]\n", - "Cond:1##001#1 - Act:2 - Num:3 [fit: 0.000, exp: 371.00, pred: 248.102]\n", - "Cond:11900#01 - Act:3 - Num:3 [fit: 0.000, exp: 74.00, pred: 222.356]\n", - "Cond:#190##01 - Act:4 - Num:3 [fit: 0.000, exp: 265.00, pred: 407.212]\n", - "Cond:119#0101 - Act:5 - Num:2 [fit: 0.000, exp: 44.00, pred: 225.464]\n", - "Cond:11900101 - Act:6 - Num:1 [fit: 0.064, exp: 30.00, pred: 226.547]\n", - "Cond:1190#101 - Act:7 - Num:3 [fit: 0.000, exp: 45.00, pred: 225.734]\n", - "Cond:10101#00 - Act:0 - Num:3 [fit: 0.000, exp: 100.00, pred: 229.454]\n", - "Cond:1010#0#0 - Act:1 - Num:3 [fit: 0.000, exp: 377.00, pred: 762.358]\n", - "Cond:1010#000 - Act:2 - Num:1 [fit: 0.000, exp: 60.00, pred: 266.907]\n", - "Cond:#01####0 - Act:3 - Num:3 [fit: 0.293, exp: 541.00, pred: 538.738]\n", - "Cond:101010#0 - Act:4 - Num:1 [fit: 0.003, exp: 43.00, pred: 322.756]\n", - "Cond:1010#00# - Act:5 - Num:3 [fit: 0.000, exp: 63.00, pred: 260.278]\n", - "Cond:1#10##00 - Act:6 - Num:3 [fit: 0.000, exp: 48.00, pred: 288.850]\n", - "Cond:1#101000 - Act:7 - Num:3 [fit: 0.077, exp: 35.00, pred: 175.312]\n", - "Cond:1##00101 - Act:0 - Num:3 [fit: 0.000, exp: 551.00, pred: 212.303]\n", - "Cond:1110##01 - Act:1 - Num:3 [fit: 0.000, exp: 103.00, pred: 180.127]\n", - "Cond:1#1#0101 - Act:3 - Num:2 [fit: 0.315, exp: 164.00, pred: 552.258]\n", - "Cond:1110#10# - Act:4 - Num:3 [fit: 0.000, exp: 61.00, pred: 218.462]\n", - "Cond:1#10#101 - Act:5 - Num:1 [fit: 0.000, exp: 48.00, pred: 175.658]\n", - "Cond:1110010# - Act:6 - Num:2 [fit: 0.002, exp: 23.00, pred: 167.197]\n", - "Cond:1110010# - Act:7 - Num:3 [fit: 0.000, exp: 34.00, pred: 200.439]\n", - "Cond:11#01111 - Act:0 - Num:3 [fit: 0.060, exp: 8.00, pred: 236.590]\n", - "Cond:11#0#111 - Act:1 - Num:3 [fit: 0.056, exp: 11.00, pred: 210.205]\n", - "Cond:1100111# - Act:2 - Num:3 [fit: 0.001, exp: 23.00, pred: 178.690]\n", - "Cond:1#0011#1 - Act:4 - Num:1 [fit: 0.001, exp: 25.00, pred: 189.596]\n", - "Cond:11001111 - Act:5 - Num:1 [fit: 0.038, exp: 9.00, pred: 147.714]\n", - "Cond:11001111 - Act:6 - Num:3 [fit: 0.024, exp: 11.00, pred: 159.321]\n", - "Cond:11#0111# - Act:7 - Num:1 [fit: 0.047, exp: 8.00, pred: 126.576]\n", - "Cond:0#0101#0 - Act:0 - Num:1 [fit: 0.000, exp: 80.00, pred: 241.403]\n", - "Cond:0#0#0110 - Act:1 - Num:1 [fit: 0.000, exp: 271.00, pred: 324.762]\n", - "Cond:0101#11# - Act:2 - Num:1 [fit: 0.080, exp: 466.00, pred: 523.418]\n", - "Cond:010101## - Act:3 - Num:3 [fit: 0.000, exp: 83.00, pred: 230.883]\n", - "Cond:01010110 - Act:4 - Num:1 [fit: 0.000, exp: 30.00, pred: 194.867]\n", - "Cond:010##110 - Act:5 - Num:1 [fit: 0.000, exp: 29.00, pred: 228.229]\n", - "Cond:01010110 - Act:6 - Num:1 [fit: 0.000, exp: 84.00, pred: 256.103]\n", - "Cond:01010#10 - Act:7 - Num:1 [fit: 0.041, exp: 44.00, pred: 223.438]\n", - "Cond:01000000 - Act:0 - Num:3 [fit: 0.000, exp: 82.00, pred: 268.571]\n", - "Cond:0100000# - Act:1 - Num:3 [fit: 0.000, exp: 78.00, pred: 360.871]\n", - "Cond:#1#00000 - Act:2 - Num:3 [fit: 0.000, exp: 38.00, pred: 265.867]\n", - "Cond:01000000 - Act:3 - Num:3 [fit: 0.010, exp: 16.00, pred: 180.552]\n", - "Cond:#10#0#00 - Act:4 - Num:3 [fit: 0.003, exp: 17.00, pred: 251.009]\n", - "Cond:010#0#00 - Act:5 - Num:3 [fit: 0.006, exp: 23.00, pred: 274.079]\n", - "Cond:01000#00 - Act:6 - Num:3 [fit: 0.000, exp: 92.00, pred: 273.765]\n", - "Cond:#100#000 - Act:7 - Num:3 [fit: 0.000, exp: 294.00, pred: 591.685]\n", - "Cond:10#0#010 - Act:0 - Num:1 [fit: 0.000, exp: 283.00, pred: 500.807]\n", - "Cond:#0000010 - Act:1 - Num:2 [fit: 0.000, exp: 1644.00, pred: 826.590]\n", - "Cond:100000#0 - Act:2 - Num:3 [fit: 0.000, exp: 324.00, pred: 278.687]\n", - "Cond:10#00010 - Act:3 - Num:2 [fit: 0.000, exp: 39.00, pred: 277.021]\n", - "Cond:10#0#0#0 - Act:5 - Num:3 [fit: 0.000, exp: 58.00, pred: 283.264]\n", - "Cond:1#000010 - Act:6 - Num:2 [fit: 0.000, exp: 47.00, pred: 286.466]\n", - "Cond:10000010 - Act:7 - Num:3 [fit: 0.005, exp: 55.00, pred: 294.252]\n", - "Cond:1#00100# - Act:0 - Num:1 [fit: 0.000, exp: 102.00, pred: 290.634]\n", - "Cond:#000100# - Act:1 - Num:3 [fit: 0.000, exp: 345.00, pred: 250.207]\n", - "Cond:10001#0# - Act:2 - Num:3 [fit: 0.000, exp: 334.00, pred: 427.273]\n", - "Cond:##001000 - Act:3 - Num:3 [fit: 0.000, exp: 33.00, pred: 219.538]\n", - "Cond:10001#0# - Act:4 - Num:3 [fit: 0.006, exp: 17.00, pred: 262.323]\n", - "Cond:001010#0 - Act:5 - Num:3 [fit: 0.244, exp: 3.00, pred: 0.000]\n", - "Cond:10001000 - Act:6 - Num:3 [fit: 0.003, exp: 21.00, pred: 265.582]\n", - "Cond:#000#00# - Act:7 - Num:3 [fit: 0.000, exp: 427.00, pred: 404.759]\n", - "Cond:0010000# - Act:1 - Num:2 [fit: 0.000, exp: 302.00, pred: 735.269]\n", - "Cond:001#0##1 - Act:2 - Num:3 [fit: 0.000, exp: 208.00, pred: 260.829]\n", - "Cond:0010001# - Act:3 - Num:3 [fit: 0.000, exp: 498.00, pred: 370.348]\n", - "Cond:#01#00## - Act:5 - Num:3 [fit: 0.000, exp: 351.00, pred: 314.932]\n", - "Cond:00##0011 - Act:6 - Num:3 [fit: 0.001, exp: 26.00, pred: 198.943]\n", - "Cond:001#0##1 - Act:7 - Num:2 [fit: 0.000, exp: 108.00, pred: 292.972]\n", - "Cond:0101#1#1 - Act:0 - Num:3 [fit: 0.000, exp: 230.00, pred: 349.281]\n", - "Cond:01010101 - Act:1 - Num:1 [fit: 0.000, exp: 85.00, pred: 232.502]\n", - "Cond:0101###1 - Act:2 - Num:2 [fit: 0.000, exp: 215.00, pred: 296.369]\n", - "Cond:01010101 - Act:4 - Num:1 [fit: 0.002, exp: 24.00, pred: 219.968]\n", - "Cond:#1010101 - Act:5 - Num:1 [fit: 0.013, exp: 16.00, pred: 241.500]\n", - "Cond:01010101 - Act:6 - Num:1 [fit: 0.019, exp: 12.00, pred: 235.113]\n", - "Cond:010#010# - Act:7 - Num:1 [fit: 0.003, exp: 24.00, pred: 223.643]\n", - "Cond:1000111# - Act:0 - Num:1 [fit: 0.000, exp: 97.00, pred: 274.680]\n", - "Cond:100#1#11 - Act:1 - Num:1 [fit: 0.000, exp: 394.00, pred: 757.293]\n", - "Cond:10001#1# - Act:2 - Num:1 [fit: 0.001, exp: 29.00, pred: 267.503]\n", - "Cond:1000#111 - Act:3 - Num:1 [fit: 0.004, exp: 25.00, pred: 193.396]\n", - "Cond:10#01#11 - Act:5 - Num:3 [fit: 0.003, exp: 20.00, pred: 255.466]\n", - "Cond:10#01111 - Act:6 - Num:3 [fit: 0.003, exp: 20.00, pred: 213.324]\n", - "Cond:#000111# - Act:7 - Num:3 [fit: 0.003, exp: 23.00, pred: 218.067]\n", - "Cond:0#10001# - Act:0 - Num:1 [fit: 0.000, exp: 362.00, pred: 361.997]\n", - "Cond:00100010 - Act:2 - Num:1 [fit: 0.195, exp: 4.00, pred: 63.311]\n", - "Cond:00100010 - Act:6 - Num:1 [fit: 0.033, exp: 12.00, pred: 196.543]\n", - "Cond:00100010 - Act:7 - Num:1 [fit: 0.056, exp: 13.00, pred: 272.173]\n", - "Cond:10011100 - Act:0 - Num:1 [fit: 0.004, exp: 19.00, pred: 312.415]\n", - "Cond:10011#00 - Act:1 - Num:1 [fit: 0.000, exp: 452.00, pred: 723.399]\n", - "Cond:10#11#00 - Act:2 - Num:1 [fit: 0.032, exp: 14.00, pred: 308.447]\n", - "Cond:10011100 - Act:3 - Num:1 [fit: 0.080, exp: 8.00, pred: 132.007]\n", - "Cond:#0011100 - Act:4 - Num:1 [fit: 0.083, exp: 14.00, pred: 196.091]\n", - "Cond:10#111#0 - Act:5 - Num:1 [fit: 0.015, exp: 13.00, pred: 259.164]\n", - "Cond:1001110# - Act:6 - Num:1 [fit: 0.011, exp: 11.00, pred: 225.322]\n", - "Cond:10011##0 - Act:7 - Num:1 [fit: 0.017, exp: 9.00, pred: 262.670]\n", - "Cond:001#0##1 - Act:5 - Num:1 [fit: 0.000, exp: 256.00, pred: 265.613]\n", - "Cond:00010010 - Act:0 - Num:2 [fit: 0.000, exp: 507.00, pred: 428.572]\n", - "Cond:000100#0 - Act:1 - Num:3 [fit: 0.041, exp: 5.00, pred: 218.078]\n", - "Cond:0#0##01# - Act:2 - Num:3 [fit: 0.000, exp: 303.00, pred: 267.933]\n", - "Cond:00010010 - Act:3 - Num:1 [fit: 0.051, exp: 10.00, pred: 181.937]\n", - "Cond:00010010 - Act:4 - Num:3 [fit: 0.000, exp: 53.00, pred: 246.024]\n", - "Cond:0001##10 - Act:5 - Num:3 [fit: 0.000, exp: 51.00, pred: 265.694]\n", - "Cond:00#1001# - Act:6 - Num:3 [fit: 0.120, exp: 11.00, pred: 233.528]\n", - "Cond:00#10010 - Act:7 - Num:3 [fit: 0.003, exp: 24.00, pred: 251.434]\n", - "Cond:01011101 - Act:1 - Num:1 [fit: 0.097, exp: 9.00, pred: 213.165]\n", - "Cond:01#10101 - Act:2 - Num:2 [fit: 0.000, exp: 152.00, pred: 243.607]\n", - "Cond:#101#101 - Act:3 - Num:1 [fit: 0.000, exp: 51.00, pred: 229.215]\n", - "Cond:010111#1 - Act:4 - Num:1 [fit: 0.074, exp: 6.00, pred: 159.277]\n", - "Cond:01011#01 - Act:5 - Num:1 [fit: 0.110, exp: 10.00, pred: 196.715]\n", - "Cond:0#011#01 - Act:6 - Num:1 [fit: 0.011, exp: 11.00, pred: 257.289]\n", - "Cond:01011101 - Act:7 - Num:1 [fit: 0.144, exp: 3.00, pred: 91.832]\n", - "Cond:100111#1 - Act:0 - Num:1 [fit: 0.074, exp: 6.00, pred: 233.990]\n", - "Cond:10011111 - Act:2 - Num:1 [fit: 0.038, exp: 9.00, pred: 255.342]\n", - "Cond:1#011111 - Act:3 - Num:1 [fit: 0.010, exp: 15.00, pred: 239.023]\n", - "Cond:10#111#1 - Act:4 - Num:1 [fit: 0.047, exp: 8.00, pred: 217.477]\n", - "Cond:#0011111 - Act:5 - Num:3 [fit: 0.051, exp: 4.00, pred: 164.841]\n", - "Cond:10011111 - Act:6 - Num:1 [fit: 0.038, exp: 9.00, pred: 163.989]\n", - "Cond:1#011111 - Act:7 - Num:1 [fit: 0.074, exp: 6.00, pred: 135.800]\n", - "Cond:0#111101 - Act:0 - Num:1 [fit: 0.074, exp: 6.00, pred: 186.316]\n", - "Cond:#0111#01 - Act:1 - Num:1 [fit: 0.000, exp: 267.00, pred: 746.083]\n", - "Cond:00111101 - Act:2 - Num:1 [fit: 0.032, exp: 17.00, pred: 216.929]\n", - "Cond:00111101 - Act:3 - Num:1 [fit: 0.011, exp: 11.00, pred: 229.266]\n", - "Cond:00111101 - Act:4 - Num:1 [fit: 0.003, exp: 21.00, pred: 195.710]\n", - "Cond:00111##1 - Act:5 - Num:1 [fit: 0.026, exp: 13.00, pred: 214.319]\n", - "Cond:001111#1 - Act:6 - Num:1 [fit: 0.125, exp: 6.00, pred: 155.548]\n", - "Cond:0#11#101 - Act:7 - Num:1 [fit: 0.010, exp: 15.00, pred: 189.243]\n", - "Cond:00#01000 - Act:0 - Num:1 [fit: 0.001, exp: 27.00, pred: 240.113]\n", - "Cond:0000##00 - Act:2 - Num:1 [fit: 0.001, exp: 30.00, pred: 225.981]\n", - "Cond:0000100# - Act:3 - Num:1 [fit: 0.000, exp: 46.00, pred: 217.728]\n", - "Cond:00001000 - Act:4 - Num:1 [fit: 0.003, exp: 20.00, pred: 241.520]\n", - "Cond:000010#0 - Act:6 - Num:1 [fit: 0.000, exp: 39.00, pred: 256.732]\n", - "Cond:00001000 - Act:7 - Num:1 [fit: 0.012, exp: 316.00, pred: 440.521]\n", - "Cond:#0000##1 - Act:0 - Num:1 [fit: 0.000, exp: 1278.00, pred: 615.179]\n", - "Cond:0#000101 - Act:1 - Num:1 [fit: 0.000, exp: 149.00, pred: 370.228]\n", - "Cond:00000101 - Act:2 - Num:1 [fit: 0.000, exp: 40.00, pred: 326.216]\n", - "Cond:00000101 - Act:3 - Num:1 [fit: 0.000, exp: 36.00, pred: 235.609]\n", - "Cond:00000101 - Act:4 - Num:1 [fit: 0.000, exp: 44.00, pred: 291.699]\n", - "Cond:#000010# - Act:5 - Num:1 [fit: 0.000, exp: 48.00, pred: 292.828]\n", - "Cond:000#0101 - Act:6 - Num:1 [fit: 0.000, exp: 31.00, pred: 259.395]\n", - "Cond:00000101 - Act:7 - Num:1 [fit: 0.000, exp: 35.00, pred: 298.455]\n", - "Cond:91111##0 - Act:0 - Num:1 [fit: 0.000, exp: 396.00, pred: 238.241]\n", - "Cond:911110#0 - Act:1 - Num:1 [fit: 0.000, exp: 300.00, pred: 230.258]\n", - "Cond:91111#00 - Act:2 - Num:1 [fit: 0.000, exp: 134.00, pred: 233.228]\n", - "Cond:91111000 - Act:3 - Num:1 [fit: 0.000, exp: 43.00, pred: 232.649]\n", - "Cond:91#11000 - Act:4 - Num:1 [fit: 0.000, exp: 47.00, pred: 218.217]\n", - "Cond:91111000 - Act:5 - Num:1 [fit: 0.000, exp: 41.00, pred: 220.108]\n", - "Cond:91#11#00 - Act:6 - Num:1 [fit: 0.000, exp: 237.00, pred: 402.970]\n", - "Cond:91111000 - Act:7 - Num:1 [fit: 0.000, exp: 54.00, pred: 225.116]\n", - "Cond:001##001 - Act:7 - Num:1 [fit: 0.001, exp: 80.00, pred: 273.815]\n", - "Cond:01#10100 - Act:0 - Num:3 [fit: 0.000, exp: 43.00, pred: 245.339]\n", - "Cond:0111#1#0 - Act:1 - Num:3 [fit: 0.000, exp: 403.00, pred: 297.699]\n", - "Cond:0#110100 - Act:2 - Num:3 [fit: 0.041, exp: 35.00, pred: 215.618]\n", - "Cond:0#110#00 - Act:3 - Num:3 [fit: 0.035, exp: 18.00, pred: 156.300]\n", - "Cond:011##100 - Act:4 - Num:3 [fit: 0.002, exp: 31.00, pred: 208.535]\n", - "Cond:#111#100 - Act:5 - Num:3 [fit: 0.001, exp: 24.00, pred: 201.008]\n", - "Cond:01#1#1#0 - Act:6 - Num:3 [fit: 0.001, exp: 245.00, pred: 214.019]\n", - "Cond:01#100## - Act:7 - Num:3 [fit: 0.180, exp: 2.00, pred: 0.000]\n", - "Cond:000#1000 - Act:5 - Num:3 [fit: 0.466, exp: 102.00, pred: 253.971]\n", - "Cond:01111#10 - Act:0 - Num:1 [fit: 0.400, exp: 160.00, pred: 366.265]\n", - "Cond:#1111110 - Act:1 - Num:1 [fit: 0.000, exp: 204.00, pred: 298.253]\n", - "Cond:0111#110 - Act:2 - Num:1 [fit: 0.004, exp: 23.00, pred: 216.716]\n", - "Cond:01111110 - Act:3 - Num:1 [fit: 0.051, exp: 10.00, pred: 137.266]\n", - "Cond:01111#10 - Act:4 - Num:1 [fit: 0.030, exp: 10.00, pred: 183.919]\n", - "Cond:0#111110 - Act:5 - Num:1 [fit: 0.062, exp: 11.00, pred: 197.428]\n", - "Cond:01111110 - Act:6 - Num:1 [fit: 0.000, exp: 55.00, pred: 193.188]\n", - "Cond:011#111# - Act:7 - Num:2 [fit: 0.000, exp: 37.00, pred: 221.720]\n", - "Cond:10001000 - Act:5 - Num:1 [fit: 0.001, exp: 21.00, pred: 295.456]\n", - "Cond:11110000 - Act:0 - Num:1 [fit: 0.000, exp: 117.00, pred: 219.779]\n", - "Cond:1111000# - Act:1 - Num:1 [fit: 0.000, exp: 287.00, pred: 222.121]\n", - "Cond:111100#0 - Act:2 - Num:1 [fit: 0.000, exp: 72.00, pred: 220.338]\n", - "Cond:11110000 - Act:3 - Num:1 [fit: 0.000, exp: 35.00, pred: 226.311]\n", - "Cond:11110000 - Act:4 - Num:1 [fit: 0.000, exp: 34.00, pred: 204.920]\n", - "Cond:1111#000 - Act:5 - Num:1 [fit: 0.001, exp: 149.00, pred: 225.083]\n", - "Cond:11110000 - Act:6 - Num:1 [fit: 0.337, exp: 151.00, pred: 436.397]\n", - "Cond:111100#0 - Act:7 - Num:1 [fit: 0.000, exp: 116.00, pred: 227.816]\n", - "Cond:01110100 - Act:7 - Num:1 [fit: 0.068, exp: 153.00, pred: 458.150]\n", - "Cond:#0000010 - Act:0 - Num:1 [fit: 0.000, exp: 283.00, pred: 500.807]\n", - "Cond:1110010# - Act:2 - Num:1 [fit: 0.000, exp: 151.00, pred: 234.003]\n", - "Cond:00010010 - Act:2 - Num:1 [fit: 0.000, exp: 66.00, pred: 267.071]\n", - "Cond:1#1#0101 - Act:5 - Num:1 [fit: 0.000, exp: 41.00, pred: 175.676]\n", - "Cond:10100001 - Act:5 - Num:1 [fit: 0.244, exp: 0.00, pred: 6.916]\n", - "Cond:0010000# - Act:5 - Num:1 [fit: 0.004, exp: 151.00, pred: 279.322]\n", - "Cond:1#000010 - Act:2 - Num:1 [fit: 0.000, exp: 316.00, pred: 278.687]\n", - "Cond:10#00010 - Act:1 - Num:1 [fit: 0.000, exp: 1579.00, pred: 826.590]\n", - "Cond:011#111# - Act:2 - Num:1 [fit: 0.026, exp: 9.00, pred: 220.959]\n" - ] - } - ], - "source": [ - "for cl in explore_population:\n", - " print(str(cl))" + " agent.explore(maze, 1000, True)" ] }, { @@ -345,7 +119,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 10, @@ -354,7 +128,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -384,7 +158,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 11, @@ -393,7 +167,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAs7klEQVR4nO3de5hc5XXn++/qS6nVrVtXScZCEuhiHQshIZAFSGJsi4lNgGCEDzMTiAI2PraOAiL25DCGxA4hPifjGcYxGWzHerBDwAwBHGxj4gFf8LHjSZBAAnMxxoAkZNSIi6hqXbpa3dWXNX/U3qVSq7p7d3ftqlbX7/M89XRV7b2rlnaXavX7vvtdr7k7IiIiA9VVOwARERmflCBERKQkJQgRESlJCUJEREpSghARkZIaqh1AOc2cOdPnz59f7TBERE4YTz311DvuPqvUtgmVIObPn8+OHTuqHYaIyAnDzH472DZ1MYmISEmxJggzu9DMXjKznWZ2U4ntS8xsq5l1m9kNIzlWRETiFVuCMLN64GvARcBS4EozWzpgtwzwx8CXRnGsiIjEKM4xiHOAne6+G8DM7gfWA78Od3D3t4G3zez3RnpsVD09PbS1tdHV1TW6f4WMe01NTcydO5fGxsZqhyIyocSZIOYAe4setwHnVuDYY7S1tTF16lTmz5+PmY3mJWQcc3fS6TRtbW0sWLCg2uGITChxjkGU+jaOWhkw8rFmttHMdpjZjv379x+3vauri1QqpeQwQZkZqVRKLUSRGMSZINqAeUWP5wL7yn2su9/h7qvcfdWsWSUv5VVymOD0+xWJR5wJYjuw2MwWmFkCuAJ4uALHiohE9spbh9m2O13tMMal2BKEu/cCm4EfAS8C33b3F8xsk5ltAjCzd5tZG/AnwOfNrM3Mpg12bFyxxu3222/ntNNOY8OGDWN+rbvuuot9+442pj75yU/y61+PeOxeRAK3PfYyn33wuWqHMS7FOpPa3R8BHhnw3Jai+2+S7z6KdOyJ6m//9m959NFHjxtE7e3tpaFhZL+Cu+66i2XLlnHyyScD8M1vfrNscVZKX18f9fX11Q5DBIB3Dud4p6O72mGMS5pJHbNNmzaxe/duLr30Um677TZuueUWNm7cyAUXXMDVV1/Nnj17eP/738/KlStZuXIljz/+eOHYW2+9leXLl7NixQpuuukmHnzwQXbs2MGGDRs488wzOXLkCOvWrSuUF7nvvvtYvnw5y5Yt48Ybbyy8zpQpU/jc5z7HihUrWL16NW+99dZxcT755JOsXbuWs846i7Vr1/LSSy8B+S/zG264geXLl3PGGWfwla98BYDt27ezdu1aVqxYwTnnnMPhw4e566672Lx5c+E1L7nkEn7+858XYrj55ps599xz2bp1K1/4whc4++yzWbZsGRs3biRc2XDnzp186EMfYsWKFaxcuZJdu3Zx1VVX8f3vf7/wuhs2bODhh9XjKOWRznbTmeujq6ev2qGMOxOqFtNw/vKfXuDX+w6V9TWXnjyNv/jI6YNu37JlCz/84Q/52c9+xsyZM7nlllt46qmn+Jd/+RcmT55MZ2cnP/nJT2hqauKVV17hyiuvZMeOHTz66KM89NBDPPHEEzQ3N5PJZEgmk3z1q1/lS1/6EqtWrTrmffbt28eNN97IU089RWtrKxdccAEPPfQQl112GdlsltWrV/NXf/VXfPazn+Ub3/gGn//85485fsmSJfziF7+goaGBxx57jD/7sz/jO9/5DnfccQevvvoqv/zlL2loaCCTyZDL5fj93/99HnjgAc4++2wOHTrE5MmThzxP2WyWZcuW8YUvfCF/3pYu5eabbwbgqquu4gc/+AEf+chH2LBhAzfddBMf/ehH6erqor+/n09+8pPcdtttrF+/noMHD/L4449z9913j+bXJXKcTDYHQDqbY86MoT/HtaamEsR4cemllxa+UHt6eti8eTPPPPMM9fX1vPzyywA89thjXHPNNTQ3NwOQTCaHfM3t27ezbt06wiu5NmzYwC9+8Qsuu+wyEokEl1xyCQDve9/7+MlPfnLc8QcPHuRjH/sYr7zyCmZGT09PIY5NmzYVusKSySTPP/88s2fP5uyzzwZg2rRpw/6b6+vrufzyywuPf/azn3HrrbfS2dlJJpPh9NNPZ926dbz++ut89KMfBfIT4AA++MEPct111/H222/z3e9+l8svv3zEXXMipfT1OweO5D/r7UoQx6mp/2VD/aVfSS0tLYX7t912GyeddBLPPvss/f39hS9Fdx/R5ZthF00pjY2Nhdeqr6+nt7f3uH3+/M//nPPPP5/vfe977Nmzh3Xr1g0ax2CxNTQ00N/fX3hcPDehqampMO7Q1dXFtddey44dO5g3bx633HILXV1dQ/4brrrqKu69917uv/9+7rzzzkH3ExmJA505wo9dOmhJyFEag6iygwcPMnv2bOrq6rjnnnvo68v3g15wwQXceeeddHZ2ApDJZACYOnUqhw8fPu51zj33XP75n/+Zd955h76+Pu677z4++MEPjiiOOXPmAPmB8NAFF1zAli1bCkklk8mwZMkS9u3bx/bt2wE4fPgwvb29zJ8/n2eeeYb+/n727t3Lk08+WfK9wsQxc+ZMOjo6ePDBB4F8S2Tu3Lk89NBDAHR3dxf+/R//+Mf5m7/5GwBOP318JHo58WWKkkImq4HqgZQgquzaa6/l7rvvZvXq1bz88suF1sWFF17IpZdeyqpVqzjzzDP50pfy9Qw//vGPs2nTpsIgdWj27Nl88Ytf5Pzzzy8M8K5fvz5yHJ/97Gf50z/9U84777xCkoL8ZbSnnHIKZ5xxBitWrOAf/uEfSCQSPPDAA1x//fWsWLGCD3/4w3R1dXHeeeexYMECli9fzg033MDKlStLvteMGTP41Kc+xfLly7nssssKXVUA99xzD7fffjtnnHEGa9eu5c033wTgpJNO4rTTTuOaa66JfnJFhlHcakh3qAUxkA3VrD/RrFq1ygcuGPTiiy9y2mmnVSkiKZfOzk6WL1/O008/zfTp04/brt+zjMajz7/BH937NADXnb+I//S7S6ocUeWZ2VPuvqrUNrUgZNx77LHHWLJkCddff33J5CAyWmELor7OjulukryaGqSWE9OHPvQhXnvttWqHIRNQmBROTTari6mEmmhBTKRuNDmefr8yWplsjqlNDbxr2iS1IEqY8AmiqamJdDqtL5EJKlwPIrw8WGQkMtkcqZYEqZZJZDqVIAaa8F1Mc+fOpa2tjVJrRcjEEK4oJzJSmWyOZEuCZEtCLYgSJnyCaGxs1EpjIlJSvrxGE60tCQ509tDb109D/YTvWIlMZ0JEalYm202yJUGqJQFAe2dPlSMaX5QgRKQmuTvt2R6SLZNIFhKEupmKKUGISE3q6O4l19cfDFLnE4QudT2WEoSI1KRwULq1JUFrkCA0UH0sJQgRqUnhLOriFoQK9h1LCUJEalJ7kCCSx7QgNEhdTAlCRGpSuihBNNbXMa2pQS2IAZQgRKQmZYoSRPhTiwYdSwlCRGpSJptjUkMdzYn8SoeaTX08JQgRqUlhHaZw+dxkiwr2DaQEISI1KZPNFQanIX81kxLEsZQgRKQmpYNCfaHWlgTtnTlVfi6iBCEiNSmT7S7Mf4B8C6Knzznc3VvFqMYXJQgRqUlhHaZQ2JrIqNxGgRKEiNSc7t4+Orp7SbY0Fp5LTgnqMWkcokAJQkRqztE5EEUtiGbVYxpICUJEak5YtbV4kLpQ8lsJokAJQkRqTrjuQ2pK0SC1upiOowQhIjWnUOq7+WiCaE400NRYp3pMRWJNEGZ2oZm9ZGY7zeymEtvNzG4Ptj9nZiuLtv1HM3vBzH5lZveZWVOcsYpI7Qi7mIovc4X8OIRaEEfFliDMrB74GnARsBS40syWDtjtImBxcNsIfD04dg7wx8Aqd18G1ANXxBWriNSWTDZHfZ0xfXLjMc8npyQ0BlEkzhbEOcBOd9/t7jngfmD9gH3WA9/yvG3ADDObHWxrACabWQPQDOyLMVYRqSGZzhytzY3U1dkxz6se07HiTBBzgL1Fj9uC54bdx91fB74EvAa8ARx09x+XehMz22hmO8xsx/79+8sWvIhMXJmO3DHjD6GUSn4fI84EYSWeG1jkpOQ+ZtZKvnWxADgZaDGzPyz1Ju5+h7uvcvdVs2bNGlPAIlIbMgPqMIVam1Wwr1icCaINmFf0eC7HdxMNts+HgFfdfb+79wDfBdbGGKuI1JB0tvuYS1xDqSkJOnN9dPX0VSGq8SfOBLEdWGxmC8wsQX6Q+eEB+zwMXB1czbSafFfSG+S7llabWbPli7X/DvBijLGKSA1p7+wp2YIo1GNSKwLIDwTHwt17zWwz8CPyVyHd6e4vmNmmYPsW4BHgYmAn0AlcE2x7wsweBJ4GeoFfAnfEFauI1I6+fqe9M1corVGsOEGcPGNypUMbd2JLEADu/gj5JFD83Jai+w5cN8ixfwH8RZzxiUjtOdCZw50hWxAaqM7TTGoRqSmFQn1TJh23TfWYjqUEISI1JUwQA2dRFz+nFkSeEoSI1JRSdZhC05oaqa8z1WMKKEGISE0JWwelLnOtqzNamxt1FVNACUJEaspQLQjIj0MoQeQpQYhITclkc0xtaiDRUPrrTwniKCUIEakpg5XZCCVVj6lACUJEakqUBKEWRJ4ShIjUlHQ2V/IS11CyZRIHj/TQ29dfwajGJyUIEakp7cO0IFItCdzhwJGeCkY1PilBiEjNcHcy2RytQySIVhXsK1CCEJGa0dHdS66vf8gupsJs6g4lCCUIEakZhTpMLcfXYQoV6jF1KkEoQYhIzTiaIBoH3Uf1mI4aNkGY2SVmpkQiIie8KC2IGcEM64y6mCK1IK4AXjGzW83stLgDEhGJS3qISq6hREMdU5saVLCPCAnC3f8QOAvYBfy9mW01s41mNjX26EREyuhoC2LwBAH5BJLp1GWukbqO3P0Q8B3gfmA28FHgaTO7PsbYRETKqj2bI9FQR3Oifsj98rOp1YKIMgbxETP7HvD/A43AOe5+EbACuCHm+EREyiacRW1mQ+6XbEnoMleirUn974Hb3P0XxU+6e6eZfSKesEREym+4OkyhZEuC518/WIGIxrcoCeIvgDfCB2Y2GTjJ3fe4+09ji0xEpMzSkRPEJDLZHO4+bGtjIosyBvGPQHHVqr7gORGRE8pwdZhCqZYEPX3O4e7eCkQ1fkVJEA3uXuiMC+4Pf4ZFRMaZqF1MhXpMNT4OESVB7DezS8MHZrYeeCe+kEREyq+7t4+O7t4h50CEwn0yNV5uI8oYxCbgXjP7KmDAXuDqWKMSESmzKLOoQ0m1IIAICcLddwGrzWwKYO5+OP6wRETKK0odplBSJb+BaC0IzOz3gNOBpnBE392/EGNcIiJlNZoWRK0X7IsyUW4L8PvA9eS7mP49cGrMcYmIlFXUMhsAzYl6JjXU1XzJ7yiD1Gvd/Wqg3d3/ElgDzIs3LBGR8gpnRkcZpDYzUppNHSlBdAU/O83sZKAHWBBfSCIi5dfemaPOYPrk4ccgAJJTVI8pyhjEP5nZDOC/AU8DDnwjzqBERMotnc3R2pygri7azOjW5kTND1IP2YIIFgr6qbsfcPfvkB97WOLuN0d5cTO70MxeMrOdZnZTie1mZrcH258zs5VF22aY2YNm9hsze9HM1ozw3yYiUpDpiDZJLpQv+a0EMSh37wf+uuhxt7tHqmBlZvXA14CLgKXAlWa2dMBuFwGLg9tG4OtF2/478EN3X0K+cuyLUd5XRKSUqLOoQ8mWSTU/DyLKGMSPzexyG3nFqnOAne6+OyjPcT+wfsA+64Fved42YIaZzTazacAHgL+DfHkPdz8wwvcXESnIdI6wBTElQTbXR1dPX4xRjW9REsSfkC/O121mh8zssJkdinDcHPKzrkNtwXNR9lkI7Ce/gt0vzeybZtZS6k2C1e12mNmO/fv3RwhLRGrRSFsQrc2aLBdlydGp7l7n7gl3nxY8nhbhtUu1ODziPg3ASuDr7n4WkAWOG8MI4rvD3Ve5+6pZs2ZFCEtEak1fv9PemYt0iWtIs6kjXMVkZh8o9fzABYRKaOPY+RJzgX0R93Ggzd2fCJ5/kEEShIjIcA505nCPNkkulJqiBBHlMtf/VHS/ifzYwlPAvx3muO3AYjNbALwOXAH8wYB9HgY2m9n9wLnAQXd/A8DM9prZe939JeB3gF9HiFVE5DjhjOhWtSBGJEqxvo8UPzazecCtEY7rNbPNwI+AeuBOd3/BzDYF27cAjwAXAzuBTuCaope4nnwV2QSwe8A2EZHIjs6iHr4OUyjZrHpMkYr1DdAGLIuyo7s/Qj4JFD+3pei+A9cNcuwzwKpRxCcicoyR1GEKTZ/cSH2d0a4EMTgz+wpHB5frgDOBZ2OMSUSkrMJWQDiuEEVdndHa3KgWxDB2FN3vBe5z93+NKR4RkbILWwEzmqPVYQolW2q7HlOUBPEg0OXufZCfIW1mze7eGW9oIiLlkc7mmDqpgUkN9SM6rtbrMUWZKPdTYHLR48nAY/GEIyJSfplsjuQIupdCqSlKEMNpcveO8EFwvzm+kEREymuks6hD+S4mJYihZAdUWX0fcCS+kEREyiuTzRUuWx2JZMskDhzpoa9/YBGI2hBlDOIzwD+aWTgLejb5JUhFRE4ImWyO00+OUiHoWMnmRtzzE+1mTok+h2KiiDJRbruZLQHeS7520m/cvSf2yEREysDdRz0GkQySQnu2NhPEsF1MZnYd0OLuv3L354EpZnZt/KGJiIxdNtdHrq9/VF1MYXG/Wp0LEWUM4lPFazG4ezvwqdgiEhEpo3DRn9EOUkPt1mOKkiDqihcLClaKG/mZFhGpgnQw0W0ks6hDyRpvQUQZpP4R8G0z20K+5MYm4IexRiUiUiZH6zCNfAwhXDSoVusxRUkQNwL/N/BH5Aepfwx8M86gRETKpZAgRjEGkWioY2pTQ812MUW5iqkf+HpwExE5oRQSxCi6mCA/UK0upkGY2WLgi8BS8gsGAeDuC2OMS0SkLDLZHImGOloSI6vDFGptSdRsF1OUQeq/J9966AXOB74F3BNnUCIi5ZLO5teiLrrWZkRquQURJUFMdvefAubuv3X3Wxh+uVERkXGhPZsrDDaPRi2X/I4ySN1lZnXAK8ESoq8D74o3LBGR8khnc6O6xDWUbJlEJpvD3UfdCjlRRWlBfIZ89dY/Bt4H/CHwsRhjEhEpm9FWcg0lWxrp6XM6unvLGNWJIVItpuBuB3BNvOGIiJTX2BPEpMLrTG0a2Yp0J7ooLQgRkRNSd28fHd29o5oDEarlekxKECIyYbVn84WnRzsHAorqMXUoQYiITBiFOkxj6mIKEkRn7SWIKBPlZpGv3jq/eH93/0R8YYmIjN1Y6jCFarmia5TLXL8P/C/gMaAv3nBERMrnaIIY/eByc6KeSQ11ShCDaHb3G2OPRESkzMrRgjCz/GxqjUGU9AMzuzj2SEREyiyTzVFnMGPy2C5PbW1J0F6DYxBREsSnySeJLjM7HNwOxR2YiMhYpYMyG3V1Y5sBnazRekxRJspNrUQgIiLl1p7N0TqGK5hCqZYEe9LZMkR0YokyBoGZXQp8IHj4c3f/QXwhiYiUR3qMs6hDyZZJmgdRipn9F/LdTL8Obp8OnhMRGdcyQanvsUq2NJLN9dHVU1sXckYZg7gY+LC73+nudwIXBs8Ny8wuNLOXzGynmd1UYruZ2e3B9ufMbOWA7fVm9kszU4tFREZsrHWYQuFVULU2UB11JvWMovvToxxgZvXA14CLyK9Gd6WZLR2w20XA4uC2keOXNf008GLEGEVECvr6nQOd5UoQQT2mGutmipIgvgj80szuMrO7gaeA/xzhuHOAne6+291zwP3A+gH7rAe+5XnbgBlmNhvAzOYCvwd8M+K/RUSk4OCRHvqdsiSIcD2JWpssF+UqpvvM7OfA2YABN7r7mxFeew6wt+hxG3BuhH3mAG8AfwN8FhjyKioz20i+9cEpp5wSISwRqQXhKnDlSBDhinTqYgqY2ZLg50pgNvkv773AyQPHCgZ7iRLPeZR9zOwS4G13f2q4N3H3O9x9lbuvmjVrVoSwRKQWhN1BqTHMog6larSLaagWxJ+Q/8v8r0tsc4Zfl7oNmFf0eC6wL+I+/w64NJjB3QRMM7P/4e5/OMx7iogAR//abx1DHabQ9MmN1NeZuphC7r4xuHuRu3cVbzOzpgivvR1YbGYLyK9jfQXwBwP2eRjYbGb3k+9+OujubwB/Gtwws3XADUoOIjIS4czncrQg6uqM1ubGmptNHWWQ+vGIzx3D3XuBzcCPyF+J9G13f8HMNpnZpmC3R4DdwE7gG8C1kaIWERlGOLGtHC0IyI9DtNdYghi0BWFm7yY/YDzZzM7i6HjBNKA5you7+yPkk0Dxc1uK7jtw3TCv8XPg51HeT0QklM7mmDqpgUkN9WV5vWRLQl1MRX4X+Dj5cYG/5miCOAT8WbxhiYiMTXtneeowhVJTErz05uGyvd6JYKgxiLuBu83scnf/TgVjEhEZs3LNog7VYgsiyhjE+8xsRvjAzFrN7P+LLyQRkbFLd5SnDlMo2ZzgwJEe+voHXq0/cUVJEBe5+4Hwgbu3E7EWk4hItWTKVOo7lGxJ4A4HamiyXJQEUW9mhevEzGwyMPbrxkREYuLuZDrL3IKYkv/aq6VupijrQfwP4Kdm9vfkJ8h9Arg71qhERMYgm+sj19tf1jGIwmzqbI7FZXvV8S1KLaZbzex54HfIX8n0/7r7j2KPTERklMI5EOVMEIV6TGpBHMvdHwUejTkWEZGySJexUF8orOhaS7Opo6wot9rMtptZh5nlzKzPzA5VIjgRkdEI6zDF0YKopTGIKIPUXwWuBF4BJgOfBL4SZ1AiImNRzkquoURDHVObGmoqQUTtYtppZvXu3gf8vZkNW4tJRKRawi/x5JTytSCg9ibLRWlBdJpZAnjGzG41s/8ItMQc1wnlyz95mcd3vlPtMEQkkMnmSNTX0ZIoTx2mkBLE8a4K9tsMZMmv33B5nEGdSPYf7ub2n77CN/7X7mqHIiKBsMyGWak1yUYv1ZKoqUHqIbuYzKwe+KtgLYYu4C8rEtUJZNvuNABPvpqhp6+fxvooOVdE4lTuOkyhZEuCX71eO9foDPltFow5zAq6mKSEx3flE0Q218fzrx+scjQiAvlLUVNlHn8AaA26mPIrFUx8UQap9wD/amYPk+9iAsDdvxxXUCeSbbvTnDlvBs/sPcDWXWlWntJa7ZBEal4mm+OUZKRla0Yk1ZIg19dPR3cvU5vKsxDReBalP2Qf8INg36lFt5r35sEuXn0nyyVnzOa9J00tdDeJSHW1x9bFVFv1mIZaUe4ed78KOODu/72CMZ0wtu7OX7m0emGKtvYjPLB9L7nefhINGocQqZbu3j4Od/eWtVBfKHzNTDbHqamJfzHnUN9k7zOzU4FPBGtAJItvlQpwPNu6K830yY0snT2N1QtTHOnp49m2A9UOS6SmtWd7gPLPgQAK5cNrvgUBbAF+CCwEnuLokqOQr+q6MMa4TgiP70qzemGSujpj9cIkZvD4zjRnz1f+FKmWQh2m5vhaELVyqeugLQh3v93dTwPudPeF7r6g6FbzyWFvppO29iOsWZgCYEZzgqWzpxW6nUSkOgotiJguc4XaaUEM21nu7n9UiUBONFuDAek1i2YWnluzMMXTrx2gq6evWmGJ1LywBRHHZa7NiXomNdTVTMlvjaaO0rZdaVItCf6Pk6YUnluzKEWut5+nX2uvYmQita1Qh6mMhfpCZkayhmZTK0GMgruzdXea1QtTx0zlP2dBkvo6Y9suXe4qUi2ZbA4zmD45nnkKtVSPSQliFPakO3njYBdrFqWOeX5qUyPL5kwvzK4WkcrLZHO0NieorytvHaaQWhAypK27wvGH1HHb1ixM8WzbATpzvZUOS0SIrw5TKNWS0BiEDG7r7jTvmjqJhTOPnyizZlGKnj5nxx6NQ4hUQzrmBNGqLiYZjLuzdVeaNYtSJUsJrzq1lYY6K1zlJCKVlcnmYpkDEUq1JOjo7qW7d+JfragEMUK79nfwTkd3Yf7DQC2TGjhz3oxCN5SIVFZ7NhfLLOpQLdVjUoIYoXAAem3R/IeB1ixK8fzrBznc1VOpsEQE6O932jtzsdRhCtXSZDkliBHauivNnBmTmZecPOg+axam6Ot3tu/JVDAyETlwpId+j2cWdUgJQkrq73e2lZj/MNDKU1tJ1Nepm0mkwjJhHSYliLKINUGY2YVm9pKZ7TSzm0psNzO7Pdj+nJmtDJ6fZ2Y/M7MXzewFM/t0nHFG9dJbh2nv7Cl5eWuxpsZ6zjplhgaqRSosE2MdplChYF+HEsSoBetZfw24CFgKXGlmSwfsdhGwOLhtBL4ePN8L/D9BscDVwHUljq24oeY/DLR20Uxe2HeIg50ahxCplEq0IKZPbqTOoL1TCWIszgF2uvtud88B9wPrB+yzHviW520DZpjZbHd/w92fBnD3w8CLwJwYY43k8V1pTk01M2fG4OMPoTWLUrjDtlfVihCplHCGcyqGOkyhujqjtbk2ZlPHmSDmAHuLHrdx/Jf8sPuY2XzgLOCJUm9iZhvNbIeZ7di/f/9YYx5UX7/zxKvpQS9vHWjFvOk0NWocQqSSMkG3T2tLvOtFJ1sShfeayOJMEKVGcX0k+5jZFOA7wGfc/VCpN3H3O9x9lbuvmjVr1qiDHc6v9x3icFdvpO4lgEkN9aw6Nal1qkUqKNOZY8qkBiY11Mf6PrVSsC/OBNEGzCt6PBfYF3UfM2sknxzudffvxhhnJOFCQFFbEJDvZvrNm4dJd3THFZaIFIm7DlMoNSVBRmMQY7IdWGxmC8wsAVwBPDxgn4eBq4OrmVYDB939DctfQ/p3wIvu/uUYY4xs6640C2e18K5pTZGPCVsbT7yq+RAilZDJ5grrRseptVktiDFx915gM/Aj8oPM33b3F8xsk5ltCnZ7BNgN7AS+AVwbPH8ecBXwb83smeB2cVyxDqenr58nX82wNmL3Umj5nOm0JOp5fJeWIRWphHRHvLOoQ6mWBO2dOfr6B/aaTywNcb64uz9CPgkUP7el6L4D15U47l8oPT5RFc+/fpBsro81Cwcvr1FKY30dZy9IaqBapELaO3MsPXla7O+TbEngDgc6c6SmxHfFVLVpJnUE4Rf86oXJER+7ZmGKXfuzvH2oq9xhiUgRdyedrUwLIhkkhYk+F0IJIoJtu9O896Spo/pLIRyH0KxqkXhlc33kevsrMgYRlhOf6LOplSCGkevtZ/ueTOTLWwc6/eTpTG1q0OWuIjEL5yVU4iqmWqnHpAQxjGf2HqCrp3/UCaK+zjh3QUrrVIvELLzstCKD1MF6ExP9UlcliGFs3ZXGDFYvGF2CgHw302/Tnew7cKSMkYlIsUrUYQq1Bl1ME302tRLEMLbufoels6cxvXn0U/fDyXW6mkkkPukKdjElGuqYOqlhwtdjUoIYQldPH0+/dmBEs6dLWfLuqbQ2N2qgWiRG4XhAJRIEQHLKxJ8spwQxhKdfayfXO/rxh1BdnbF6YYqtu9Lkp36ISLllOnMk6uuYMinW6V0FyWCy3ESmBDGErbvS1NcZ5ywY+fyHgdYsSvH6gSPszWgcQiQOmY58HaahVnssp1RLQpe51rKtu9IsmzOdqU1jLx1cGIfYrbIbInGoVB2mUC3UY1KCGERnrpdn28Y+/hB6z7umMHPKJA1Ui8SkUrOoQ+EYxETuNlaCGMSOPe309PmYxx9CZsbqhUm27tY4hEgc2jsrU+o7lGpJkOvrJ5vrq9h7VpoSxCC27k7TUGesOrW1bK+5dtFM3jrUzavvZMv2miKSF45BVEoyWNZ0Is+FUIIYxOO70pw5bwYtZbwiImyNaFa1SHl19/ZxuLu3wgkiPzaZzk7cBcGUIEo43NXDr14/WLbupdD8VDPvntak+RAiZdae7QEqNwci/15BC2ICD1QrQZSwfU+Gvn4v2wB1yMxYsyjFExqHECmr8Eu6koPUqRoo2KcEUcLWXWkS9XWsLOP4Q2jNwhTvdOR45e2Osr+2SK2q9Czq4vdSgqgxW3enOeuUGTQ11pf9tQvrQ2gcQqRs0hUs1BdqTtSTaKhTgqglBzpzvLDvEGsXjWx50ajmJZuZ2zpZ61SLlFE1WhBmlp9NrQRRO554NYM7ZR+gLrZmYYonXs3QP8EXPBeplPZsDjOY0Vy5BAFBPSYliNqxdVeapsY6VsybHtt7rFmU4kBnDy++eSi29xCpJelsjtbmBPV1lanDFEqqBVFbtu1Os+rUJJMayj/+ENI4hEh5ZbI5WsewZstoJVsmdj0mJYgi6Y5ufvPm4Vi7lwBmT5/MgpktWqdapEzydZgmVfx9lSBqyLbdGSDe8YfQ6oUpntidobevP/b3Epno2rOVLbMRSrUk6Ojupbt3YtZjUoIosnX3O7Qk6lk+J77xh9CaRSkOd/fywj6NQ4iMVSabIzml8gkinE0dzuSeaJQgimzdlebsBUka6+M/LasX5hchUtkNkbHp7/d8JdcKX8EEE78ekxJE4O1DXezany17eY3BvGtqE+951xQNVIuM0YEjPfR7ZedAhCZ6PSYliED4l3wlxh9Caxel2L4nQ4/GIURGrVCHqSpdTBO73IYSRGDrrjRTmxo4/eT4xx9Caxam6Mz18VzbgYq9p8hEU41Z1CEliBqxdXeacxekKjrR5tyFmg8hMlaZoP+/tQpjEDMmN1JnShAT2r4DR/hturOi3UuQ/+tjybunaqBaZAzSVexiqqszWpsn7mzqWBOEmV1oZi+Z2U4zu6nEdjOz24Ptz5nZyqjHllP4F3ylBqiLrVmUYsee9gl7HbVI3Nqr2MUUvu9ErccUW4Iws3rga8BFwFLgSjNbOmC3i4DFwW0j8PURHFs2W3enaW1uZMm7p8b1FoNau2gm3b39PPPagYq/t8hEkM7mmDKpIdbyOENpncD1mMq34PLxzgF2uvtuADO7H1gP/Lpon/XAtzy/vNo2M5thZrOB+RGOLQt3Z+uuNKsXpqircKEvgHMWJKkzuP6+XzJ9cuVryYic6N481EVrS/X+76RaEvz0N2/z4S//c9ViaG1O8O1Na8r+unEmiDnA3qLHbcC5EfaZE/FYAMxsI/nWB6eccsqIg+zu7ee896Q47z3xrP8wnOmTG7nhd9/Lr14/WJX3FznRLT5pCv/mPbOq9v5/cO4pWOX/tjzGtKZ4EmScCaLUKRu4AMJg+0Q5Nv+k+x3AHQCrVq0a8QILTY313PrvVoz0sLK6dt17qvr+IjJ67188i/cvrl6CilOcCaINmFf0eC6wL+I+iQjHiohIjOK8imk7sNjMFphZArgCeHjAPg8DVwdXM60GDrr7GxGPFRGRGMXWgnD3XjPbDPwIqAfudPcXzGxTsH0L8AhwMbAT6ASuGerYuGIVEZHjWf4Coolh1apVvmPHjmqHISJywjCzp9x9ValtmkktIiIlKUGIiEhJShAiIlKSEoSIiJQ0oQapzWw/8NtRHj4TeKeM4ZSb4hsbxTc2im9sxnN8p7p7yZl+EypBjIWZ7RhsJH88UHxjo/jGRvGNzXiPbzDqYhIRkZKUIEREpCQliKPuqHYAw1B8Y6P4xkbxjc14j68kjUGIiEhJakGIiEhJShAiIlJSTSUIM7vQzF4ys51mdlOJ7WZmtwfbnzOzlRWOb56Z/czMXjSzF8zs0yX2WWdmB83smeB2c4Vj3GNmzwfvfVxlxGqeQzN7b9F5ecbMDpnZZwbsU9HzZ2Z3mtnbZvaroueSZvYTM3sl+Nk6yLFDfl5jjO+/mdlvgt/f98xsxiDHDvlZiDG+W8zs9aLf4cWDHFut8/dAUWx7zOyZQY6N/fyNmbvXxI182fBdwELyCxI9CywdsM/FwKPkV7RbDTxR4RhnAyuD+1OBl0vEuA74QRXP4x5g5hDbq3oOB/y+3yQ/Cahq5w/4ALAS+FXRc7cCNwX3bwL+6yDxD/l5jTG+C4CG4P5/LRVflM9CjPHdAtwQ4fdflfM3YPtfAzdX6/yN9VZLLYhzgJ3uvtvdc8D9wPoB+6wHvuV524AZZja7UgG6+xvu/nRw/zDwIvn1uU8kVT2HRX4H2OXuo51ZXxbu/gsgM+Dp9cDdwf27gctKHBrl8xpLfO7+Y3fvDR5uI7+iY1UMcv6iqNr5C5mZAf8BuK/c71sptZQg5gB7ix63cfyXb5R9KsLM5gNnAU+U2LzGzJ41s0fN7PTKRoYDPzazp8xsY4nt4+UcXsHg/zGref4ATvL8yokEP99VYp/xch4/Qb5FWMpwn4U4bQ66wO4cpItuPJy/9wNvufsrg2yv5vmLpJYShJV4buA1vlH2iZ2ZTQG+A3zG3Q8N2Pw0+W6TFcBXgIcqHN557r4SuAi4zsw+MGB71c+h5ZepvRT4xxKbq33+ohoP5/FzQC9w7yC7DPdZiMvXgUXAmcAb5LtxBqr6+QOuZOjWQ7XOX2S1lCDagHlFj+cC+0axT6zMrJF8crjX3b87cLu7H3L3juD+I0Cjmc2sVHzuvi/4+TbwPfJN+WJVP4fk/8M97e5vDdxQ7fMXeCvsdgt+vl1in6qeRzP7GHAJsMGDDvOBInwWYuHub7l7n7v3A98Y5H2rff4agP8TeGCwfap1/kailhLEdmCxmS0I/sK8Anh4wD4PA1cHV+KsBg6GXQGVEPRZ/h3wort/eZB93h3sh5mdQ/53mK5QfC1mNjW8T34w81cDdqvqOQwM+pdbNc9fkYeBjwX3PwZ8v8Q+UT6vsTCzC4EbgUvdvXOQfaJ8FuKKr3hM66ODvG/Vzl/gQ8Bv3L2t1MZqnr8RqfYoeSVv5K+weZn81Q2fC57bBGwK7hvwtWD788CqCsf3b8g3g58DngluFw+IcTPwAvmrMrYBaysY38LgfZ8NYhiP57CZ/Bf+9KLnqnb+yCeqN4Ae8n/V/l9ACvgp8ErwMxnsezLwyFCf1wrFt5N8/334GdwyML7BPgsViu+e4LP1HPkv/dnj6fwFz98VfuaK9q34+RvrTaU2RESkpFrqYhIRkRFQghARkZKUIEREpCQlCBERKUkJQkRESlKCEBkDM5thZtcOsf3xCK/RUd6oRMpDCUJkbGYAxyUIM6sHcPe1lQ5IpFwaqh2AyAnuvwCLgpr/PUAH+YlTZwJLzazD3acE9bW+D7QCjcDn3b3UDGqRcUMT5UTGIKi6+wN3X2Zm64D/CSxz91eD7WGCaACa3f1QUPtpG7DY3T3cp0r/BJFBqQUhUl5PhslhAAP+c1Cxs5986emTyC9qJDIuKUGIlFd2kOc3ALOA97l7j5ntAZoqFpXIKGiQWmRsDpNfHnY404G3g+RwPnBqvGGJjJ1aECJj4O5pM/vXYNH6I8Bxa1AE7gX+KVic/hngNxUKUWTUNEgtIiIlqYtJRERKUoIQEZGSlCBERKQkJQgRESlJCUJEREpSghARkZKUIEREpKT/DSZKswIVOOtvAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] @@ -419,7 +193,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -449,7 +223,7 @@ { "data": { "text/plain": [ - "" + "" ] }, "execution_count": 13, @@ -458,7 +232,7 @@ }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] diff --git a/XCS_Experiments/XNCS_maze5_avg.ipynb b/XCS_Experiments/XNCS_maze5_avg.ipynb new file mode 100644 index 0000000..375ad01 --- /dev/null +++ b/XCS_Experiments/XNCS_maze5_avg.ipynb @@ -0,0 +1,1069 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "('1', '1', '0', '1', '0', '1', '0', '1')\n", + "\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" + ] + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_maze\n", + "\n", + "maze = gym.make('Maze5-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xncs import XNCS, Configuration\n", + "from utils.nxcs_utils import *\n", + "cfg = Configuration(number_of_actions=8,\n", + " max_population=1800,\n", + " learning_rate=0.2,\n", + " epsilon_0=0.01,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08, # mu\n", + " delta=0.1,\n", + " ga_threshold=25,\n", + " deletion_threshold=25,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=20\n", + " )\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.0675823000000002, 'numerosity': 142, 'population': 120, 'average_specificity': 11.330985915492958, 'fraction_accuracy': 1.0, 'knowledge': 0.0}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 10, 'reward': 1032.552731331664, 'perf_time': 0.2017388000000011, 'numerosity': 1800, 'population': 1403, 'average_specificity': 20.795, 'fraction_accuracy': 0.84, 'knowledge': 53.42465753424658}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 24, 'reward': 1000.2715051852821, 'perf_time': 0.4192424000000301, 'numerosity': 1800, 'population': 1491, 'average_specificity': 28.43888888888889, 'fraction_accuracy': 0.81, 'knowledge': 54.794520547945204}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 31, 'reward': 1000.0247764723307, 'perf_time': 0.5578600000000051, 'numerosity': 1800, 'population': 1452, 'average_specificity': 30.996666666666666, 'fraction_accuracy': 0.91, 'knowledge': 59.589041095890416}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 9, 'reward': 1045.9873809239048, 'perf_time': 0.1266768000000411, 'numerosity': 1800, 'population': 1470, 'average_specificity': 32.58833333333333, 'fraction_accuracy': 0.92, 'knowledge': 58.9041095890411}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 100, 'reward': 1.3360874108178924e-12, 'perf_time': 1.6572696000000633, 'numerosity': 1800, 'population': 1466, 'average_specificity': 28.324444444444445, 'fraction_accuracy': 0.92, 'knowledge': 47.94520547945205}\n", + "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 99, 'reward': 1000.0000000000019, 'perf_time': 1.5626332000000502, 'numerosity': 1800, 'population': 1474, 'average_specificity': 32.33277777777778, 'fraction_accuracy': 0.88, 'knowledge': 56.16438356164384}\n", + "INFO:lcs.agents.Agent:{'trial': 1700, 'steps_in_trial': 39, 'reward': 1000.0015815233609, 'perf_time': 0.6334112000001824, 'numerosity': 1800, 'population': 1456, 'average_specificity': 31.07777777777778, 'fraction_accuracy': 0.97, 'knowledge': 54.109589041095894}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 39, 'reward': 1000.0015815233198, 'perf_time': 0.6811422999999195, 'numerosity': 1800, 'population': 1477, 'average_specificity': 34.605555555555554, 'fraction_accuracy': 0.92, 'knowledge': 54.794520547945204}\n", + "INFO:lcs.agents.Agent:{'trial': 2200, 'steps_in_trial': 100, 'reward': 3.186687579353646e-57, 'perf_time': 1.9344378999999208, 'numerosity': 1800, 'population': 1488, 'average_specificity': 30.436666666666667, 'fraction_accuracy': 0.87, 'knowledge': 57.534246575342465}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 38, 'reward': 1000.0023796098758, 'perf_time': 0.6284269000000222, 'numerosity': 1800, 'population': 1470, 'average_specificity': 28.40888888888889, 'fraction_accuracy': 0.89, 'knowledge': 45.89041095890411}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 6, 'reward': 1156.4042910308763, 'perf_time': 0.08938289999991866, 'numerosity': 1800, 'population': 1487, 'average_specificity': 32.699444444444445, 'fraction_accuracy': 0.93, 'knowledge': 41.0958904109589}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 17, 'reward': 1004.9889570093759, 'perf_time': 0.23201700000004166, 'numerosity': 1800, 'population': 1433, 'average_specificity': 36.09722222222222, 'fraction_accuracy': 0.97, 'knowledge': 28.767123287671232}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 4, 'reward': 1329.644169358223, 'perf_time': 0.05646559999991041, 'numerosity': 1800, 'population': 1471, 'average_specificity': 28.43166666666667, 'fraction_accuracy': 0.51, 'knowledge': 31.506849315068493}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 5, 'reward': 1181.0056942623708, 'perf_time': 0.0684400000000096, 'numerosity': 1800, 'population': 1512, 'average_specificity': 29.926111111111112, 'fraction_accuracy': 0.94, 'knowledge': 33.56164383561644}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 3, 'reward': 1406.4191184388305, 'perf_time': 0.05450640000003659, 'numerosity': 1800, 'population': 1494, 'average_specificity': 22.037222222222223, 'fraction_accuracy': 0.48, 'knowledge': 30.136986301369863}\n", + "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 3, 'reward': 1359.7858951220956, 'perf_time': 0.029918199999883655, 'numerosity': 1800, 'population': 1506, 'average_specificity': 25.284444444444443, 'fraction_accuracy': 0.69, 'knowledge': 25.34246575342466}\n", + "INFO:lcs.agents.Agent:{'trial': 1700, 'steps_in_trial': 2, 'reward': 1592.17319368788, 'perf_time': 0.017992399999911868, 'numerosity': 1800, 'population': 1444, 'average_specificity': 25.246111111111112, 'fraction_accuracy': 0.63, 'knowledge': 23.28767123287671}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 19, 'reward': 1002.0359888358486, 'perf_time': 0.24205529999994724, 'numerosity': 1800, 'population': 1455, 'average_specificity': 30.536666666666665, 'fraction_accuracy': 0.8, 'knowledge': 26.027397260273972}\n", + "INFO:lcs.agents.Agent:{'trial': 2200, 'steps_in_trial': 3, 'reward': 1486.0777311981467, 'perf_time': 0.03696510000008857, 'numerosity': 1800, 'population': 1447, 'average_specificity': 32.23, 'fraction_accuracy': 0.94, 'knowledge': 26.027397260273972}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 0.07241019999992204, 'numerosity': 148, 'population': 122, 'average_specificity': 9.43918918918919, 'fraction_accuracy': 1.0, 'knowledge': 1.36986301369863}\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 1 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 100, 'reward': 1.3361201362613567e-12, 'perf_time': 1.3978601999997409, 'numerosity': 1800, 'population': 1412, 'average_specificity': 17.82111111111111, 'fraction_accuracy': 0.93, 'knowledge': 47.26027397260274}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 32, 'reward': 1000.0173900440867, 'perf_time': 0.6245647000000645, 'numerosity': 1800, 'population': 1493, 'average_specificity': 27.555, 'fraction_accuracy': 0.79, 'knowledge': 54.794520547945204}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 17, 'reward': 1003.0337946818588, 'perf_time': 0.29456029999983, 'numerosity': 1800, 'population': 1487, 'average_specificity': 29.287222222222223, 'fraction_accuracy': 0.85, 'knowledge': 56.849315068493155}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 1, 'reward': 1000.0, 'perf_time': 0.021754100000180188, 'numerosity': 1800, 'population': 1456, 'average_specificity': 27.872222222222224, 'fraction_accuracy': 0.92, 'knowledge': 55.47945205479452}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 2, 'reward': 1000.0, 'perf_time': 0.044324999999844295, 'numerosity': 1800, 'population': 1473, 'average_specificity': 30.424444444444443, 'fraction_accuracy': 0.96, 'knowledge': 54.109589041095894}\n", + "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 24, 'reward': 1000.2755025047678, 'perf_time': 0.404910999999629, 'numerosity': 1800, 'population': 1500, 'average_specificity': 29.877777777777776, 'fraction_accuracy': 0.93, 'knowledge': 62.328767123287676}\n", + "INFO:lcs.agents.Agent:{'trial': 1700, 'steps_in_trial': 12, 'reward': 1000.0, 'perf_time': 0.23816059999990102, 'numerosity': 1800, 'population': 1492, 'average_specificity': 27.469444444444445, 'fraction_accuracy': 0.91, 'knowledge': 44.52054794520548}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 65, 'reward': 1000.0000002146805, 'perf_time': 1.0896185999999943, 'numerosity': 1800, 'population': 1480, 'average_specificity': 30.912222222222223, 'fraction_accuracy': 0.94, 'knowledge': 52.73972602739726}\n", + "INFO:lcs.agents.Agent:{'trial': 2200, 'steps_in_trial': 92, 'reward': 1000.0000000000207, 'perf_time': 1.4671839000002365, 'numerosity': 1800, 'population': 1453, 'average_specificity': 31.586666666666666, 'fraction_accuracy': 0.92, 'knowledge': 47.94520547945205}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 44, 'reward': 1000.000287032821, 'perf_time': 0.5444375000001855, 'numerosity': 1800, 'population': 1493, 'average_specificity': 29.16722222222222, 'fraction_accuracy': 0.94, 'knowledge': 55.47945205479452}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 31, 'reward': 1000.0244911292924, 'perf_time': 0.36379660000011427, 'numerosity': 1800, 'population': 1457, 'average_specificity': 36.41166666666667, 'fraction_accuracy': 0.93, 'knowledge': 43.15068493150685}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 4, 'reward': 1254.5788630023821, 'perf_time': 0.048187200000029407, 'numerosity': 1800, 'population': 1441, 'average_specificity': 39.071666666666665, 'fraction_accuracy': 0.98, 'knowledge': 36.3013698630137}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 20, 'reward': 1001.0973212396318, 'perf_time': 0.21438930000022083, 'numerosity': 1800, 'population': 1453, 'average_specificity': 34.14388888888889, 'fraction_accuracy': 0.88, 'knowledge': 28.767123287671232}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 4, 'reward': 1290.1706646339787, 'perf_time': 0.04520700000011857, 'numerosity': 1800, 'population': 1445, 'average_specificity': 26.423333333333332, 'fraction_accuracy': 0.52, 'knowledge': 21.91780821917808}\n", + "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 5, 'reward': 1180.6922446137892, 'perf_time': 0.0494115999999849, 'numerosity': 1800, 'population': 1475, 'average_specificity': 26.587222222222223, 'fraction_accuracy': 0.72, 'knowledge': 21.91780821917808}\n", + "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 7, 'reward': 1107.37912644219, 'perf_time': 0.10038219999978537, 'numerosity': 1800, 'population': 1430, 'average_specificity': 21.701666666666668, 'fraction_accuracy': 0.45, 'knowledge': 16.43835616438356}\n", + "INFO:lcs.agents.Agent:{'trial': 1700, 'steps_in_trial': 6, 'reward': 1136.391663883509, 'perf_time': 0.050970499999948515, 'numerosity': 1800, 'population': 1431, 'average_specificity': 22.366666666666667, 'fraction_accuracy': 0.64, 'knowledge': 20.54794520547945}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 14, 'reward': 1009.5761793467127, 'perf_time': 0.19479679999994914, 'numerosity': 1800, 'population': 1447, 'average_specificity': 23.198333333333334, 'fraction_accuracy': 0.55, 'knowledge': 12.32876712328767}\n", + "INFO:lcs.agents.Agent:{'trial': 2200, 'steps_in_trial': 7, 'reward': 1127.8277716067103, 'perf_time': 0.10170110000035493, 'numerosity': 1800, 'population': 1450, 'average_specificity': 25.605555555555554, 'fraction_accuracy': 0.58, 'knowledge': 16.43835616438356}\n" + ] + } + ], + "source": [ + "\n", + "df = avg_experiment(maze=maze,\n", + " cfg=cfg,\n", + " number_of_tests=2,\n", + " explore_trials=2500,\n", + " exploit_trials=2500,\n", + " )\n" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracyknowledge
trial
0100.00.0000000.069996145.0121.010.3850881.0000.684932
10070.0500.0005610.9849251800.01333.516.1702780.90540.068493
20055.0516.2763660.7997991800.01407.519.3080560.88550.342466
30034.51000.7866460.5951991800.01461.025.3927780.86055.136986
4002.51483.6343720.0299211800.01466.529.6125000.92060.616438
50028.01000.1444480.5219041800.01492.027.9969440.80054.794521
60023.51355.7465950.4133781800.01460.030.6630560.92556.849315
70024.01001.5292860.4262101800.01469.530.1419440.88058.219178
80062.5500.0955941.1352741800.01472.529.4180560.89054.794521
90048.51252.0522090.8709561800.01481.029.6736110.82557.534247
10005.01022.9936900.0742151800.01463.030.2302780.92057.191781
110035.51000.0496020.6317691800.01469.531.0491670.90053.424658
120051.0500.0000000.8507971800.01469.529.3744440.94051.027397
130062.0500.1346391.2155211800.01493.529.2688890.82053.767123
140070.51000.0000001.2441401800.01472.531.1238890.95551.369863
150061.51000.1377510.9837721800.01487.031.1052780.90559.246575
160054.0540.6287260.9121671800.01490.027.1994440.87554.109589
170025.51000.0007910.4357861800.01474.029.2736110.94049.315068
180042.01355.2670880.7613901800.01491.029.3216670.94053.424658
190060.51000.0000130.9930861800.01488.532.5636110.91054.794521
200052.01000.0007910.8853801800.01478.532.7588890.93053.767123
210055.01000.0001430.7809901800.01469.032.5425000.91052.397260
220096.0500.0000001.7008111800.01470.531.0116670.89552.739726
23007.51189.2453440.1236081800.01492.528.2800000.90053.424658
240037.01000.0483120.6396421800.01493.530.3375000.90554.794521
250041.01000.0013330.5864321800.01481.528.7880560.91550.684932
26004.01415.2778620.0431321800.01487.033.9736110.95039.041096
270018.51078.2143910.2265901800.01472.034.5555560.93042.123288
280014.51102.5840990.1712831800.01451.033.7911110.92533.561644
290012.01343.0453890.1701881800.01453.534.5808330.97032.191781
300010.51129.7839100.1401021800.01437.037.5844440.97532.534247
31005.01194.2760530.0739191800.01440.536.2927780.81531.849315
320012.01165.3707450.1354271800.01462.031.2877780.69530.136986
33005.01180.9290200.0702551800.01469.028.8925000.70531.164384
340010.01082.5436340.1151551800.01470.026.1794440.51529.109589
35004.51235.5881790.0568241800.01478.528.1747220.73027.739726
360018.01400.5684980.2432221800.01482.024.1102780.59526.369863
37004.01293.5556820.0519591800.01484.524.3122220.60026.027397
380019.01003.1278630.2229731800.01457.524.3205560.71025.342466
390010.51057.2242260.1468361800.01468.024.2519440.50019.520548
40005.01233.5825110.0651501800.01468.023.4930560.57020.890411
41007.01108.5491400.1108831800.01454.023.2316670.56521.232877
42004.01364.2824290.0344811800.01437.523.8063890.63521.917808
430027.51001.0752530.3649791800.01456.025.6000000.55024.657534
440025.51000.2948490.3223131800.01473.525.4536110.91524.315068
450016.51005.8060840.2184261800.01451.026.8675000.67519.178082
460014.01179.0853540.1456531800.01438.529.0722220.82023.630137
47005.01306.9527510.0693331800.01448.528.9177780.76021.232877
480010.01097.1508190.0923321800.01436.529.5152780.62024.657534
49004.01531.8742530.0461101800.01448.528.6758330.57530.821918
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 100.0 0.000000 0.069996 145.0 121.0 \n", + "100 70.0 500.000561 0.984925 1800.0 1333.5 \n", + "200 55.0 516.276366 0.799799 1800.0 1407.5 \n", + "300 34.5 1000.786646 0.595199 1800.0 1461.0 \n", + "400 2.5 1483.634372 0.029921 1800.0 1466.5 \n", + "500 28.0 1000.144448 0.521904 1800.0 1492.0 \n", + "600 23.5 1355.746595 0.413378 1800.0 1460.0 \n", + "700 24.0 1001.529286 0.426210 1800.0 1469.5 \n", + "800 62.5 500.095594 1.135274 1800.0 1472.5 \n", + "900 48.5 1252.052209 0.870956 1800.0 1481.0 \n", + "1000 5.0 1022.993690 0.074215 1800.0 1463.0 \n", + "1100 35.5 1000.049602 0.631769 1800.0 1469.5 \n", + "1200 51.0 500.000000 0.850797 1800.0 1469.5 \n", + "1300 62.0 500.134639 1.215521 1800.0 1493.5 \n", + "1400 70.5 1000.000000 1.244140 1800.0 1472.5 \n", + "1500 61.5 1000.137751 0.983772 1800.0 1487.0 \n", + "1600 54.0 540.628726 0.912167 1800.0 1490.0 \n", + "1700 25.5 1000.000791 0.435786 1800.0 1474.0 \n", + "1800 42.0 1355.267088 0.761390 1800.0 1491.0 \n", + "1900 60.5 1000.000013 0.993086 1800.0 1488.5 \n", + "2000 52.0 1000.000791 0.885380 1800.0 1478.5 \n", + "2100 55.0 1000.000143 0.780990 1800.0 1469.0 \n", + "2200 96.0 500.000000 1.700811 1800.0 1470.5 \n", + "2300 7.5 1189.245344 0.123608 1800.0 1492.5 \n", + "2400 37.0 1000.048312 0.639642 1800.0 1493.5 \n", + "2500 41.0 1000.001333 0.586432 1800.0 1481.5 \n", + "2600 4.0 1415.277862 0.043132 1800.0 1487.0 \n", + "2700 18.5 1078.214391 0.226590 1800.0 1472.0 \n", + "2800 14.5 1102.584099 0.171283 1800.0 1451.0 \n", + "2900 12.0 1343.045389 0.170188 1800.0 1453.5 \n", + "3000 10.5 1129.783910 0.140102 1800.0 1437.0 \n", + "3100 5.0 1194.276053 0.073919 1800.0 1440.5 \n", + "3200 12.0 1165.370745 0.135427 1800.0 1462.0 \n", + "3300 5.0 1180.929020 0.070255 1800.0 1469.0 \n", + "3400 10.0 1082.543634 0.115155 1800.0 1470.0 \n", + "3500 4.5 1235.588179 0.056824 1800.0 1478.5 \n", + "3600 18.0 1400.568498 0.243222 1800.0 1482.0 \n", + "3700 4.0 1293.555682 0.051959 1800.0 1484.5 \n", + "3800 19.0 1003.127863 0.222973 1800.0 1457.5 \n", + "3900 10.5 1057.224226 0.146836 1800.0 1468.0 \n", + "4000 5.0 1233.582511 0.065150 1800.0 1468.0 \n", + "4100 7.0 1108.549140 0.110883 1800.0 1454.0 \n", + "4200 4.0 1364.282429 0.034481 1800.0 1437.5 \n", + "4300 27.5 1001.075253 0.364979 1800.0 1456.0 \n", + "4400 25.5 1000.294849 0.322313 1800.0 1473.5 \n", + "4500 16.5 1005.806084 0.218426 1800.0 1451.0 \n", + "4600 14.0 1179.085354 0.145653 1800.0 1438.5 \n", + "4700 5.0 1306.952751 0.069333 1800.0 1448.5 \n", + "4800 10.0 1097.150819 0.092332 1800.0 1436.5 \n", + "4900 4.0 1531.874253 0.046110 1800.0 1448.5 \n", + "\n", + " average_specificity fraction_accuracy knowledge \n", + "trial \n", + "0 10.385088 1.000 0.684932 \n", + "100 16.170278 0.905 40.068493 \n", + "200 19.308056 0.885 50.342466 \n", + "300 25.392778 0.860 55.136986 \n", + "400 29.612500 0.920 60.616438 \n", + "500 27.996944 0.800 54.794521 \n", + "600 30.663056 0.925 56.849315 \n", + "700 30.141944 0.880 58.219178 \n", + "800 29.418056 0.890 54.794521 \n", + "900 29.673611 0.825 57.534247 \n", + "1000 30.230278 0.920 57.191781 \n", + "1100 31.049167 0.900 53.424658 \n", + "1200 29.374444 0.940 51.027397 \n", + "1300 29.268889 0.820 53.767123 \n", + "1400 31.123889 0.955 51.369863 \n", + "1500 31.105278 0.905 59.246575 \n", + "1600 27.199444 0.875 54.109589 \n", + "1700 29.273611 0.940 49.315068 \n", + "1800 29.321667 0.940 53.424658 \n", + "1900 32.563611 0.910 54.794521 \n", + "2000 32.758889 0.930 53.767123 \n", + "2100 32.542500 0.910 52.397260 \n", + "2200 31.011667 0.895 52.739726 \n", + "2300 28.280000 0.900 53.424658 \n", + "2400 30.337500 0.905 54.794521 \n", + "2500 28.788056 0.915 50.684932 \n", + "2600 33.973611 0.950 39.041096 \n", + "2700 34.555556 0.930 42.123288 \n", + "2800 33.791111 0.925 33.561644 \n", + "2900 34.580833 0.970 32.191781 \n", + "3000 37.584444 0.975 32.534247 \n", + "3100 36.292778 0.815 31.849315 \n", + "3200 31.287778 0.695 30.136986 \n", + "3300 28.892500 0.705 31.164384 \n", + "3400 26.179444 0.515 29.109589 \n", + "3500 28.174722 0.730 27.739726 \n", + "3600 24.110278 0.595 26.369863 \n", + "3700 24.312222 0.600 26.027397 \n", + "3800 24.320556 0.710 25.342466 \n", + "3900 24.251944 0.500 19.520548 \n", + "4000 23.493056 0.570 20.890411 \n", + "4100 23.231667 0.565 21.232877 \n", + "4200 23.806389 0.635 21.917808 \n", + "4300 25.600000 0.550 24.657534 \n", + "4400 25.453611 0.915 24.315068 \n", + "4500 26.867500 0.675 19.178082 \n", + "4600 29.072222 0.820 23.630137 \n", + "4700 28.917778 0.760 21.232877 \n", + "4800 29.515278 0.620 24.657534 \n", + "4900 28.675833 0.575 30.821918 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df['average_specificity'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"specificity\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEGCAYAAACKB4k+AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABMLElEQVR4nO2deXzcdZ3/n++5MpncR5MmbdIW2tKTltIWKKKgUBA59eeKIiousqh4rgoey7q6q67HsuKxXXQRVAR3PaAiiIDIVaSlpYUWep9p2qbNncwkc31+f8x8J5NkJjNJZpJJ8n4+Hnl05jvf+X4/37T9vr/v6/UWYwyKoiiKAmAb7wUoiqIouYMaBUVRFCWGGgVFURQlhhoFRVEUJYYaBUVRFCWGY7wXMFwqKyvN7Nmzx3sZiqIoE4rNmzefMsZMS7XfhDMKs2fP5uWXXx7vZSiKokwoRORQOvtp+EhRFEWJoUZBURRFiaFGQVEURYkx4XIKiqKMjEAgQENDAz09PeO9FCWLuN1uZs6cidPpHNH31SgoyhShoaGBoqIiZs+ejYiM93KULGCMobm5mYaGBubMmTOiY2QtfCQi94hIk4hsT/K5iMhdIrJXRF4VkRXZWouiKNDT00NFRYUahEmMiFBRUTEqbzCbOYV7gcuG+PztwLzoz83Af2VxLYqigBqEKcBo/46zZhSMMc8CLUPscjXwcxPhb0CpiNRkaz07j3fwrcd20tkTyNYpFEVRJjzjWX00AzgS974hum0QInKziLwsIi+fPHlyRCc70uJj3TP72NPUNaLvK4oyeu666y4WLlzI9ddfP+pj3XvvvTQ2Nsbe33TTTbz++uujPu5UZzyNQiIfJ+HEH2PM3caYlcaYldOmpezSTsj86kIA9p5Qo6Ao48WPf/xjHn30Ue6///5+24PB4LCPNdAo/PSnP2XRokWjXuNYEgqFxnsJgxhPo9AA1MW9nwk0Jtl31Mws85DnsLH7RGe2TqEoyhDccsst7N+/n6uuuoo777yTr371q9x8882sXbuWD3zgAxw8eJALLriAFStWsGLFCjZs2BD77re//W2WLl3KsmXLuP322/nNb37Dyy+/zPXXX8/y5cvx+XxceOGFMQmcBx54gKVLl7JkyRJuu+222HEKCwv58pe/zLJlyzj33HM5ceLEoHVu3LiRNWvWcNZZZ7FmzRp27doFRG7gn/vc51i6dClnnnkmP/jBDwDYtGkTa9asYdmyZaxevZrOzk7uvfdebr311tgxr7jiCv7617/G1nDHHXdwzjnn8OKLL/K1r32NVatWsWTJEm6++WasaZh79+7l4osvZtmyZaxYsYJ9+/Zxww038PDDD8eOe/3117N+/foM/Q1FGM+S1PXArSLyIHAO0G6MOZatk9ltwunTCjV8pCjAv/xhB683dmT0mItqi/nnKxcn/XzdunX86U9/4umnn6ayspKvfvWrbN68meeff578/Hy8Xi9PPPEEbrebPXv28N73vpeXX36Zxx57jIceeoiXXnoJj8dDS0sL5eXl/PCHP+S73/0uK1eu7HeexsZGbrvtNjZv3kxZWRlr167loYce4pprrqG7u5tzzz2Xf/u3f+MLX/gCP/nJT/jKV77S7/sLFizg2WefxeFw8OSTT/KlL32J3/72t9x9990cOHCAV155BYfDQUtLC36/n/e85z38+te/ZtWqVXR0dJCfnz/k76m7u5slS5bwta99LfJ7W7SIO+64A4AbbriBRx55hCuvvJLrr7+e22+/nWuvvZaenh7C4TA33XQTd955J1dffTXt7e1s2LCB++67byR/XUnJmlEQkQeAC4FKEWkA/hlwAhhj1gGPApcDewEvcGO21mIxv7qQTQdbs30aRVHS5KqrrordRAOBALfeeitbt27Fbreze/duAJ588kluvPFGPB4PAOXl5UMec9OmTVx44YVYoebrr7+eZ599lmuuuQaXy8UVV1wBwNlnn80TTzwx6Pvt7e188IMfZM+ePYgIgUAgto5bbrkFh8MRW8drr71GTU0Nq1atAqC4uDjlNdvtdt71rnfF3j/99NN8+9vfxuv10tLSwuLFi7nwwgs5evQo1157LRBpSAN4y1vewsc//nGampr43e9+x7ve9a7YejJF1oyCMea9KT43wMezdf5EzKsu4qGtjXT1BinM0749Zeoy1BP9WFJQUBB7feedd1JdXc22bdsIh8OxG6ExZlhlllb4JRFOpzN2LLvdnjCX8U//9E9cdNFF/P73v+fgwYNceOGFSdeRbG0Oh4NwOBx7H9834Ha7sdvtse0f+9jHePnll6mrq+OrX/0qPT09Q17DDTfcwP3338+DDz7IPffck3S/kTKltI/mVkWTzRpCUpSco729nZqaGmw2G7/4xS9iSdi1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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['fraction_accuracy'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"fraction accuracy\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['numerosity', 'population']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"numerosity\", \"number of rules\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "ax = df['knowledge'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"Knowledge\")\n", + "ax.legend([\"Knowledge %\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['steps_in_trial'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"steps\"])" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XNCS_maze5_avg_pre_populate_high_%.ipynb b/XCS_Experiments/XNCS_maze5_avg_pre_populate_high_%.ipynb new file mode 100644 index 0000000..b953839 --- /dev/null +++ b/XCS_Experiments/XNCS_maze5_avg_pre_populate_high_%.ipynb @@ -0,0 +1,1057 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "('1', '0', '0', '0', '1', '0', '1', '1')\n", + "\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[33m$\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[31mA\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[30m■\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m\n" + ] + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_maze\n", + "\n", + "maze = gym.make('Maze5-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xncs import XNCS, Configuration\n", + "from utils.nxcs_utils import *\n", + "\n", + "cfg = Configuration(number_of_actions=8,\n", + " max_population=1800,\n", + " learning_rate=0.2,\n", + " mutation_chance=0.08,\n", + " chi=0.8,\n", + " ga_threshold=25,\n", + " deletion_threshold=25,\n", + " delta=0.1,\n", + " initial_error=0.01,\n", + " metrics_trial_frequency=50,\n", + " covering_wildcard_chance=0.9,\n", + " user_metrics_collector_fcn=xncs_maze_metrics,\n", + " lmc=10,\n", + " lem=200,\n", + " update_percentage=0.8,\n", + " )\n" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Executing 0 experiment\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 100, 'reward': 0.0, 'perf_time': 1.2515588000001117, 'numerosity': 1800, 'population': 1185, 'average_specificity': 2.1816666666666666, 'fraction_accuracy': 0.87, 'knowledge': 13.698630136986301}\n", + "INFO:lcs.agents.Agent:{'trial': 250, 'steps_in_trial': 6, 'reward': 1145.621951676395, 'perf_time': 0.08970569999996769, 'numerosity': 1800, 'population': 1381, 'average_specificity': 7.49, 'fraction_accuracy': 0.14, 'knowledge': 29.45205479452055}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 23, 'reward': 1000.5172347287778, 'perf_time': 0.36151959999983774, 'numerosity': 1800, 'population': 1400, 'average_specificity': 9.233333333333333, 'fraction_accuracy': 0.5, 'knowledge': 31.506849315068493}\n", + "INFO:lcs.agents.Agent:{'trial': 750, 'steps_in_trial': 17, 'reward': 1002.9761016296761, 'perf_time': 0.23235790000012457, 'numerosity': 1800, 'population': 1446, 'average_specificity': 11.629444444444445, 'fraction_accuracy': 0.34, 'knowledge': 31.506849315068493}\n", + "INFO:lcs.agents.Agent:{'trial': 1000, 'steps_in_trial': 5, 'reward': 1192.0760374577244, 'perf_time': 0.06481979999989562, 'numerosity': 1800, 'population': 1488, 'average_specificity': 16.053333333333335, 'fraction_accuracy': 0.54, 'knowledge': 29.45205479452055}\n", + "INFO:lcs.agents.Agent:{'trial': 1250, 'steps_in_trial': 4, 'reward': 1269.2756724311316, 'perf_time': 0.05363770000008117, 'numerosity': 1800, 'population': 1501, 'average_specificity': 14.864444444444445, 'fraction_accuracy': 0.4, 'knowledge': 28.767123287671232}\n", + "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 5, 'reward': 1180.4317007596853, 'perf_time': 0.07184489999985999, 'numerosity': 1800, 'population': 1486, 'average_specificity': 17.59888888888889, 'fraction_accuracy': 0.33, 'knowledge': 34.93150684931507}\n", + "INFO:lcs.agents.Agent:{'trial': 1750, 'steps_in_trial': 12, 'reward': 1018.5616492159927, 'perf_time': 0.17546459999994113, 'numerosity': 1800, 'population': 1542, 'average_specificity': 17.554444444444446, 'fraction_accuracy': 0.46, 'knowledge': 30.82191780821918}\n", + "INFO:lcs.agents.Agent:{'trial': 2000, 'steps_in_trial': 5, 'reward': 1180.4667847058154, 'perf_time': 0.09298179999996137, 'numerosity': 1800, 'population': 1533, 'average_specificity': 15.79, 'fraction_accuracy': 0.37, 'knowledge': 31.506849315068493}\n", + "INFO:lcs.agents.Agent:{'trial': 2250, 'steps_in_trial': 11, 'reward': 1023.1185561389009, 'perf_time': 0.1835204999997586, 'numerosity': 1800, 'population': 1488, 'average_specificity': 16.520555555555557, 'fraction_accuracy': 0.3, 'knowledge': 36.3013698630137}\n" + ] + } + ], + "source": [ + "\n", + "df = avg_experiment(maze=maze,\n", + " cfg=cfg,\n", + " number_of_tests=1,\n", + " explore_trials=0,\n", + " exploit_trials=2500,\n", + " pre_generate=True)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
steps_in_trialrewardperf_timenumerositypopulationaverage_specificityfraction_accuracyknowledge
trial
01000.000000e+001.251559180011852.1816670.8713.698630
501005.339645e-721.019422180012623.7283330.4329.452055
10051.284255e+030.069634180013636.5294440.2532.191781
15071.095186e+030.104572180013666.9500000.2830.136986
20011.814115e+030.010820180013686.8111110.2631.506849
25061.145622e+030.089706180013817.4900000.1429.452055
300251.000416e+030.428393180013828.5222220.3128.767123
35041.477468e+030.061940180014139.3905560.3928.082192
40041.293183e+030.0751801800139710.8733330.3629.452055
45071.116260e+030.1040861800140810.4466670.2430.821918
500231.000517e+030.361520180014009.2333330.5031.506849
550111.024250e+030.1459431800141210.6433330.4530.136986
60041.335123e+030.0397911800140911.4794440.5029.452055
65061.219192e+030.0804991800142811.0661110.3932.191781
70031.403475e+030.0433331800144112.4877780.4130.136986
750171.002976e+030.2323581800144611.6294440.3431.506849
80091.047573e+030.1209961800144511.8705560.2830.136986
850151.005954e+030.2211631800145312.2811110.3728.767123
90071.162533e+030.1089951800146913.0205560.3929.452055
95091.047366e+030.1594211800147713.7777780.2828.767123
100051.192076e+030.0648201800148816.0533330.5429.452055
1050101.037100e+030.1584241800149914.3844440.3629.452055
110061.130399e+030.1294761800150514.7916670.1729.452055
115091.058768e+030.1567871800150915.0205560.3830.136986
120061.138054e+030.1036741800151415.1211110.3630.821918
125041.269276e+030.0536381800150114.8644440.4028.767123
130021.574743e+030.0385371800152715.5894440.3030.136986
1350101.040548e+030.1523551800152617.1038890.3930.136986
1400111.025399e+030.2147391800154017.4600000.3529.452055
1450351.000006e+030.6644961800152216.6533330.6728.082192
150051.180432e+030.0718451800148617.5988890.3334.931507
155061.134122e+030.0752491800149718.8088890.3832.876712
1600221.000535e+030.3173621800150517.1338890.6036.301370
1650201.001129e+030.2908361800151516.8716670.3036.301370
1700191.001561e+030.3059631800149816.9794440.3232.191781
1750121.018562e+030.1754651800154217.5544440.4630.821918
180071.145081e+030.1450081800154016.2238890.3828.767123
185051.230172e+030.0674621800153616.2527780.4828.082192
190071.125626e+030.1195391800152715.5500000.4030.821918
1950271.000123e+030.4371771800153416.4266670.4132.191781
200051.180467e+030.0929821800153315.7900000.3731.506849
205061.192798e+030.0915861800153116.1155560.5932.876712
2100241.000269e+030.2969341800150316.2550000.2740.410959
2150291.000053e+030.4443571800148915.8883330.4436.301370
220051.229385e+030.0938881800147916.1272220.2533.561644
2250111.023119e+030.1835201800148816.5205560.3036.301370
2300121.017539e+030.2095451800150216.6611110.4531.506849
2350191.001497e+030.2413581800149415.6761110.2731.506849
2400171.002969e+030.2929651800148517.0333330.4030.136986
2450111.026940e+030.2166581800148516.2061110.2229.452055
\n", + "
" + ], + "text/plain": [ + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 100 0.000000e+00 1.251559 1800 1185 \n", + "50 100 5.339645e-72 1.019422 1800 1262 \n", + "100 5 1.284255e+03 0.069634 1800 1363 \n", + "150 7 1.095186e+03 0.104572 1800 1366 \n", + "200 1 1.814115e+03 0.010820 1800 1368 \n", + "250 6 1.145622e+03 0.089706 1800 1381 \n", + "300 25 1.000416e+03 0.428393 1800 1382 \n", + "350 4 1.477468e+03 0.061940 1800 1413 \n", + "400 4 1.293183e+03 0.075180 1800 1397 \n", + "450 7 1.116260e+03 0.104086 1800 1408 \n", + "500 23 1.000517e+03 0.361520 1800 1400 \n", + "550 11 1.024250e+03 0.145943 1800 1412 \n", + "600 4 1.335123e+03 0.039791 1800 1409 \n", + "650 6 1.219192e+03 0.080499 1800 1428 \n", + "700 3 1.403475e+03 0.043333 1800 1441 \n", + "750 17 1.002976e+03 0.232358 1800 1446 \n", + "800 9 1.047573e+03 0.120996 1800 1445 \n", + "850 15 1.005954e+03 0.221163 1800 1453 \n", + "900 7 1.162533e+03 0.108995 1800 1469 \n", + "950 9 1.047366e+03 0.159421 1800 1477 \n", + "1000 5 1.192076e+03 0.064820 1800 1488 \n", + "1050 10 1.037100e+03 0.158424 1800 1499 \n", + "1100 6 1.130399e+03 0.129476 1800 1505 \n", + "1150 9 1.058768e+03 0.156787 1800 1509 \n", + "1200 6 1.138054e+03 0.103674 1800 1514 \n", + "1250 4 1.269276e+03 0.053638 1800 1501 \n", + "1300 2 1.574743e+03 0.038537 1800 1527 \n", + "1350 10 1.040548e+03 0.152355 1800 1526 \n", + "1400 11 1.025399e+03 0.214739 1800 1540 \n", + "1450 35 1.000006e+03 0.664496 1800 1522 \n", + "1500 5 1.180432e+03 0.071845 1800 1486 \n", + "1550 6 1.134122e+03 0.075249 1800 1497 \n", + "1600 22 1.000535e+03 0.317362 1800 1505 \n", + "1650 20 1.001129e+03 0.290836 1800 1515 \n", + "1700 19 1.001561e+03 0.305963 1800 1498 \n", + "1750 12 1.018562e+03 0.175465 1800 1542 \n", + "1800 7 1.145081e+03 0.145008 1800 1540 \n", + "1850 5 1.230172e+03 0.067462 1800 1536 \n", + "1900 7 1.125626e+03 0.119539 1800 1527 \n", + "1950 27 1.000123e+03 0.437177 1800 1534 \n", + "2000 5 1.180467e+03 0.092982 1800 1533 \n", + "2050 6 1.192798e+03 0.091586 1800 1531 \n", + "2100 24 1.000269e+03 0.296934 1800 1503 \n", + "2150 29 1.000053e+03 0.444357 1800 1489 \n", + "2200 5 1.229385e+03 0.093888 1800 1479 \n", + "2250 11 1.023119e+03 0.183520 1800 1488 \n", + "2300 12 1.017539e+03 0.209545 1800 1502 \n", + "2350 19 1.001497e+03 0.241358 1800 1494 \n", + "2400 17 1.002969e+03 0.292965 1800 1485 \n", + "2450 11 1.026940e+03 0.216658 1800 1485 \n", + "\n", + " average_specificity fraction_accuracy knowledge \n", + "trial \n", + "0 2.181667 0.87 13.698630 \n", + "50 3.728333 0.43 29.452055 \n", + "100 6.529444 0.25 32.191781 \n", + "150 6.950000 0.28 30.136986 \n", + "200 6.811111 0.26 31.506849 \n", + "250 7.490000 0.14 29.452055 \n", + "300 8.522222 0.31 28.767123 \n", + "350 9.390556 0.39 28.082192 \n", + "400 10.873333 0.36 29.452055 \n", + "450 10.446667 0.24 30.821918 \n", + "500 9.233333 0.50 31.506849 \n", + "550 10.643333 0.45 30.136986 \n", + "600 11.479444 0.50 29.452055 \n", + "650 11.066111 0.39 32.191781 \n", + "700 12.487778 0.41 30.136986 \n", + "750 11.629444 0.34 31.506849 \n", + "800 11.870556 0.28 30.136986 \n", + "850 12.281111 0.37 28.767123 \n", + "900 13.020556 0.39 29.452055 \n", + "950 13.777778 0.28 28.767123 \n", + "1000 16.053333 0.54 29.452055 \n", + "1050 14.384444 0.36 29.452055 \n", + "1100 14.791667 0.17 29.452055 \n", + "1150 15.020556 0.38 30.136986 \n", + "1200 15.121111 0.36 30.821918 \n", + "1250 14.864444 0.40 28.767123 \n", + "1300 15.589444 0.30 30.136986 \n", + "1350 17.103889 0.39 30.136986 \n", + "1400 17.460000 0.35 29.452055 \n", + "1450 16.653333 0.67 28.082192 \n", + "1500 17.598889 0.33 34.931507 \n", + "1550 18.808889 0.38 32.876712 \n", + "1600 17.133889 0.60 36.301370 \n", + "1650 16.871667 0.30 36.301370 \n", + "1700 16.979444 0.32 32.191781 \n", + "1750 17.554444 0.46 30.821918 \n", + "1800 16.223889 0.38 28.767123 \n", + "1850 16.252778 0.48 28.082192 \n", + "1900 15.550000 0.40 30.821918 \n", + "1950 16.426667 0.41 32.191781 \n", + "2000 15.790000 0.37 31.506849 \n", + "2050 16.115556 0.59 32.876712 \n", + "2100 16.255000 0.27 40.410959 \n", + "2150 15.888333 0.44 36.301370 \n", + "2200 16.127222 0.25 33.561644 \n", + "2250 16.520556 0.30 36.301370 \n", + "2300 16.661111 0.45 31.506849 \n", + "2350 15.676111 0.27 31.506849 \n", + "2400 17.033333 0.40 30.136986 \n", + "2450 16.206111 0.22 29.452055 " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "display(df)" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY0AAAEGCAYAAACZ0MnKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA3+ElEQVR4nO3deVzUdf7A8debSwQBD1AUVLwVVDxQ8yi10tJKu+w+t9attXO33dq23a1122237XbL7TCrX5m1ZplZaermkaWoeIEKKiqCCMqlyDmf3x8zuIgDzOAMA8z7+XjMY2a+5/s7o/Pmc3w/HzHGoJRSSjnCx9MBKKWUaj40aSillHKYJg2llFIO06ShlFLKYZo0lFJKOczP0wG4Unh4uImJifF0GEop1axs3rw51xgT4ci2LSppxMTEkJiY6OkwlFKqWRGRg45uq9VTSimlHKZJQymllMM0aSillHJYi2rTUEq1HOXl5WRkZFBSUuLpUFqMwMBAoqOj8ff3b/AxNGkopZqkjIwMQkJCiImJQUQ8HU6zZ4zh+PHjZGRk0KNHjwYfR6unlFJNUklJCR06dNCE4SIiQocOHc675KZJQynVZGnCcC1XfJ6aNJRSHMk/zZfbMj0dhmoGNGkopZj9ZTIPLtjK4RPFng7FK0ydOpX8/HwAXn31VQYMGMCtt97KkiVLeO655+rcd8yYMQCkp6fz0UcfuTvUc2hDuFJe7vCJYpYnHwVgRXI2PxvX8EZS5Zhly5adef3666/z9ddfn2mcnjZtWp37/vDDD8D/ksYtt9zivkDt0JKGUl7u/348iIjQJSzwTPJQcOrUKa644gri4+MZOHAgCxcuJCYmhscff5yRI0cycuRI0tLSAMjJyeG6665jxIgRjBgxgvXr1wNw8uRJ7r77bgYNGsTgwYNZtGgRYB3yKDc3l/vuu4/9+/czbdo0XnrpJebPn88DDzwAQHZ2Ntdccw3x8fHEx8efSRZt2rQB4IknnmDt2rUMGTKEl156iQsvvJCkpKQz8Y8dO5bt27e7/HPRkoZSXqy4rIIFGw9xeVwkMeFBvPHffeSdKqNdcICnQzvLM1/uIjmz0KXHjO0Syp+uiqt1/TfffEOXLl346quvACgoKODxxx8nNDSUjRs38v777/PII4+wdOlSHn74YR599FHGjRvHoUOHuOyyy0hJSWH27NmEhYWxY8cOAPLy8s46x9y5c/nmm29YvXo14eHhzJ8//8y6hx56iPHjx7N48WIqKys5efLkWfs+99xz/POf/2Tp0qUAtG/fnvnz5/Pyyy+zd+9eSktLGTx4sCs+qrNoSUMpL7Z46xEKSyq4a2wMk2MjsRhYtfuYp8NqEgYNGsR3333H448/ztq1awkLCwPg5ptvPvO8YcMGAL777jseeOABhgwZwrRp0ygsLKSoqIjvvvuOWbNmnTlmu3btHD7/qlWruP/++wHw9fU9c/7azJgxg6VLl1JeXs68efO46667nLlch2lJQykvZYxh/vp0BkaFktC9HcZAZKi1iuq64dGeDu8sdZUI3KVv375s3ryZZcuW8bvf/Y7JkycDZ3dbrXptsVjYsGEDrVu3PusYxphG6zYcFBTEpEmT+OKLL/jkk0/cNuK3ljSU8lLr046Teuwkd43pgYjg4yNMiu3E93tzOF1W6enwPC4zM5OgoCBuu+02HnvsMbZs2QLAwoULzzyPHj0agMmTJzNnzpwz+1a1LdRcXrN6qi6XXHIJb7zxBgCVlZUUFp5dPRcSEkJRUdFZy+69914eeughRowYQfv27R0+lzM0aSjlpd5df4DwNgFcFd/5zLLJcZ0oKbewLi3Xg5E1DTt27GDkyJEMGTKEZ599lqeeegqA0tJSRo0axSuvvMJLL70EWLvNJiYmMnjwYGJjY5k7dy4ATz31FHl5eQwcOJD4+HhWr17t8PlfeeUVVq9ezaBBgxg+fDi7du06a/3gwYPx8/MjPj7+TBzDhw8nNDSUu+++2xUfgV1ijHHbwRtbQkKC0UmYlKpfeu4pJr7wXx6c2JtfTe53ZnlZhYXhf1nB5XGRPD8j3oMRQkpKCgMGDPBoDDVVTfQWHh7u6VDsyszMZMKECezevRsfH/tlAnufq4hsNsYkOHIOLWko5YXe25COrwi3XdD9rOUBfj5c3L8j36VkU1Fp8VB0qiHef/99Ro0axbPPPltrwnAFTRpKeZmTpRV8mpjBFYM70zE08Jz1k2I7kVdczuaDjte/e4v09PQmW8q44447OHz4MDNmzHDreTRpKOVl/pN4mJOlFdw91v6d3+P7RhDg68OK5OxGjuxcLan6vClwxeepSUMpL2KxGN7bcJAhXdsypGtbu9uEBPozpncHlidne/RHOzAwkOPHj2vicJGq+TQCA88tXTrDrfdpiMg84ErgmDFmoG3ZQqCq5a0tkG+MGWJn33SgCKgEKhxtpFFK1e77vTkcyD3FKzcNqXO7ybGRPLl4B3uyi+gfGdo4wdUQHR1NRkYGOTk5Hjl/S1Q1c9/5cPfNffOBOcD7VQuMMTdWvRaRF4CCOvafaIzRvn9KuYAxhrnf76NjSCumDOxc57aXxnbk95/D8l3ZLksaG/Yd58SpMq4YXPe5q/j7+5/XDHPKPdxaPWWMWQOcsLdOrLdJ3gAscGcMSrVUJeWV/GdzBgWnyx3aftXuY/x04AQPXNybAL+6/+t3DAlkaNe2LhvA8Ie0XO6ct5FHFyaRd6rMJcdUnuHJNo0LgWxjTGot6w2wXEQ2i8jM2g4iIjNFJFFEErUYq7zF9ox8rnxtHY99uo3fL95R7/YVlRb+9vVueoYHc/PIbg6dY3JcJDuPFHIk//R5xbrzSAEzP9hMREgryiotLN565LyOpzzLk0njZuouZYw1xgwDpgCzROQiexsZY940xiQYYxIiIiLcEadSTUZ5pYUXV+zlmtd/4GRJBVcP6cLS7Vks31V3iWBh4mHSjp3k8Sn98fd17L/95NhOAKyo59h1OXj8FHe9u4mw1v4sun8M8dFhfLzpkDZuN2MeSRoi4gdcCyysbRtjTKbt+RiwGBjZONEp1TTtOVrE1f9az6srU5ke34VvH72If1wfT//IEP7wxU4KS+xXU50sreClFamMiGl3JhE4omdEG3pFBLMipWFdb48VlXD7OxuptFh472cjiQwL5KaR3dibfZKth/MbdEzleZ4qaVwK7DbGZNhbKSLBIhJS9RqYDOxsxPiUajIsFmsD9lWvreNoQQlzbxvOizcOIay1PwF+Pvzj+sHkFJXyt2W77e7/5vf7yD1ZypNTBzg94urkuEh+3H/C6bksikrKuWveJnKKSpl31wh6d7ROHHRVfBeCAnz5eOMhp46nmg63Jg0RWQBsAPqJSIaI3GNbdRM1qqZEpIuIVM2B2AlYJyLbgI3AV8aYb9wZq1JN1eKtR3ju691M7B/Bt49exOUDI89aPzi6LT+/sCcLNh7ih31ndzY8WlDCm2v3c+Xgzgzt5vhcDlWuGxZNkL8vU19dy6wPt7DnaFG9+5SUVzLz/c3szS5i7u3Dzzpvm1Z+XDW4C19uy6KolpKRqt3WQ3lknmcb0/nSAQuVauJuf+cnDp0o5r+PTai1pHC6rJLLX1kDwDcPX0TrAF8AfvufbXy+NZOVvx5P1/ZBDTp/fnEZb689wLvrD1BcXsnUQZ15+JI+9O0UcmabE6fK2J6Rz/aMAlbtPkbS4XxevnEIVw+NOud4Ww/lcc3rP/DXawZxyyjHGuWVtfQ28tmVxIQHs+SBsQ63TTnCmQELdRImpZqwnKJS1qfl8ssJveusWmod4Mvfrh3ELW/9xEvf7eXJqQNIySrk080Z3DO2R4MTBkDboAAeu6wf94zrwdvr9jN/fTrLdmRxeVwkPiJsy8gnI8/6168I9Ipow3PXDrKbMACGdG1Lv04hLNx0SJOGE77clsXp8kpSsgp5Z90B7hvfyyNxaNJQqgn7emcWFmNtC6jPmF7h3DyyG2+v3c8Vgzrzwoq9hLTy44GLe7sklnbBAfzmsv7cO64nb6/bz/sbDtI2yJ/46LbcfkF3Bke3ZWBUKCGB/nUeR0S4aWRXnvkymeTMQmK7eOaO8+bmk8TD9O3Uhh7hwbz83V6mDuxMtw4N/2OgobR6SqkmbMbcHyg4Xc7yR8c7tH1hSTmTXvwei7GWUp66YgD3XtjTLbGdz1Sm+cVljPzrSm4e0ZVnpg90cWQtz97sIia/tIanrhjAlYO7cOmL3zO0W1ve/9lIl0wnq/NpKNUCZOafZlN6HtMcKGVUCQ3059mrB5FTVErX9q25fXT3+ndqoPP5sWobFMCUgZEs3nqEknLvmVq20mLYeiiP11amcuO/NzD6bys5kHuq3v0+2XQYf1/hmqFRRIYF8tvL+7E2NZcvkjIbIeqzafWUUk3U0u3WH4QrBzueNAAuje3Es9cMZFBUGK38fN0RmkvcOKIrXyRl8vXOLK4Zen6D6DVlBcXlLNmeybrUHDbsO05hSQUAcV1CyS8u54Xle5hzy7Ba9y+rsPDZ1iNcOqATHdq0AuDWUd35bMsR/rw0mfF9I2gXHNAo1wJa0lCqyfpyWxaDo8OICQ92et9bR1nbGJqy0T07ENMhiAUbD7vsmKdKKyiraDozDm4+mMeUV9bwh893svNIIVMGdua1m4ey+alL+eqhC/n5hT1Yuj2LnUdqH7d11e5sTpwq44aErmeW+foIf7t2EIWny/nrspTGuJQzNGko1QQdyD3FjiMFTlVNNTciwo0jurHxwAn255w87+OVlFdy1Zx1TP/Xek6VVrggwoYzxvDWmv3c+O8N+PoKi+4fw7rHJ/L36wdzVXyXMyWGey/qSbsgf/7x7Z5aj7Vw02EiQwO5qO/ZwyQN6BzKzIt68unmDH5Ia7zBwDVpKNUELd1mrZpydBjx5uq64VH4+QgLN51d2qiotFBQXE5BseM3AL61Zj/7c06x+2ghv/okCYul4Z18jDEUFJc3aIys/OIyfv5+Is8uS+GSAR1Z+uCFDO/ezm4bUGigP7+c0Js1e3POuTETrDdnfr83h+uGR+Hrc+7+D13Sh+4dgnhy8Y5GaxvSNg2lmhhjDEu2ZTIypj2dw1p7Ohy36hgSyCUDOvL+hoOsSMnmZEkFJ0srKC6z/gD6+ggvzIiv9Z6PKhl5xfzrv2lMHRTJ8O7tmb00mZdXpvKrSX0djiWnqJQf9uWyLjWX9Wm5ZBaUcMWgzjx7zUDaBjnWZrD1UB4PfLSVY0Ul/OmqWO4aE1Nvh4HbR3dn3voD/OObPSz+ZYeztl+0JQOLgRnDu9rdN9Dfl2evHsRt7/zEnFVpPHZZP7vbuZImDaWamD3ZRaQeO8nsq72jK+qDF/eh0mII9PclJNCPNq38aNPKnzaBfny1PZMnF+9gUHQYvSLa1HqMvyxNQRB+f0UsXcIC2Z1VyKsrU+nXKaTO0trhE8W8vyGdtam57LYNkRLW2p8xvTpw+cDWfPBjOokHT/DPGfFc2Kf2UbQLisuZ/0M6c1an0ik0kE/vG1PrdLo1Bfr78silfXh80Q5WJGczOc46TIwxhk8SDzOqR/s627XG9Qnn2mFR/Lj/OJUWY7dE4kqaNJRXenvtfiJCWjF9SN1/wXrCl9sy8fURptQYY6qlGhgVxtt3jrC77opBnZnyyhpmfbiFz2eNJdD/3N5ga/bm8M2uo/zmsn5EtbWWzP5yzUD25Zzk158m0b1DEAOjws7ap7zSwjvrDvDyd3uxWCAhph2/uawfF/YJJ65L2Jkf3muHRfHIwiRuf2cjd4+N4fHL+58Vw5H807yz9gALNx3iVFklUwdF8rdrBhMWVPcNjjVdNyyaf6/Zz/Pf7uGSAZ3w9RF+OnCCg8eLefiSPvXuP3v6QAL9fd2eMECThvJClRbDy9+l0jbIn2nxXVxyc5SrGGP4clsWY3p1INzWWOrNIsMCefHGIdz97iZmL03m2WsGnbW+tKKSp5fsIqZDEPde+L+pYVv5+TL39uFMn7Oeme8n8sUD44gIsX6emw/m8fvFO9h9tIhJsZ14elrcmWRT08CoMJY+OI7nvt7Nu+vTWZ+Wy8s3DgXgzTX7+HJ7FoL1jv2fX9izwXe3+/n68Njkfvzywy0s3nqE64dH88mmw4S08qt3al6A4FaN91OuSUN5nd1HCzlZaq07T8kqalLDWGzLKODQiWIedNHQHy3BxH4d+cX4nvz7+/2M7tXhrPtW5q1LZ3/uKd69e8Q596R0DAnkrTsSuH7uD9z/f5uZe/twXlyxlwUbDxEZGsi/bx/OZXH1l+YC/X15elocE/t35LFPt3HVnHVUWgzBAb7cPSaGn43rQZdako4zpgyMZFBUGC+t2MuEfhEs25nFtcOizww+2VRo0lBeZ8vBvDOvlycfbVJJ48ttmQT4+pyp11ZWj03ux8YDJ3hi0Q4GRYXRvUMwWQWneW1VKpNiOzGxX0e7+w2MCuP56+N5cMFWRv9tJZUWw8/G9uDRSX1p4+Rf5+P7RvDtIxfx+uo0OrRpxS2juhHW2rlqqLqICI9f3p/b3vmJe+ZvoqTcwo0J9hvAPUm73Cqvk3gwj06hrRjevR3LdzVsVjp3sFgMS7dnMr5fhEt/jFoCf18fXrt5KD4CD3y0ldKKSp79KoVKi+GPV8bWue9V8V14Ykp/RsS0Z8kD4/jDlbFOJ4wq7YMDeOrKWO6f0Mst39G4PuGM7d2BbRkF9OsUwuDosPp3amSaNJTXSUzPI6F7ey6L60RyViGHTxR7OiQANqafILuwtEXf0Hc+otsF8fyMeHYcKeCe+Yks3Z7F/RN6OTTs+33je/HRzy84p0G8KfrtZf0RgZtHdm1S7W1VNGkor3K0oIQj+acZ3r0dk2KtVUArkj1f2rBYDK//dx9BAb5cMsB+VYuCy+IiuXtsDOvScunavrXH5pRwp/iubfn+sYncMTrG06HYpW0ayqskHjwBwPDu7egRHkzfTm34dtdRfjauRz17ute7P6SzZm8Of54eR1CA/resyxNT+mOxGKYN6WK3C25L4Il5MhylJQ3lVTYfzKO1v++Zxu/L4iLZlH6CE6fKPBbTrswC/v71bi4d0InbL3DfUOYtRSs/X56ZPpDh3dt7OhSvpElDeZXNB/OI7xp2Zn7lybGRWAysTPFMFVVxWQUPLdhK2yB//nH94CZZh61UdW5NGiIyT0SOicjOasueFpEjIpJke0ytZd/LRWSPiKSJyBPujFN5h+KyCnZlFpJQ7S/UgVGhdA4LZLmH2jVmL01hf+4pXrpxCO0bcU4EpRrK3ZWn84E5wPs1lr9kjPlnbTuJiC/wL2ASkAFsEpElxphkdwWqWr6kw/lUWgzDu7c7s0xEmBzbiYWJhzldVnneN1IVlpSTnFnIrsxCUrOLiO/aluuGRRPgd+7fZ9/szGLBxkPcN74XY3uHn9d5lWosbk0axpg1IhLTgF1HAmnGmP0AIvIxMB3QpKEarOqmvmHd2p21fHJcJO9tOMia1ByH7hCuLruwhMVbj7A9I59dmYUcPP6/7rshrfz4eNNhXluZyv0TejEjoeuZhtvM/NM8vmgH8dFh/Hqy4yOxKuVpnuqm8YCI3AEkAr82xuTVWB8FVB9gPwMY1VjBqZYp8WAefTu1OWcwuZE92hPW2p9vdx11OGnsyChg3voDLN2eSXmloVv7IOK6hDJjeDRxXcKI6xJKREgr1qTm8urKVP7wxS7mrE7jFxf14sYRXXl0YRIVlRZeuWnomfYVpZoDTySNN4DZgLE9vwD8rMY29loD7c6GIiIzgZkA3bp1c12UqkWxWAxbDuZxhZ35tv19fbikf0dWphyjotKCXy0/4pUWw/JdR5m3/gCb0vMIDvDltgu6c9eYGLp3sD909fi+EVzUJ5wN+47zyspU/rw0mee/3cPp8kpemBHfoKlclfKkRk8axpgzLY4i8haw1M5mGUD1QVeigcxajvcm8CZAQkJCw6fqUi1a6rGTFJZUnNWeUd3kuE58tvUIG9NPMKbXue0Lq3Zn88cvdpGRd5qu7VvzhytjmZEQTWhg/UNJiAhjeoczpnc4P+0/zhvf7yOmQzDXDmt6w7IrVZ9GTxoi0tkYk2V7ew2w085mm4A+ItIDOALcBNzSSCGqFqjqpr6EWpLGRX0jaOXnw/Jd2WcljUqL4ZXv9vLqqjT6R4Yw97bhTIrt1OB5C0b17MConh0atK9STYFbk4aILAAmAOEikgH8CZggIkOwVjelA7+wbdsFeNsYM9UYUyEiDwDfAr7APGPMLnfGqlq2zQfzCG8TQPda7rQNCvDjwj7hrEjO5k9XxSIi5J0q46GPt7I2NZcZw6OZffXAFnsHslKOcnfvqZvtLH6nlm0zganV3i8DlrkpNOVlNh/MY3j3dnXePDc5LpLvUo6xK7MQizHc/39byCkq5W/XDuKmEU1z8DilGpsOcqNavJyiUg4eL+a2UXUP0XFJ/474CDzz5S62ZRQQ0aYVn943mngH53pWyhto0lAt3mZbe8awWtozqnRo04qEmPZsPHCCC/uE88pNQ/UubaVqcDhpiEh7Y8wJdwajlDskpucR4OfDwKj6Z+h76ooBbM8o4OaR3Rrc2K1US+ZMSeMnEUkC3gW+NsZo91bVLGw+lEd8dNg5c0jbMzi6LYOj27o/KKWaKWduRe2L9X6I24E0EfmriOj4B6pJKymvZOeRAh1GWykXcThpGKsVth5R9wJ3AhtF5HsRGe22CJU6D9szCiivNLXe1KeUco4zbRodgNuwljSygQeBJcAQ4FPAs1OfKWVH9Zn6lFLnz5k2jQ3AB8DVxpiMassTRWSua8NSyjW2HMyjZ0Sw9oJSykWcadN4yhgzu3rCEJEZAMaYv7s8MqXOU3mlhc0H82odOkQp5Txnkoa92fN+56pAlHK1OavSyCsuZ8rAzp4ORakWo97qKRGZgnV4jygRebXaqlCgwl2BKXU+kg7nM2d1GtcOjWJi/46eDkepFsORNo1MrJMlTQM2V1teBDzqjqCUOh+nyyr51cIkOoW04unpcZ4OR6kWpd6kYYzZBmwTkQ+NMVqyUE3ec1+nsD/3FB/dO8qh+S6UUo5zpHrqE2PMDcBWETnnLnBjzGC3RKZUA6xNzeG9DQe5e2wMY3qfO5mSUur8OFI99bDt+Up3BqLU+SooLuc3n26nV0Qwj1/e39PhKNUiOVI9VTXLng+QZYwpARCR1kAnN8amlFP+uGQnuSdLefOOMTpZklJu4kyX208BS7X3lbZlSnnc0u2ZfJGUyYMX99EBB5VyI2eShp8xpqzqje213marPC67sISnPt9JfNe2zJrYy9PhKNWiOZM0ckRkWtUbEZkO5Lo+JKUcZ7EYHvt0GyXllbx4Qzx+vs78k1ZKOcuZsafuAz4UkTmAAIeBO9wSlVIOmv9DOmtTc/nL1QPpFdHG0+Eo1eI5nDSMMfuAC0SkDSDGmCL3haVU/XYfLeS5b3Zz6YCO3Dqqm6fDUcorOHKfxm3GmP8TkV/VWA6AMebFOvadh7Wr7jFjzEDbsueBq4AyYB9wtzEm386+6VjvOq8EKowxCY5dkvIGJeWVPPJxEqGBfjx33eAz/x6VUu7lSAVwkO05pJZHXeYDl9dYtgIYaLspcC91D3o40RgzRBOGqun5b/ew+2gRz18fT3ibVp4ORymv4Uj1VFV3lGRjjFNdbI0xa0Qkpsay5dXe/ghc78wxVfOz8cAJBkeHuezeibWpObyz7gB3jO6ugxEq1cgcKWlMFRF/3DMM+s+Ar2tZZ4DlIrJZRGbWdgARmSkiiSKSmJOT44YQ1flIySrkhn9v4Oklu1xyvLxTZTz26TZ6d2zDk1MHuOSYSinHOZI0vsHatXawiBRWexSJSGFDTywiv8c6tPqHtWwy1hgzDJgCzBKRi+xtZIx50xiTYIxJiIiIaGg4yk0+22Kds+vjTYfZcijvvI5ljOHJxTs4caqMV24aond9K+UB9SYNY8xvjDFhwFfGmNBqjxBjTGhDTioid2JtIL/VGHPOIIi282bano8Bi4GRDTmX8pyKSgufJ2VyYZ9wIkMDeWrxTioqLfXvaIfFYnjpu1S+3nmUxyb3I65LmIujVUo5wuE7oYwx011xQhG5HHgcmGaMKa5lm2ARCal6DUwGdrri/KrxrEvLJaeolFtHdeePV8WSnFXI//140OnjFJwuZ+YHiby6MpVrh0bx8wt7uiFapZQjHOlyu84YM05EirC2M0j157pKGyKyAJgAhItIBvAnrG0jrYAVtm6SPxpj7hORLsDbxpipWAdCXGxb7wd8ZIz5puGXqTxh0ZYjtA3yZ2L/CAJ8fbiobwQvLN/L1EGd6Rga6NAx9hwt4hcfJJKRd5pnpsVxx+ju2r1WKQ9yZJTbcbbn+rrX2tv3ZjuL36ll20ys08pijNkPxDt7PtV0FJaUs3zXUW4c0ZVWfta2hz9Pi2Pyy2t4dlkKr9w0tN5jLNmWyeP/2U6bQD8WzLyAETHt3R22UqoeDldPicgFVVVGtvdtRGSUe8JSzd3XO7IorbBw7bDoM8tiwoO5b3wvvkjK5Ie02octK6+0MHtpMg8t2MrAqFC+enCcJgylmghnRnd7AzhZ7X2xbZlS51i05Qg9I4KJjz67wfqXE3rRrX0Qf/hiJ2UVZzeKl1VYWLQ5gyteXcs76w5w15gYPvr5BQ5XZSml3M+ZpCHVezoZYyw4N+Ch8hKHTxSz8cAJrhsWfU77Q6C/L89Mj2NfzineXrcfgJOlFby9dj/jn1/Nrz/dho8Ic28bxtPT4vDXUWuValKc+dHfLyIP8b/SxS+B/a4PSTV3i7ceAeDqoVF210/s15HL4yJ5dWUqJ06WsTDxMEUlFVzQsz1/vXYQE/pGaGO3Uk2UM3/G3QeMAY4AGcAooNY7tZV3Msbw2ZYMRvfsQFTb1rVu98erYhGEd9Yf4MI+4Xw+aywfzxzNxH4dNWEo1YQ5MzT6MeAmN8aimoGC0+XszS6qtWF6y6F80o8XM2ti7zqP06Vtaz6fNZZAfx+6dwh2R6hKKTdwpvdUXxFZKSI7be8Hi8hT7gtNNTXGGB74aAsz5m7gj3YassE6bEigvw9TBnWu93j9IkM0YSjVzDhTPfUW1hvzygGMMdvRkodXWbItk7WpuYyMac/7Gw5yy1s/cqyw5Mz60opKvtyWyeVxkbRppX0klGqJnEkaQcaYjTWWVbgyGNV0FRSXM3tpMvHRYSyYeQGv3TyUXZmFXPHaOhLTTwCwMuUYhSUVZ92boZRqWZxJGrki0gvrECKIyPVAlluiUk3Oc9/sJq+4nL9eOwhfH+Gq+C58PmssQQG+3PTmj3ywIZ1FmzPoFNqKsb3DPR2uUspNnKlDmAW8CfQXkSPAAeBWt0SlmpTE9BMs2HiIn1/Y46zRZftFhrDkgXE8ujCJP3xhnS/jF+N74uujvZ+UaqmcGeV2vzHmUiAC6G+MGWeMcX7IUtWslFVYeHLxDqLatuaRS/uesz6stT9v35HAw5f0oX1wADckdPVAlEqpxuJwSUNEOmAdpXYcYERkHfBnY8xxdwWnnFdYUk5ooL/LjvfW2v3szT7JO3cmEFxL47aPj/DopL48cmkfvcdCqRbOmTaNj4Ec4Dqs83rnAAvdEZRqmKXbM4l/ZjlzVqVSy9xWTjl4/BSvrkxlysBILhnQqd7tNWEo1fI5kzTaG2NmG2MO2B5/Adq6KS7VAB9vPIyvCP9cvpcHFmyluKzhnduMMTz1+U78fX3401VxLoxSKdWcOZM0VovITSLiY3vcAHzlrsCUc44VlvDDvlzun9CLJ6b0Z9mOLK5/YwNH8k836HhV92T85rJ+RIbpKLNKKStnksYvgI+AUqAMa3XVr0SkSEQK3RGcctzS7VlYDEwf0oX7xvdi3p0jOHyimGmvrWPjgRNOHcsYw6srU4nrEsptF3R3U8RKqebImd5TIcYYH2OMvzHGz/Y6xPaodcpX1Ti+2JZJXJdQene0zpM1sX9HFs8aS1hrf259+0cWbDzk8LGSDuezL+cUt1/QXbvPKqXO4szYU2NFJNj2+jYReVFEurkvNOWoA7mn2HY4n6uHnD0Uee+ObVg8ayxjeoXzu8928NV2x+7FXLQlg1Z+PkwdXP/4UUop7+LszH3FIhIP/BY4CHzglqiUU5YkZSICV8af+yMf1tqfeXeNoGd4MG+trX/6E+v4UVlcFhfp0q67SqmWwZmkUWGbuW868Iox5hUgpJ59lJsZY/hi2xFG9WhP5zD781f4+gh3jokh6XA+Ww/l1Xm8VSnHKDhdznXDdfwopdS5nEkaRSLyO+A24CsR8QXq/FNUROaJyLGq4dRty9qLyAoRSbU9t6tl38tFZI+IpInIE07E6VV2ZRayP+cU04fYnyWvynXDowlp5cf8H9Lr3G7RFuv4UeN0/CillB3OJI0bsfacuscYcxSIAp6vZ5/5wOU1lj0BrDTG9AFW2t6fxZaQ/gVMAWKBm0Uk1olYvcbnW4/g7ytMGRhZ53ZtWvkxI6ErX23PIrvacObV5Z4s5b97crh6aJQ2gCul7HKm99RRY8yLxpi1tveHjDHvV60XkQ129lkD1OzvOR14z/b6PeBqO6cbCaTZxruq6t473dFYvUWlxfDl9kzG9+1I26CAere/Y3R3Ko3hw5/s96T6IimTCovhOh3aXClVC2dKGvVx9A6wTsaYLADbc0c720QBh6u9z7AtO4eIzBSRRBFJzMnJcSbeZu+nA8fJLizl6qFdHNo+JjyYi/t15KOfDlJaUXnO+kWbMxgUFUbfTtpUpZSyz5VJ4/wHO/ofe3Ujdo9vjHnTGJNgjEmIiIhwYQhN35KkTIIDfLmkf/3jQlW5a2wMuSfLzul+m5JVSHJWIdcNq7ttRCnl3VyZNByVLSKdAWzPx+xskwFUH2M7GshshNiajdKKSpbtsHaNbR3g6/B+43qH07tjG95dn37WoIaLNmfg7ytMq6dBXSnl3VyZNBxtOV0C3Gl7fSfwhZ1tNgF9RKSHiARgnYt8yfmH2HL8d08OhSUVTBviWNVUFRHhrjEx7DhSwBZb99uKSgufJ2UysV9H2gfX3zailPJeTiUNEekuIpfaXrcWkeqV37fb2X4BsAHoJyIZInIP8BwwSURSgUm294hIFxFZBmCMqQAeAL4FUoBPjDG7nL66FmxJUiYdggMa1DX22mFRhAT68e76dADWpuaSe7JU781QStXLmUmYfg7MBNoDvbBWGc0FLgEwxuysuY8x5uZaDneJnW0zganV3i8DljkanzcpKinnu5RsbhrRFT9f5wuLQQF+3DSiK/PWp5NVcJr/bMmgXZA/E/vZ65OglFL/48wvzixgLFAIYIxJxX7PJ+Vm3+7KprTCcl7tD3eMjsFiDK+v3seK5GymxXchwM8TTVxKqebE4ZIGUGqMKauanU1E/HBtjynlgNKKSl5fnUbPiGCGdWvb4ON0bR/EpQM68cGP1mnetWpKKeUIZ/60/F5EngRai8gk4FPgS/eEpWrz9toD7M89xR+vjD3v6VXvHhsDQJ+ObRgUFeaC6JRSLZ0zJY0ngHuAHVgnZFoGvO2OoJR9R/JP89qqVC6L68QEF7Q/jO7ZgWuHRXFx/446v7dSyiEOJw1jjAV4y/ZQHjD7y2QA/nCla4bhEhFevGGIS46llPIOzvSe2sG5bRgFQCLwF2PMcVcGps723z3H+GbXUX5zWT+i2wV5OhyllJdypnrqa6AS6zzhYL3hDqy9qeYDV7kuLFVdaUUlTy/ZRc/wYO69sIenw1FKeTFnksZYY8zYau93iMh6Y8xYEbnN1YGp/3lrzX7Sjxfz/s9G0srP8SFDlFLK1ZzpPdVGREZVvRGRkUAb29sKl0alzjh8opg5q9OYOiiSi/p614CMSqmmx5mSxr3APBFpg3WcqULgXhEJBv7mjuAUzF6ajCA8dYXOQaWU8jxnek9tAgaJSBggxpj8aqs/cXVgClbvPsby5Gwev7w/Xdran/9bKaUakzMlDUTkCiAOCKzq12+M+bMb4vJ6FZUWZn+VTM+IYO4Zp43fSqmmweE2DRGZi3We8AexVk/NALq7KS6vt2RbJvtzTvHby/rpmFBKqSbDmV+jMcaYO4A8Y8wzwGjOnihJuUhFpYVXV6YS2zmUybGRng5HKaXOcCZplNiei0WkC1AOaL2JGyzeeoT048U8cmkffHx0eA+lVNPhTJvGlyLSFnge2IL17nAdUsTFyistvLYqjYFRoUyKdXzub6WUagwOJQ0R8QFW2npMLRKRpUCgMabAncF5o8+2ZHDoRDHv3JmggwgqpZoch6qnbIMVvlDtfakmDNcrq7Dw6so04qPDuLi/zm+llGp6nGnTWC4i14n++es2/9mcwZH80zw6qa+WMpRSTZIzbRq/AoKBShE5jbXbrTHGhLolMi9TWlHJnFWpDO3WlvE6XIhSqoly5o7wEHcG4u0+Scwgs6CEv18/WEsZSqkmy5mb+0REbhORP9jed7UNWug0EeknIknVHoUi8kiNbSaISEG1bf7YkHM1ByXllfxrVRoJ3dsxrne4p8NRSqlaOVM99TpgAS4GZgMngX8BI5w9qTFmDzAEQER8gSPAYjubrjXGXOns8ZubhZsOc7SwhBdviNdShlKqSXMmaYwyxgwTka0Axpg8EQlwQQyXAPuMMQddcKxm58SpMuasTmNkj/aM7tXB0+EopVSdnOk9VW4rFRgAEYnAWvI4XzcBC2pZN1pEtonI1yISZ28DEZkpIokikpiTk+OCcBpPpcXwyMIkCorL+eOVsVrKUEo1ec4kjVexViF1FJFngXXAX8/n5LaSyjTgUzurtwDdjTHxwGvA5/aOYYx50xiTYIxJiIhoXr2OXluVypq9OfxpWiwDo8I8HY5SStXLmd5TH4rIZqzVSQJcbYxJOc/zTwG2GGOy7ZyvsNrrZSLyuoiEG2Nyz/OcTcL3e3N4ZWUq1w6N4paR3TwdjlJKOcThpCEirwALjTH/cuH5b6aWqikRiQSyjTHG1kvLBzjuwnN7zJH80zzy8Vb6dgzh2WsGabWUUqrZcKYhfAvwlIj0xVpNtdAYk9jQE4tIEDAJ+EW1ZfcBGGPmAtcD94tIBXAauMkYYxp6vqairMLCrA+3UF5peOO2YbQO8PV0SEop5TBnqqfeA94TkfbAdcDfRaSbMaZPQ05sjCkGOtRYNrfa6znAnIYc25MOHS9mefJRBke3ZUjXtudMoPTsV8kkHc7n9VuH0TOijYeiVEqphnFquleb3kB/IAZIdmk0zdz3e3N48KMtFJZUABAU4MuoHu0Z2zuccX3C2XO0iPc2HOSecT2YOqizh6NVSinnOdOm8XfgWmAfsBCYbRsq3esZY3hzzX7+/s1u+nYKYcEN8WTknWZ9Wi7r0nJZ/dX/+gskdG/HE1P6ezBapZRqOGdKGgeAMUBPoBUwWEQwxqxxS2TNxOmySn67aDtfbsvkikGdeX7GYIIC/IjrEsZlcdapWo/kWxNIcmYhv5zQC39fnfNbKdU8OZM0KoFVQDSQBFwAbMA6rIhXOnyimF98sJmUo4U8fnl/7hvf025PqKi2rbkhQadTV0o1f84kjYewjjP1ozFmooj0B55xT1hNX9LhfO5+dyMVFsO8u0YwsZ9OmqSUavmcSRolxpgSEUFEWhljdotIP7dF1sTNWZWGr48Pn/1yND3Cgz0djlJKNQpnkkaGiLTFOpzHChHJAzLdEVRzkJJVyNjeHTRhKKW8ijP3aVxje/m0iKwGwoBv3BJVE5dfXMaR/NPc3rm7p0NRSqlG1ZD7NDDGfO/qQJqTlKwiAGI760y3Sinvon0/GyA5yzqW4gBNGkopL6NJowGSMwvpGNKKiJBWng5FKaUalSaNBkjOKtRShlLKK2nScFJZhYW0Y0XEdtGkoZTyPpo0nJR27CTllUYbwZVSXkmThpOqGsG1pKGU8kaaNJyUnFlIoL8PMR30pj6llPfRpOGk5KwC+keG4uujU7QqpbyPJg0nGGNIydJGcKWU99Kk4YTMghIKTpdrd1ullNfSpOGE5ExbI7gmDaWUl/JY0hCRdBHZISJJIpJoZ72IyKsikiYi20VkmCfirC45sxAR6B8Z4ulQlFLKIxo0YKELTTTG5NaybgrQx/YYBbxhe/aYlKxCenQIJriVpz82pZTyjKZcPTUdeN9Y/Qi0FZHOngxIhw9RSnk7TyYNAywXkc0iMtPO+ijgcLX3GbZlZxGRmSKSKCKJOTk5bgoVCkvKOXSiWHtOKaW8mieTxlhjzDCs1VCzROSiGuvt3QhhzllgzJvGmARjTEJERIQ74gRgt86hoZRSnksaxphM2/MxYDEwssYmGUDXau+j8eD0sik6fIhSSnkmaYhIsIiEVL0GJgM7a2y2BLjD1ovqAqDAGJPVyKGekZxZSPvgADrqHBpKKS/mqW5AnYDFIlIVw0fGmG9E5D4AY8xcYBkwFUgDioG7PRQrYG0Ej+0cii1mpZTySh5JGsaY/UC8neVzq702wKzGjKs2FZUW9mQXcdeYGE+HopRSHtWUu9w2GftzT1FWYdFGcKWU19Ok4YCq4UP0Hg2llLfTpOGA5KxCAvx86Bmhc2gopbybJg0HJGcW0q9TCP6++nEppbyb/grWwzqHRqG2ZyilFJo06nWsqJTjp8oY0FlHtlVKKU0a9Tgzh0aXMA9HopRSnqdJox7JtuFD+mtJQymlNGnUJzmzkG7tgwgN9Pd0KEop5XGaNOpgjCHpcL42giullI0mjTpsyyjgSP5pLhnQ0dOhKKVUk6BJow5Lt2Xi7ytMjov0dChKKdUkaNKohcViWLYji4v6RBDWWtszlFIKNGnUauvhfDILSrgy3qPTkiulVJOiSaMWS7dnEuDnw6UDOnk6FKWUajI0adhRVTU1oW8EIdrVVimlztCkYUfiwTyyC0u5YrBWTSmlVHWaNOz4ansmrbRqSimlzqFJo4ZKi2HZzqNc3L8jwa08NYW6Uko1TZo0ath44AQ5RVo1pZRS9mjSqGHp9kxa+/tycX+9C1wppWrySNIQka4islpEUkRkl4g8bGebCSJSICJJtscf3R1XRaWFb3Ye5eIBHQkK0KoppZSqyVO/jBXAr40xW0QkBNgsIiuMMck1tltrjLmysYL6cf8Jjp8q4yqtmlJKKbs8UtIwxmQZY7bYXhcBKUCUJ2Kp7qsdmQQH+DKhn1ZNKaWUPR5v0xCRGGAo8JOd1aNFZJuIfC0icbXsP1NEEkUkMScnp8FxlFda+HrnUS6N7USgv2+Dj6OUUi2ZR5OGiLQBFgGPGGMKa6zeAnQ3xsQDrwGf2zuGMeZNY0yCMSYhIiKiwbH8sO84+cXlXDFIq6aUUqo2HksaIuKPNWF8aIz5rOZ6Y0yhMeak7fUywF9Ewt0Vz9JtmYS08uOivg1PPEop1dJ5qveUAO8AKcaYF2vZJtK2HSIyEmusx90RT1mFhW93HWWSVk0ppVSdPNV7aixwO7BDRJJsy54EugEYY+YC1wP3i0gFcBq4yRhj3BFMUUk5F/fvyDXDPN4Wr5RSTZq46XfYIxISEkxiYqKnw1BKqWZFRDYbYxIc2dbjvaeUUko1H5o0lFJKOUyThlJKKYdp0lBKKeUwTRpKKaUcpklDKaWUwzRpKKWUcpgmDaWUUg5rUTf3iUgOcPA8DhEO5LoonOZEr9u76HV7F0euu7sxxqGB91pU0jhfIpLo6F2RLYlet3fR6/Yurr5urZ5SSinlME0aSimlHKZJ42xvejoAD9Hr9i563d7FpdetbRpKKaUcpiUNpZRSDtOkoZRSymGaNAARuVxE9ohImog84el4XE1E0kVkh4gkiUiibVl7EVkhIqm253bVtv+d7bPYIyKXeS5y54jIPBE5JiI7qy1z+jpFZLjt80oTkVerph1uqmq57qdF5IjtO08SkanV1rWU6+4qIqtFJEVEdonIw7blLfo7r+O6G+c7N8Z49QPwBfYBPYEAYBsQ6+m4XHyN6UB4jWX/AJ6wvX4C+LvtdaztM2gF9LB9Nr6evgYHr/MiYBiw83yuE9gIjAYE+BqY4ulra8B1Pw08ZmfblnTdnYFhttchwF7b9bXo77yO626U71xLGjASSDPG7DfGlAEfA9M9HFNjmA68Z3v9HnB1teUfG2NKjTEHgDSsn1GTZ4xZA5yosdip6xSRzkCoMWaDsf6ver/aPk1SLdddm5Z03VnGmC2210VAChBFC//O67ju2rj0ujVpWD/sw9XeZ1D3F9AcGWC5iGwWkZm2ZZ2MMVlg/UcIdLQtb2mfh7PXGWV7XXN5c/SAiGy3VV9VVdG0yOsWkRhgKPATXvSd17huaITvXJOGtVhWU0vrhzzWGDMMmALMEpGL6tjWGz4PqP06W8r1vwH0AoYAWcALtuUt7rpFpA2wCHjEGFNY16Z2ljXba7dz3Y3ynWvSsGbXrtXeRwOZHorFLYwxmbbnY8BirNVN2bbiKbbnY7bNW9rn4ex1Zthe11zerBhjso0xlcYYC/AW/6tibFHXLSL+WH84PzTGfGZb3OK/c3vX3VjfuSYN2AT0EZEeIhIA3AQs8XBMLiMiwSISUvUamAzsxHqNd9o2uxP4wvZ6CXCTiLQSkR5AH6yNZc2VU9dpq84oEpELbD1J7qi2T7NR9aNpcw3W7xxa0HXb4nwHSDHGvFhtVYv+zmu77kb7zj3dE6ApPICpWHsg7AN+7+l4XHxtPbH2nNgG7Kq6PqADsBJItT23r7bP722fxR6acC8SO9e6AGuxvBzrX1H3NOQ6gQTbf7h9wBxsIyc01Uct1/0BsAPYbvvR6NwCr3sc1uqU7UCS7TG1pX/ndVx3o3znOoyIUkoph2n1lFJKKYdp0lBKKeUwTRpKKaUcpklDKaWUwzRpKKWUcpgmDaXOk4i0FZFf1rH+BweOcdK1USnlHpo0lDp/bYFzkoaI+AIYY8Y0dkBKuYufpwNQqgV4DuglIklYb7A7ifVmuyFArIicNMa0sY0V9AXQDvAHnjLGNNk7j5WyR2/uU+o82UYaXWqMGSgiE4CvgIHGOgw11ZKGHxBkjCkUkXDgR6CPMcZUbeOhS1DKYVrSUMr1NlYljBoE+KttlGEL1mGoOwFHGzM4pc6HJg2lXO9ULctvBSKA4caYchFJBwIbLSqlXEAbwpU6f0VYp92sTxhwzJYwJgLd3RuWUq6nJQ2lzpMx5riIrBeRncBpILuWTT8EvhSRRKwjk+5upBCVchltCFdKKeUwrZ5SSinlME0aSimlHKZJQymllMM0aSillHKYJg2llFIO06ShlFLKYZo0lFJKOez/AfWK1WuPhvdIAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df['average_specificity'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"specificity\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEJCAYAAAB7UTvrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABSd0lEQVR4nO29eZhcZZn3/7lr667qtTrpLL1kg0D2hCSETSFxFAERUNRBURAXjICvM/O64Lih/pxx0BnnVcHIMAiv48sigqKDIiCIQhjSwQTInjRZOknva3V3dW3P74+qU13dXcup6qrqrurnc111dS2nTj+nq/rc596+tyil0Gg0Go0GwDLVC9BoNBrN9EEbBY1Go9FE0UZBo9FoNFG0UdBoNBpNFG0UNBqNRhNFGwWNRqPRRMmpURCRy0TkgIgcFpHb47zuFpHHReQ1EXlFRFblcj0ajUajSU7OjIKIWIG7gMuBFcAHRWTFuM3+EdillFoD3AD8n1ytR6PRaDSpseVw35uAw0qpZgAReQi4Gtgbs80K4J8BlFL7RWSRiMxVSrUl2uns2bPVokWLcrdqjUajKUJ27tzZqZSqTbVdLo1CPXAi5nELcN64bXYD7wX+IiKbgIVAA5DQKCxatIimpqYsL1Wj0WiKGxE5Zma7XOYUJM5z4zU1vgO4RWQX8Bngr0Bgwo5EbhaRJhFp6ujoyPpCNRqNRhMml55CC9AY87gBOBW7gVKqH7gJQEQEeDNyY9x29wD3AGzcuFGLNWk0Gk2OyKWnsANYKiKLRcQBXAc8EbuBiFRHXgP4BPBCxFBoNBqNZgrImaeglAqIyG3AU4AVuE8ptUdEtkZe3wYsB/6viAQJJ6A/nqv1aDQzHb/fT0tLC16vd6qXoskhpaWlNDQ0YLfbM3p/LsNHKKWeBJ4c99y2mPvbgaW5XINGownT0tJCRUUFixYtIhyt1RQbSim6urpoaWlh8eLFGe1DdzRrNDMEr9fLrFmztEEoYkSEWbNmTcob1EZBo5lBaINQ/Ez2M54xRuFA6wD/+ocDdA/6pnopGs2M5Qc/+AHLly/n+uuvn/S+7r//fk6dGi1o/MQnPsHevXuTvENjhpzmFKYTzR0efvjHw1y+aj41ZY7Ub9BoNFnn7rvv5ne/+92EeHcgEMBmS+90dP/997Nq1Srq6uoAuPfee7O2znwRDAaxWq1TvYwxzBhPoawk/IUb9E3ojdNoNHlg69atNDc3c9VVV/H973+fO+64g5tvvplLL72UG264gaNHj/LWt76V9evXs379el566aXoe++8805Wr17N2rVruf3223n00Udpamri+uuvZ926dQwPD7N58+ao2sGDDz7I6tWrWbVqFV/84hej+ykvL+fLX/4ya9eu5fzzz6etbaJ4wiuvvMKFF17IOeecw4UXXsiBAweA8An8c5/7HKtXr2bNmjX88Ic/BGDHjh1ceOGFrF27lk2bNjEwMMD999/PbbfdFt3nlVdeyfPPPx9dw9e+9jXOO+88tm/fzje/+U3OPfdcVq1axc0334xS4Vasw4cP8/a3v521a9eyfv16jhw5wkc+8hF+/etfR/d7/fXX88QTYyr9J49SqqBuGzZsUJmw81i3WvjF36o/7m/L6P0aTaGzd+/eqV6CWrhwoero6FBKKfX1r39drV+/Xg0NDSmllBocHFTDw8NKKaUOHjyojP/1J598Ul1wwQVqcHBQKaVUV1eXUkqpSy65RO3YsSO6b+PxyZMnVWNjo2pvb1d+v19t2bJFPf7440oppQD1xBNPKKWU+vznP6++9a1vTVhjX1+f8vv9Simlnn76afXe975XKaXU3Xffrd773vdGX+vq6lIjIyNq8eLF6pVXXhnz3p/+9Kfq1ltvje7zXe96l3ruueeia3j44YejrxnHo5RSH/7wh6Pr27Rpk3rssceUUkoNDw+rwcFB9fzzz6urr75aKaVUb2+vWrRoUXQ9scT7rIEmZeIcO2PCR+URT8Hj1Z6CRvON3+xh76ns9omuqKvk6+9emdZ7rrrqKpxOJxDuo7jtttvYtWsXVquVgwcPAvDMM89w00034XK5AKipqUm6zx07drB582Zqa8Pab9dffz0vvPAC11xzDQ6HgyuvvBKADRs28PTTT094f19fHzfeeCOHDh1CRPD7/dF1bN26NRrmqqmp4fXXX2f+/Pmce+65AFRWVqY8ZqvVyrXXXht9/Nxzz3HnnXcyNDREd3c3K1euZPPmzZw8eZL3vOc9QLj3AOCSSy7h1ltvpb29nccee4xrr7027bBbKmaMUYiGj0a0UdBopgtlZWXR+9///veZO3cuu3fvJhQKRU+ESqm0KmqUSqyEY7fbo/uyWq0EAhPPB1/96lfZsmULjz/+OEePHmXz5s0J15FobTab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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['fraction_accuracy'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"fraction accuracy\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['numerosity', 'population']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"numerosity\", \"number of rules\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEGCAYAAABo25JHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA5kElEQVR4nO3deXiU5bn48e892TcChBBCAmGVLYRdAggq4lYrS9WjVdzqdk7VtkfbX7VaV6zW2tb21FrtwaNWrKVuiAuKKCqIQJCdsMmaEJJA9j2TPL8/ZiYkYWYyCZnMTOb+XFeuJO+8M/O8GZh7nu2+xRiDUkqp4GXxdQOUUkr5lgYCpZQKchoIlFIqyGkgUEqpIKeBQCmlglyorxvgiT59+phBgwb5uhlKKRVQNm3adMIYk9jWeQERCAYNGkRWVpavm6GUUgFFRA57cp4ODSmlVJDTQKCUUkFOA4FSSgW5gJgjcKa+vp6cnBxqamp83ZSgFxkZSWpqKmFhYb5uilKqAwI2EOTk5BAXF8egQYMQEV83J2gZYzh58iQ5OTkMHjzY181RSnVAwA4N1dTUkJCQoEHAx0SEhIQE7ZkpFcACNhAAGgT8hL4OSgW2gA4ESinVHjtyS9l4qMjXzfA7Xg8EIhIiIptF5H37771FZKWI7LN/7+XtNnhLbGxs088ffvghw4cP58iRI15/Lk888sgjPPPMMx16rj179jBp0iTGjRvHunXrALBarcyZM4eqqqoOPaZS/uC3K3Zzz9Itvm6G3+mKHsFPgexmv98HrDLGDAdW2X8PaKtWreLuu+9mxYoVDBw40NfNOWMvvPACTz31FG+++WZTMHn++ee5/vrriY6O9nHrlOq43OJqjhZVU1xZ5+um+BWvBgIRSQUuA/632eF5wCv2n18B5nuzDd721Vdfcdttt/HBBx8wdOhQAG666SZ+8pOfMH36dIYMGcKbb74J2FbY/OIXvyA9PZ2xY8fyr3/9C4Af//jHvPfeewAsWLCAH/3oRwAsXryYBx988LTn/N3vfseUKVPIyMjg4Ycfbjr+xBNPMGLECObMmcOePXuajm/cuJGMjAymTZvW9PwADQ0N/OIXv2h6rBdeeAGAsLAwqqurqaqqIiwsjJKSEpYvX84NN9zQ2X8+pbqMMYa8Utuihm25pT5ujX/x9vLRZ4H/B8Q1O5ZkjMkDMMbkiUhfZ3cUkduB24E2P2U/unwnu46VdUZ7m4zu34OHLx/j9pza2lrmzZvH6tWrGTlyZIvb8vLyWLNmDbt372bu3LlceeWVvP3222zZsoWtW7dy4sQJpkyZwqxZs5g1axZfffUVc+fOJTc3l7y8PADWrFnDNddc0+JxP/nkE/bt28eGDRswxjB37ly+/PJLYmJieOONN9i8eTNWq5WJEycyadIkAG6++WZefPFFpk+fzn33neqALV68mPj4eDZu3EhtbS0zZszgoosu4s477+SGG26gtraWF154gccee4wHHnhAJ4VVQCutrqe6vgGA7TklnHtWm7nYgobXegQi8n2gwBizqSP3N8a8aIyZbIyZnJjony9YWFgY06dPZ/HixafdNn/+fCwWC6NHjyY/Px+wvbH/8Ic/JCQkhKSkJM4991w2btzIzJkz+eqrr9i1axejR48mKSmJvLw81q1bx/Tp01s87ieffMInn3zChAkTmDhxIrt372bfvn189dVXLFiwgOjoaHr06MHcuXMBKCkpoby8vOlxrr322haP9eqrrzJ+/HimTp3KyZMn2bdvHwMHDmT16tWsW7eO6Ohojh07xsiRI7n++uu5+uqr2bt3r7f+pEp5jaM3ALAtR3sEzXmzRzADmCsi3wMigR4i8hqQLyLJ9t5AMlBwpk/U1id3b7FYLCxdupQ5c+bwm9/8hl/96ldNt0VERDT9bIxp8b21lJQUiouLWbFiBbNmzaKoqIilS5cSGxtLXFxci3ONMdx///3ccccdLY4/++yzTj+xu3pOx23/8z//w8UXX+zynAceeIBFixbx5z//meuuu45Bgwbx6KOPsmTJEpf3Ucof5ZVWAzCwdzTbdWioBa/1CIwx9xtjUo0xg4BrgM+MMQuB94Ab7afdCCzzVhu6QnR0NO+//z5Llixx2jNobtasWfzrX/+ioaGBwsJCvvzyS84++2wApk2bxrPPPsusWbOYOXMmzzzzDDNnzjztMS6++GJeeuklKioqAMjNzaWgoIBZs2bxzjvvUF1dTXl5OcuXLwegV69exMXF8c033wDwxhtvtHis559/nvr6egD27t1LZWVl0+1ffPEFKSkpDB8+nKqqKiwWCyEhIbpySAWkYyW2HsHFY5LIK62hoFw3QTr4IsXEU8BSEbkFOAJc5YM2dKrevXs3fZrv06ePy/MWLFjAunXrGDdu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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['knowledge'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"Knowledge\")\n", + "ax.legend([\"Knowledge%\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEGCAYAAACQO2mwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA500lEQVR4nO3deXyU1fX48c+ZJTNJSMjKmkAIO6IoRpFF1Coupa1W69ZabV2wm9UuVm3tZrW1v35rta2txRVbq+JStWpVRFTEjUWUTUgCQhbIwpJ9n/v7Y2ZCCDPJk8lMZsic9+vFa5Jnluc+SZgz59577hVjDEoppVQgtmg3QCmlVOzSIKGUUiooDRJKKaWC0iChlFIqKA0SSimlgnJEuwH9kZWVZfLy8qLdDKWUOqKsXbu22hiTbeWxR3SQyMvLY82aNdFuhlJKHVFEZKfVx2p3k1JKqaA0SCillApKg4RSSqmgjugxCaWUsqKtrY3S0lKam5uj3ZQB5Xa7ycnJwel0hvwaGiSUUoNeaWkpKSkp5OXlISLRbs6AMMawd+9eSktLGTduXMivE7HuJhF5SEQqRWRjl2MZIrJMRAp9t+ld7rtFRIpEZKuInBWpdiml4k9zczOZmZlxEyAARITMzMx+Z0+RHJN4BDi727GbgeXGmInAct/3iMg04BLgKN9z/iYi9gi2TSkVZ+IpQPiF45oj1t1kjHlbRPK6HT4XONX39RLgTeAm3/EnjDEtwA4RKQJOBN6LRNv21DTz7w8CTxO22YQLC3IZnZYYiVMrpdQRZaDHJIYbY3YDGGN2i8gw3/HRwPtdHlfqO3YYEVkELAIYM2ZMSI2oqG3mLyuKAt5nDHgM/HDBpJBeWymlrLr77rtZtGgRSUlJ0W5KULEycB0oJwq4G5IxZjGwGKCgoCCkHZNm5Kax43cLA9439eev0NzWEcrLKqVUn9x9991cdtllMR0kBrpOokJERgL4bit9x0uB3C6PywHKB7htALicNg0SSqmwa2hoYOHChcyYMYPp06fz61//mvLyck477TROO+00AF577TVmz57NzJkzufDCC6mvrwe8SxDddNNNnHjiiZx44okUFXl7Qp566immT5/OjBkzmD9/fkTaPdCZxAvAFcCdvtvnuxz/t4jcBYwCJgIfDnDbAHA5bLS0eaJxaqXUAPj1fzexubw2rK85bVQqv/ziUT0+5pVXXmHUqFG89NJLANTU1PDwww+zYsUKsrKyqK6u5vbbb+f1118nOTmZ3//+99x111384he/ACA1NZUPP/yQRx99lBtuuIEXX3yR2267jVdffZXRo0dz4MCBsF6TXySnwD6Od+B5soiUishVeIPDAhEpBBb4vscYswlYCmwGXgG+a4yJysd5t9NOc7tmEkqp8Dr66KN5/fXXuemmm1i5ciVDhw495P7333+fzZs3M3fuXI499liWLFnCzp0HJ9hceumlnbfvveed0zN37ly+8Y1vcP/999PREZn3rUjObro0yF2nB3n8HcAdkWqPVZpJKDW49faJP1ImTZrE2rVrefnll7nllls488wzD7nfGMOCBQt4/PHHAz6/63RW/9f33XcfH3zwAS+99BLHHnss69evJzMzM6zt1rWbunE57LRoJqGUCrPy8nKSkpK47LLL+PGPf8y6detISUmhrq4OgJNOOolVq1Z1jjc0Njaybdu2zuc/+eSTnbezZ88GoLi4mFmzZnHbbbeRlZVFSUlJ2NsdK7ObYobbaaNZMwmlVJht2LCBG2+8EZvNhtPp5O9//zvvvfce55xzDiNHjmTFihU88sgjXHrppbS0tABw++23M2mSdzp+S0sLs2bNwuPxdGYbN954I4WFhRhjOP3005kxY0bY2y3GhDSLNCYUFBSYcG86dNkDH9DY2s6z35kb1tdVSkXPli1bmDp1arSbETL/BmtZWVl9fm6gaxeRtcaYAivP1+6mbtxOGy3tmkkopRRod9NhXA671kkopWLKZ599FrVzaybRjcuhmYRSg9GR3LUeqnBcswaJblxOuw5cKzXIuN1u9u7dG1eBwr+fhNvt7tfraHdTN95MQrublBpMcnJyKC0tpaqqKtpNGVD+nen6Q4NEN26nXbublBpknE5nv3Zni2fa3dSNy2Gjtd2DxxM/aalSSgWjQaIbl9P7I2nt0GxCKaU0SHTjdnh3TdVpsEoppUHiMP5MQscllFJKg8RhXL5MQleCVUopDRKHcfsyCd1TQimlNEgcRjMJpZQ6SINEN+7OMQnNJJRSSoNEN67O2U2aSSillAaJblwOzSSUUspPg0Q3bqdmEkop5adBohvNJJRS6iANEt34MwktplNKKQ0Sh/FnErosh1JKaZA4jC7LoZRSB2mQ6MalC/wppVQnDRLd2G2C0y6aSSil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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['steps_in_trial'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps in trial\")\n", + "ax.legend([\"steps\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "243.33333333333334\n" + ] + } + ], + "source": [ + "print(sum(df['steps_in_trial'])/3)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XNCS_simple_maze_.ipynb b/XCS_Experiments/XNCS_simple_maze_.ipynb new file mode 100644 index 0000000..0934003 --- /dev/null +++ b/XCS_Experiments/XNCS_simple_maze_.ipynb @@ -0,0 +1,401 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# logging \n", + "import logging\n", + "logging.basicConfig(level=logging.INFO)\n", + "logger = logging.getLogger(__name__)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "This is how maze looks like\n", + "\n", + "['0', '1', '1', '1']\n" + ] + }, + { + "data": { + "text/plain": [ + "'State: 3'" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# environment setup\n", + "import gym\n", + "# noinspection PyUnresolvedReferences\n", + "import gym_yacs_simple_maze\n", + "\n", + "maze = gym.make('SimpleMaze-v0')\n", + "print(\"This is how maze looks like\")\n", + "situation = maze.reset()\n", + "print(type(situation))\n", + "print(situation)\n", + "maze.render()" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "from lcs.agents.xncs import XNCS, Configuration\n", + "from utils.nxcs_utils import *\n" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "cfg = Configuration(number_of_actions=4,\n", + " user_metrics_collector_fcn=xncs_metrics,\n", + " covering_wildcard_chance = 1,\n", + " mutation_chance = 0,\n", + " epsilon = 1,\n", + " lmc=10,\n", + " lem=20\n", + " )\n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 153, 'reward': 1000.0, 'perf_time': 0.04619869999999082, 'numerosity': 128, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 0.88}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 46, 'reward': 1000.0001438416078, 'perf_time': 0.0181773999999848, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 0.98}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 175, 'reward': 1000.0, 'perf_time': 0.06847080000000005, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 0.97}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 183, 'reward': 1000.0, 'perf_time': 0.071507199999985, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 0.98}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 1000.0000365525294, 'perf_time': 0.021861300000011852, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 0.95}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 36, 'reward': 1000.0044187614235, 'perf_time': 0.01650449999999637, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 0.95}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 153, 'reward': 1000.0, 'perf_time': 0.06557420000001457, 'numerosity': 200, 'population': 30, 'average_specificity': 1.0, 'fraction_accuracy': 0.95}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 109, 'reward': 1000.0000000000001, 'perf_time': 0.04441679999999337, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 38, 'reward': 1000.0022274976336, 'perf_time': 0.018530300000008992, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 105, 'reward': 1000.0000000000002, 'perf_time': 0.04501369999999838, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 74, 'reward': 1000.0000000098428, 'perf_time': 0.025106300000004467, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 0.99}\n", + "INFO:lcs.agents.Agent:{'trial': 50, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0017582000000118114, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0020932999999843105, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 150, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0019136999999886939, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0020466999999939617, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 250, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0020284000000003743, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.002980600000000777, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 350, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0026459000000045307, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.00211020000000417, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 450, 'steps_in_trial': 7, 'reward': 1100.0509562769146, 'perf_time': 0.0017841999999745894, 'numerosity': 200, 'population': 32, 'average_specificity': 1.0, 'fraction_accuracy': 1.0}\n" + ] + } + ], + "source": [ + "explore_trials = 1000\n", + "exploit_trials = 500\n", + "\n", + "agent = XNCS(cfg)\n", + "_, explore_metrics =\\\n", + " agent.explore(maze, explore_trials, False)\n", + "population, exploit_metrics =\\\n", + " agent.exploit(maze, exploit_trials)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "df = pd.DataFrame(explore_metrics)\n", + "df['trial'] = df.index * cfg.metrics_trial_frequency\n", + "df.set_index('trial', inplace=True)\n", + "df_exploit = pd.DataFrame(exploit_metrics)\n", + "df_exploit['trial'] = df_exploit.index * cfg.metrics_trial_frequency + explore_trials\n", + "df_exploit.set_index('trial', inplace=True)\n", + "df = df.append(df_exploit)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "ax = df['average_specificity'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"average_specificity\")\n", + "ax.legend([\"specificity\"])\n" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['fraction_accuracy'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"fraction accuracy\")\n", + "ax.legend([\"fraction accuracy\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df[['population', 'numerosity']].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"population\")\n", + "ax.legend([\"pop\", \"num\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEJCAYAAAB7UTvrAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABcJUlEQVR4nO2deZwcdZn/P09XH3MmM5NJQi5IAgEJRzhiEFEUEUFR8Oe1sOrisYu7sq6uqwv8XHVxZRd1l1X357F4ICqKqLAguJxyKHIlHELCkYQkZHKQczJ3H1XP74+q77e+VV3d0z3TZ/p5v17z6unq7qqnqru+z/c5v8TMEARBEAQAiNVbAEEQBKFxEKUgCIIgaEQpCIIgCBpRCoIgCIJGlIIgCIKgEaUgCIIgaKqmFIjoKCJ6yvgbIqJPEVEfEd1NROu9x17jM5cT0QYieoGIzq6WbIIgCEI0VIs6BSKyAGwDcAqASwDsY+ariOgyAL3MfCkRLQfwcwCrAMwHcA+AI5nZrrqAgiAIAgAgXqPjnAlgIzNvIaLzAbzR234dgPsBXArgfAA3MHMawCYi2gBXQTxcaKf9/f28ePHiKootCIJw8LFmzZo9zDw76rVaKYUL4FoBADCXmXcAADPvIKI53vYFAB4xPjPgbQtARBcDuBgADj30UKxevbpqQguCIByMENGWQq9VPdBMREkA5wH45WRvjdiW59ti5muYeSUzr5w9O1LRCYIgCFOkFtlHbwXwBDO/4j1/hYjmAYD3uMvbPgBgkfG5hQC210A+QRAEwaMWSuFC+K4jALgVwEXe/xcBuMXYfgERpYhoCYBlAB6rgXyCIAiCR1VjCkTUAeAsAB8zNl8F4EYi+iiAlwG8FwCYeS0R3QhgHYAcgEsk80gQhEqQzWYxMDCAiYmJeotSU9ra2rBw4UIkEomSP1OTlNRqsXLlSpZAsyAIk7Fp0yZ0d3dj1qxZIIoKXx58MDP27t2L4eFhLFmyJPAaEa1h5pVRn5OKZkEQDnomJiZaSiEAABFh1qxZZVtHohQEQWgJWkkhKKZyzqIUGpjdw2nc8ezOeoshCEILIUqhgfn1EwP4m+vXIJNz6i2KIAhV4Otf/zrGxsbqLUYAUQoNTDbngBlwmjgZQBCEwohSEMrC8XSB6ARBaH5GR0dx7rnnYsWKFTj22GNxxRVXYPv27TjjjDNwxhlnAADuuusunHrqqTjppJPw3ve+FyMjIwCAxYsX49JLL8WqVauwatUqbNiwAQDwy1/+EsceeyxWrFiB008/vSJy1qr3kTAF2OvyIZaCIFSOK36zFuu2D1V0n8vnz8AX33FM0ffccccdmD9/Pm6//XYAwIEDB3DttdfivvvuQ39/P/bs2YMvf/nLuOeee9DZ2YmvfOUruPrqq/GFL3wBADBjxgw89thj+PGPf4xPfepTuO222/ClL30Jd955JxYsWIDBwcGKnItYCg2MshREKQhC83PcccfhnnvuwaWXXorf//73mDlzZuD1Rx55BOvWrcNpp52GE044Addddx22bPH71l144YX68eGH3ebRp512Gj70oQ/he9/7Hmy7MrW+Yik0MKqwUFSCIFSOyWb01eLII4/EmjVr8Nvf/haXX3453vKWtwReZ2acddZZ+PnPfx75eTO9VP3/3e9+F48++ihuv/12nHDCCXjqqacwa9asackplkIDoywEluQjQWh6tm/fjo6ODnzgAx/AZz7zGTzxxBPo7u7G8PAwAOA1r3kNHnroIR0vGBsbw4svvqg//4tf/EI/nnrqqQCAjRs34pRTTsGXvvQl9Pf3Y+vWrdOWUyyFBkZ5jVhsBUFoep555hl89rOfRSwWQyKRwHe+8x08/PDDeOtb34p58+bhvvvuw49+9CNceOGFSKfTAIAvf/nLOPLIIwEA6XQap5xyChzH0dbEZz/7Waxfvx7MjDPPPBMrVqyYtpzS+6iBuep/n8d3H9iIJz5/Fvo6k/UWRxCalueeew5HH310vcWYMosXL8bq1avR399f9mejzl16HzUpSmFLoFkQhFoh7qMGRscURCcIQkuzefPmmh1LLIUGRscURCsIwrRpxftoKucsSqGB8esU6iuHIDQ7bW1t2Lt3b0spBrWeQltbW1mfE/dRA6PdR5J9JAjTYuHChRgYGMDu3bvrLUpNUSuvlYMohQbGDzTXWRBBaHISiUTe6mNCNOI+amAciSkIglBjRCk0MMptJDpBEIRaIUqhgZGGeIIg1JqqKgUi6iGiXxHR80T0HBGdSkR9RHQ3Ea33HnuN919ORBuI6AUiOruasjUDLHUKgiDUmGpbCt8AcAczvwrACgDPAbgMwL3MvAzAvd5zENFyABcAOAbAOQC+TURWleVraByvEZ5YCoIg1IqqKQUimgHgdAA/AABmzjDzIIDzAVznve06AO/0/j8fwA3MnGbmTQA2AFhVLfmaAR1TqLMcgiC0DtW0FJYC2A3gWiJ6koi+T0SdAOYy8w4A8B7neO9fAMDs+zrgbQtARBcT0WoiWn2w5xxL9pEgCLWmmkohDuAkAN9h5hMBjMJzFRWAIrbljYbMfA0zr2TmlbNnz66MpA2KI3UKgiDUmGoqhQEAA8z8qPf8V3CVxCtENA8AvMddxvsXGZ9fCGB7FeVrePzeR/WVQxCE1qFqSoGZdwLYSkRHeZvOBLAOwK0ALvK2XQTgFu//WwFcQEQpIloCYBmAx6olXzMgrbMFQag11W5z8QkA1xNREsBLAD4MVxHdSEQfBfAygPcCADOvJaIb4SqOHIBLmLkyK1E3KVKnIAhCramqUmDmpwBEre5zZoH3XwngymrK1EzIegqCINQaqWhuYCSmIAhCrRGl0MD4dQqiFQRBqA2iFBoYv6K5vnIIgtA6iFJoYBzJPhIEocaIUmhgHIkpCIJQY0QpNDQq+0i0giAItUGUQgPj1ynUVw5BEFoHUQoNjF+nIFpBEITaIEqhgRFLQRCEWiNKoYHRK69JnYIgCDVClEIDIxXNgiDUGlEKDYzUKQiCUGtEKTQw0hBPEIRaI0qhgZHW2YIg1BpRCo0MBx4EQRCqjiiFBkbqFARBqDWiFBoYHWh26iyIIAgtgyiFBsYR95EgCDVGlEIDo5SBBJqFMBNZG2f8+/14aMOeeosiHGSIUmhgWGIKQgFe2j2KTXtG8S+3rau3KMJBhiiFBkbqFIRC2J5vMW5RnSURDjaqqhSIaDMRPUNETxHRam9bHxHdTUTrvcde4/2XE9EGInqBiM6upmzNgCzHKRQi5/04LBKlIFSWWlgKZzDzCcy80nt+GYB7mXkZgHu95yCi5QAuAHAMgHMAfJuIrBrI17CwfhStIARRVqQVE6UgVJZ6uI/OB3Cd9/91AN5pbL+BmdPMvAnABgCrai9e48C691GdBREajpwtSkGoDtVWCgzgLiJaQ0QXe9vmMvMOAPAe53jbFwDYanx2wNsWgIguJqLVRLR69+7dVRS9/kjxmlAIWywFoUrEq7z/05h5OxHNAXA3ET1f5L1Rv+680ZCZrwFwDQCsXLnyoB4tdZ3CQX2WwlTQgeaY5IoIlaWqvyhm3u497gJwM1x30CtENA8AvMdd3tsHACwyPr4QwPZqytfosLTOFgqQ85RCTCwFocJUTSkQUScRdav/AbwFwLMAbgVwkfe2iwDc4v1/K4ALiChFREsALAPwWLXkawZkkR2hEI6nFCQjVag01XQfzQVwM7kpc3EAP2PmO4jocQA3EtFHAbwM4L0AwMxriehGAOsA5ABcwsx2FeVreGSRHaEQyn1kiftIqDBVUwrM/BKAFRHb9wI4s8BnrgRwZbVkajYkpiAUwo8piKkgVBaZZjQwOvtI6hSEEDlHso+E6jCppUBEKQDvBrDYfD8zf6l6YgmAbyFInYIQRorXhGpRivvoFgAHAKwBkK6uOIKJZB8JhchK8ZpQJUpRCguZ+ZyqSyLkITEFoRBZ2+t9JEpBqDClxBT+SETHVV0SIQ+paBYKkfOUggSahUpTiqXwOgAfIqJNcN1HBICZ+fiqSiYYDfEEIYhyH0nxmlBpSlEKb626FEIkOqYgkWYhhHYfSetsocJM6j5i5i0AegC8w/vr8bYJVcaR7COhAJKSKlSLSZUCEX0SwPVwu5nOAfBTIvpEtQUTzDoFQQgigWahWpTiPvoogFOYeRQAiOgrAB4G8F/VFEwwex+JWhCCKKUgCJWmlOwjAmD2ILIR3eZaqDDN1Pvo+ke34HsPvlRvMVoGtchOM/w2hOaiFEvhWgCPEtHN3vN3AvhB1SQSNM3UJfV/n9mJ4Yks/ur0pfUWpSVQ2UfN8NsQmotJlQIzX01E98NNTSUAH2bmJ6stmGBaCnUWpARsh/VqYEL1Ue4jsRSESlNQKRDRDGYeIqI+AJu9P/VaHzPvq754rY22FJog1Gwza5eGUH1yjqsURCcIlaaYpfAzAG+H2/PI/OmR91z8BFXGr2iusyAl4Dis2zk3Mj96aBNee0Q/jpzbXW9RpkVWYgpClSgYaGbmt3uPS5h5qfG3hJlFIdQA3SW1CQZbm5vDffQvtz+HW57aVm8xpo3vPqqzIMJBRyl1CveWsk2oPM1Up9AsloLtMA6GbM6cDjQ3/jUXmotiMYU2AB0A+omoF34a6gwA82sgW8ujbvdmcBHY3PhK4WBqRS6BZqFaFIspfAzAp+AqgCeM7UMAvlVFmQSPZoop2A4aXiko+ZrBHTcZSik0w29DaC4KKgVm/gaAbxDRJ5hZqpdrDDM3VUVzM7iPlHjNEPuYDNX7qMEvudCElFK8doCI/iK8kZl/XAV5WopHXtqLjbtH8P5TDst7zRy3muHGbwb3ka77aHA5S8G3FJr/XITGopQ2F682/l4P4J8BnFfqAYjIIqInieg273kfEd1NROu9x17jvZcT0QYieoGIzi7rTJqQX60ZwH/duyHyNdNX3Ax1Co7DevbaqKhrelBYCpKSKlSJUiqaAx1RiWgmgJ+UcYxPAngOboAaAC4DcC8zX0VEl3nPLyWi5QAuAHAM3DjGPUR0JDPbUTs9GHCKVAGbWxt8rAXgDrSNPgM/mFqRa0uhznIIBx+lWAphxgAsK+WNRLQQwLkAvm9sPh/Add7/18HtpaS238DMaWbeBGADgFVTkK9pcCJcLs8MHMC37tsQmAE2w2zQbgJL4eAKNEtMQagOk1oKRPQb+BOSGIDlAG4scf9fB/CPAMzy0bnMvAMAmHkHEc3xti8A8IjxvgFvW1ieiwFcDACHHnpoiWI0JjbnZ+zc/swOfO/3L+Gjr1vib2yCG78Zeh8p/3ujxz5KQbW5aIYJg9BclBJo/nfj/xyALcw8MNmHiOjtAHYx8xoiemMJx4lqx533i2fmawBcAwArV65s6jvCcfJdLsp6aEZLodEHWyVfoyuvUshK8ZpQJUqJKTwwxX2fBuA8InobgDYAM4jopwBeIaJ5npUwD8Au7/0DABYZn18IYPsUj90URM2u9cBlDLDNcN8rZcbMoAZdN1hd0ma4npOhi9cOgupsobEoGFMgomEiGor4Gyaiocl2zMyXM/NCZl4MN4D8O2b+AIBbAVzkve0iALd4/98K4AIiShHRErhxi8emcW4NT1RMQVkFZsfRBp+AAzD89Q0sa5T76Mu3rcOda3fWS6Qpo9tcNINvUWgqihWvVauN5FUAbiSijwJ4GcB7veOtJaIbAayD66a65GDOPAJcBRB2DSl3UtaYAjaL+whwfd1WzKqzNNHYESmpNz25DaMZG2cfc0i9xJoS0hBPqBalxBRARCvg1igAwIPM/KdyDsLM9wO43/t/L4AzC7zvSgBXlrPvZiYqY8eOsBSaAZ3u2cDuDF9G/9oql1ezIcVrQrUopUvqJwFcD2CO93c9EX2i+KeEUnDY9W+bN7bq4Bl0HzX+jW9aCo2Ko11cwWvb6AHyKKTNhVAtSrEUPgrgFGYeBQAi+gqAhwEcFP2Q1mzZhxMW9cKK1T446hg+7rjlHl8piKZzH+kWEnUWpAj+9Ta2NUEqbRhmFktBqBqlFK8RANO3byM6fbTp2LJ3FO/+zsN48MXddTl+VIqknnEblkIz3PdOM1gKuqLZuN5NUIltMjiWwZLLfyvFa0LVKMVSuBbAo0R0M1xlcD6AH1RVqhoxPJEDAIykc3U5vl9ha2xTloJtWgo1FWtKRAVxG42odF+H3SLCZmHPSCbwvBmsSKG5KKVO4Woiuh/A6+AqhQ8z85PVFqwW2BE+5lqiDmsOpP6M25SpsW98s813I/vnoxbZiSogbGyCsopOECpNKYHmwwGsZeZvAngawOuJqKfagtWCXJ2Vgp5dR9Qk5ExLYQoemZ0HJnDMF+7AczsmLSmZNqYiaOSsqSj3UbMFmsPZamIpCJWmlJjCrwHYRHQE3MZ2SwD8rKpS1QjfnVDn44d83IDfxgCY2o2//cA4RjM2BvaPT1PKybF5erLWirD7iJnhcGPLHCasdJtIdKFJKEUpOMycA/AuAN9g5r8HMK+6YtWG+ruPInzcEQHbqUjnRPjPq4VpyTRyp1R/kR33OUdYDo1ONjSDaSbZheaglEBzloguBPAXAN7hbUtUT6TaUe9WynaEjzsq+2gqN34tXWNRMZFGxAldbztCKTc66nt9z8kL8dyOIbEUhIpTiqXwYQCnAriSmTd5fYl+Wl2xaoOajdcrY0ZN+sLZMEBoRjgF8aIybapFIKbQwANseI1m331XL4nKR/0u3n3SQsxsT4ilIFScUrKP1gH4O+P5Jrj9i5qeejdxi3Lx6IZ4EdvKoZauMVP+Rp51h9do1u6jBpY5jLIgExYhRiRKQag4U1l57aAhV2f3kRPhvlD/T7dOoV6WQkMrhVBgvxndR0pWK0YgavRkZaEZaWmlUMuBM/L4EQVfUa2zpyJdLc/NnK02g/tIBZrDsYVmQE0WElbMsxTqLJBw0FFUKRCRRURfq5UwtaYedQp3r3sFP31ki3vcCEvFdx9Nr/dRLuQiqSZR7q9GJBxo9t1IjStzGPW9xi1CjJpLdqE5KKoUvPUMTqZGXUprmth1WOf212sGcO1Dm7zjenJEZB9lA72Pph5TqMUsuGmK10LWk77+TTTdVpZCPBYDSUxBqAKlpKQ+CeAWIvolgFG1kZlvqppUNUINYLUsXrO9gin3uFF1Cko2o05hKjGFGvrLm2U96YMh+ygYaJbiNaHylKIU+gDsBfAmYxsDaHqlUI/iNcfhvONGNcSbfvZR7aygZklJVdc2XLTWTNlHwUCzxBSEylNKSuqHayFIPbDrMCjYRq+dKBePGqiy02ydHVUDUS3CDeYalXC2V1T2V6Oj1tlwA80SUxAqTykN8RYS0c1EtIuIXiGiXxPRwloIV21q6Xc3j+kHPNU2s/mdyj6abkqqo49XbewmaXMRbitS7zYnU0G5j+IxAkFiCkLlKSUl9VoAtwKYD2ABgN9425oedYPVcnZrduWMWglMN8RzTEth6tlHtS9ea9xFduxQKmoz9z6KWzHEYs2x1obQXJSiFGYz87XMnPP+fgRg9mQfIqI2InqMiJ4morVEdIW3vY+I7iai9d5jr/GZy4loAxG9QERnT/msSqQeFc2mpRAVaLajAs1TOI6faTM1Ocs6VsQa041IXu+jOtepTAWl7BOWG1MQ95FQaUpRCnuI6ANezYJFRB+AG3iejDSANzHzCgAnADiHiF4D4DIA9zLzMgD3es9BRMsBXADgGADnAPg2EVlln1EZ5OrgPnKcfLeFOaiqm3y6geZ6WQoNvRxnSFGG3XjNgLrW8ZhbvCY6Qag0pSiFjwB4H4CdAHYAeI+3rSjsMuI9TXh/DHc5z+u87dcBeKf3//kAbmDmtNdfaQOAVaWdxtTQGTp1CjRH9T6KanMxtUBz7VxjzbKegq5oLmAxNAN+nYKbktrI11toTgoqBSL6ivfvKcx8HjPPZuY5zPxOZt5Sys49y+IpALsA3M3MjwKYy8w7AMB7nOO9fQGArcbHB7xtVaMeFc2u+8j7P6LNgk5JnWbr7FoG0U3F09DFa3nZRwg8bwZyNiNGQCxGIDSXlSM0B8UshbcRUQLA5VPdOTPbzHwCgIUAVhHRsUXeHlU1nfeTJ6KLiWg1Ea3evXv3VEUDUJ+V1wKBZpU2aioAlX3kTM9SqGWzv2Ztc1HL7KORdA6Pb9437f1kHQdxy71tY0RgaYknVJhiSuEOAHsAHE9EQ0Q0bD6WcxBmHgRwP9xYwStENA8AvMdd3tsGACwyPrYQwPaIfV3DzCuZeeXs2ZPGu4tSL0shvLhO0P3iPgbqFKZw44c7glYT8xiNnJIaLlarZaD5picGcME1j2Ask5vWfnI2IxFz509ENKX1uwWhGAWVAjN/lplnAridmWcwc7f5ONmOiWg2EfV4/7cDeDOA5+Gmt17kve0iALd4/98K4AIiSnkL+SwD8NhUT6wUnHq5j0IDtjmb91deM2sXyj9OrkpW0J1rd+bNeAMV2Y2sFJRllpeSWv1jj6Zt2A4jnZ3eF5KzTUuh8sVrf9y4B797/pWK7lNoLkqpaD5/ivueB+A6L4MoBuBGZr6NiB4GcCMRfRTAywDe6x1nLRHdCGAdgByAS7yGfFUjV8OZosJh11JgZj0oRVY0ezLRFIOJUZlNleA/7noBS/o78erFfXqb6epqZKXgK+HQ85pkaLkHna4llXMYcc9SqEbr7D//3qMAgM1XnVvZHQtNQym9j6YEM/8JwIkR2/cCOLPAZ64EcGW1ZApTj4pW23GVQaGFacKWgkU0Ja9xtRRezua8fUatMd2IcEgJ1DL7qFLfR85mxC3lPmrsGI7QnLT0Ijs5nZJau2OqMaFQHUJ4kR0rNrUCpWopvJzDebNdu0ncR3bYQqhDMD47TX9e1nEQj7m3LU1xwiAIxShLKRBRLxEdXy1hak29eh8BQMYYHILpp+6jch+5SmHqx6n0gGc7+ZZCs3RJNdtbMOenBleTSloKCUu5j6QhnlB5SmmIdz8RzSCiPgBPA7iWiK6uvmjVpx69j/SMMRe9slqe+yg2taZn1VJ4OcfJq0Voli6pHLrONV2yVKcaTzemEExJbeDLLTQppVgKM5l5CMC7AFzLzCfDzSRqeuqynkJEa2zTo+CE3AyuUij/ONWqwWhmSyFYT5HfGK+a5LRSmG72kR9ornRMQawOAShNKcS9eoL3AbityvLUFL/3Ue2OGeVbjqxoVu6jaQaaKz1zd2MKwYGtWQLNpmgOG40Ja9gfaroV3znHDzRXuvdROidFD0JpSuFLAO4EsJGZHyeipQDWV1es2hDld39571igRqDSqIEoE6hDqEag2VtPocIDnh2RfRTInmrg2WZYedXSfZSr0PoWWdsMNFfWUhhNT6+wTjg4mFQpMPMvmfl4Zv4b7/lLzPzu6otWfcLuo637xnD61+7D1++pns6LtBRMpeBtzk47pqD2V2GlwFHZR81iKQSVl3lZqx0LsSvoPkpUyVIYTVe1LEhoEkoJNC8lot8Q0W5v9bVbvIrjpiecEbJl7xgAYPWW6feoKUSUGyFqpq2UwlRv/GpZCrmImEIzuo/Yqa2Fo77v6buPfEuh0l1SRyIshavvfhEf/MGjFTuG0PiU4j76GYAb4VYozwfwSwA3VFOoWhFe3H54IgsA6G5LVO2YahzKFIophBRV3JpioJmDx6sU9iR1CvtGM9g1PFHZg1aIsBKopTKrlKvKjCkQVXY5zlGjL5NyWW7aM4qXdo9W7BhC41OKUiBm/omx8tpPMbXFwBoOvyGe+3x4wr0putuKF3o/u+0A9o6kp3TMqJRUtc2MHajsJGuKq2tVY60I9jq85sUUDPlufnIbVl15b8WOWUnCKalRRYOlcNfanfjWfRvKGuD97KNpKoVQ9lElDRzTUjBTo6dbcCc0F6UohfuI6DIiWkxEhxHRPwK43VtWs2/STzcw4dnbkLIUUsWVwoeufQzf+/2mqR0zamW1iFmk8j1PtXhNuSkqOQMu5BdX8luxqO7nlWGqStgknH0USAUu4zJ9/Z71+NqdL+Cfb11b8mcqFVPI2qHW2RWNKfhKwVRijewSFCpPKUrhzwB8DMB9cNtf/w3cldfWAFhdNclqQLh19oFxVyl0TKIUhidyU87UUANolPvIjrIUYoR0zsaGXSMoh2qkW+oYTMgvrgaNpFWdrik3PzmAk798D/40MDit/YTXfZiq+2h2dwoA8IcNe8o+diVSUs2K5kq6j8aMQLOyDsRSaD1KyT5aUuRvaS2ErBbh7KO9o5nA9kJE9f8p+ZgqkJzLT0k1J5E5I9C8ee8Y3vbN35fVi78adQp2AReIun5qsKo0D7zgLqa0/pXyFGOYou6jMq6TGiQzZeT1V67NhZGSisrGFEz3kQ6MT+O3LjQnpWQfdRDRPxHRNd7zZUT09uqLVn3CN+q+EVcpFLvZfb96+bMns112oKI5ooWzkk0FFTM5B+OZ0lMGq9HmotDApi2FuFWxYwFuivBf/2SNjvUk4tOzRAItyp38FNVSUUqhnBm0+r1kp6sUAsVrlQ3umdZv1qiraOQlVoXKU8pddi2ADIDXes8HAHy5ahLVEDvUJXWfZykU8/tmp5FaGBUzcP/PH8DV/mNEee8r51jViSkE96meVzqk8Pjmfbhj7U68uGsYAJCcpiViim2HYwplXCc1aTCVwr7RDK55cCNueOzlyM/4CrWSbS5IN/erBCOZCEvBZq0ghNagFKVwODN/FUAWAJh5HNHrKTcduiGedh+5wcxsrvBNlpvGYinmoJ+JdB8ZMQXvOHFjpC1nZqrkq2QgslBVrpJ7IlvZ4qdxb38HxtxYT7IMS2EkncPiy27HzU8OIGc7WHzZ7fjBH/zkgLyYQhkXKuP9bkxr779+tx7/+tvncdlNz0R+pnIxhWCgGajcdzwa6T5ywNzYjQ6FylLKXZbxltNkACCiwwFMPxWkAQgHY5WlUGzwzU4jq8eccEU1xDP3qW70mKEUyhlQojKapkuhDBp1/SamudRkGOUuG/LcR1asdKWgAvM/+MMm/b2GFXHUMqilEBVTULIWaktSqZTUrLFGs/ppVCquYFY0Z0OTH7EWWodSVl77ZwB3AFhERNcDOA3Ah6spVK0wg7G2wxj0so8yRZSCCgBPJbUwuMB9fuvsqPHCCriPphDYrGRMoYBCjMqoqgRhy6Oc2eo+z+rraU9i31gm73WbOXBtyrlMShlkbAfMDCIKxFsytoNUKL5SyPVWLuYazaSVwrR2qYkMNBuPkyTlCQcJpazRfBcRrQHwGrhuo08yc+m5eA2Mn30EDI5ljCBwEaUwDTeAOZhmIorXomZ8cct0H5VhKYRWF6sEhQY2mxlWjCqezz4eUgrlDKjbB92q6p6OBPaORCgFh4MxhilYCkqmhEWBJooTmXyl4KfzTnfltWBFMwBwhcLNZiKDOsdKub2E5qGU7KN7mXkvM9/OzLcx8x4iasyS1TIxZ74B07nIDaDzt6fkPjJiBhHZR1EDUyDQXMaNqc+tCtlHYR+z7QQtGvc90z/ueCbkpirDUto+OA4A6ErFsSei8C3vHKaQfWT+b/4exrL5qcOVWmTHdvxAc6VjCumcfw+E3UbiPmodCioFImrzKpb7vWU4+7y/xXB7IDU95gw9E3GjR1GsUvhzNz+Dax7cWPh4geI0w1Iosk+zSrgc91GlluP8xeMvY82W/e6+IlJm1fawu78SVsNELmgplGMpKaUwkbV1TMFkOnUK5roDKinBPN+o1OFKxBRUOrTZEA+oXEwhnXO0wsmFLAWpam4dilkKH4Nbtfwq71H93QLgW5PtmIgWEdF9RPQcEa0lok962/uI6G4iWu899hqfuZyINhDRC0R09nROrBTMimZzkC5Wp6AG5ijF8fDGvXoAjcIceEx3g1IWUfd2UCmUfmNGVUlPhUt//Qze/Z0/uscv1NnV4TxLoRxZ71y7E6/7yu/yrulEaHAtZ2Da5imF0Ywd7T7iYPuGci2FjqTrHspEWAphtxdgdK2dxuCqlGJCu4/c7ZUar9NZ/7zCqddS1dw6FFQKzPwNZl4C4DPMvNSoYl7BzP+vhH3nAPwDMx8NNx5xCREtB3AZgHuZeRmAe73n8F67AMAxAM4B8G0iqmw1VAjzRo1yCURRLPsoG7F+ceB4Zkqq8T6dKRQxMJmDbXnFUkrOkj9S8j6BoNViOxzIknJfL32k2rh7BAP7xwNtFoDKxBTGM7ZONTZxnOB6CoUG6z9u3IPHNwdbqWdtRqcXdQ373tUxw2h3zDS+EHXN81NSK2Up2OjyzstPvVbtLsRSaBVKyfHbSUTdAOBVNt9ERCdN9iFm3sHMT3j/DwN4DsACAOcDuM5723UA3un9fz6AG5g5zcybAGwAsKqckykXs0uqulkTFiFrM5gZX73jeazdfiD4GaP8P29/dvGWAObAEbUcZ6T7yJpiTMG7mSu57m5YESgcL9AceK9xftc/ugV//ZM1Bfer3Gdhv3VYKZQaU8jZDnYOuUphNJPDnghLwWGUlH30tTtfwNfvedGQwbUwOvWMulRLYfpuGDUhMYvXgMpZCpmco5Vd2E063UZ+QvNQilL4PDMPE9HrAJwNdyD/TjkH8eIQJwJ4FMBcZt4BuIoDwBzvbQsAbDU+NuBtC+/rYiJaTUSrd+/eXY4YeZgxBeUn7kjGkbUdDI3n8O37N+Lcb/4hsvw/6ibJ2vnrF5tE9TYKyxFmqimp6q3VqFNwZSndffT01kE8umlvwf2q1g9hpReecb+wcwTLv3AHtu4bKyrn/rGslnUsbUd2WA3HFApdp/GMHXAnKiXQkXQHT/VaznApjUVZCkUmE6Wi19gI1Sn835ueyZu8TIW0oRT8Vh4ceBQOfkpRCuoXfi6A7zDzLQCSpR6AiLoA/BrAp5h5qNhbI7bl/RKZ+RpmXsnMK2fPnl2qGJGYszf1o+9MWsjYTiCD5JerfV1VbAWtrD1F91FE7yOFFahoLt9SMI95YDyLd37rITy7bWoDSFgRKNxAM+G7HzgZJx7a477XkDVnc9E4jV0gThOuU9i0ZwRjGRsD+8f1trFMDk9vHQzEa8ykgbFsTjc6NHGYS8o+msjage9K7bszlR9TUK6XqMpuc32CqaI+G3Yf3f7MDvx+/fSzxF2l4J5XuM+VBJpbh1KUwjYi+m8A7wPwWyJKlfg5EFECrkK4nplv8ja/QkTzvNfnAdjlbR8AsMj4+EIA20s5zlQxM3RU19KOlGspmLO9/V6bBSA/K8MkZzslu4/MQbJYRpM1xYrmqDWa/+fJbXhq6yCufWhzSfvgUHbOZJbCOcceggtXHQogOMBnbKeoQis0iw67YVTFtBqIdxwYx/Iv3Inzv/UQHlzvW436u0xanqUQnX1USu+j8awdGMjVvv0Ztf/ddXmLM1Ur+0hZVOFAsylXOVx+0zO4+q4X9PNMzkFnMmwplN/8T2huShnc3wfgTgDnMPMggD4An53sQ+Q6PH8A4Dlmvtp46VYAF3n/XwQ3m0ltv4CIUt4a0MsAPFbKSUwFNhagN2MKnak4sjkO3NhmCmJUtoki6xSPKZiWgHmT+YVm+Z+Zqvsoao3mP250Z5OvOqS7pH2YA/nQRDaoCEJtOpTyUgNWQIHYrKt//X07GBxTbUXUwBq2FKJjDGoA3HHAX/Zz97DvIlLfUU97AgfGs5FrD4d7H11994u449kdee+byDp5Cg5Anpsl57BexlVNKHYNTeCeda/o47nnOHWloC0F1Tp7ikkIiidf3o8ntw668jnud9RVMKYglkKrUMp6CmPMfBMzr/ee72Dmu0rY92kAPgjgTUT0lPf3NgBXATiLiNYDOMt7DmZeC3ct6HVw22pcwsyV7bBmEKhmNeoUOpNWnqUQNauPjik4Rd0DUdk7CcuvBI5yYcSm7D4KKhpmxh837i14nOh9+Ofi+umdyNfMOgXVn8h8PeyfBoDrH9mCM//jAS/3Pv91IMpSsAP7My0nc+BX39eM9kTBwSysFP64cS/uXPtK3vvGs3ZALlWXoAPNOWU5OpihLAVPzhse34qP/XQNHIf172I6vnmdkhoP1ikAQXdkqWRsB+mQ9dVpZB+ZEyexFFqHqnUzYeY/oHA31TMLfOZKAFdWSyaTwKBmxBQ6knE3pmC0EQ5WenqDQMTqY8zFZ4JB95EKGsagdqUGKXPtXXMxs3IqesMN8Qb2j+t1CUpdHMYcwAbHMoFBOBykVRaNataWtRn//cBGPPnyoHZ7ZGxHdzp9ZTiNvaMZN55TINAcrlNQSiET4dIIJAMoS6EjUfDcbCc/hhMe+BzHjYUUsxQyhoJqT1iIke8+Gs/auheS75uf+uCq5Ejq9RT826ucBX/M/anftlIOHSm/TiFs7QmtQXXWT2wCwoFS333kWgrjBSwFnY3hRA8oxWZUUe6jhEV5rbMThiYI1imUbykoq0ApBKD0AcS0egaNjB5z/+oYyqJRQVDbYTy7fQhPDwz6s+RAJbA/c9avT5KSqmMKueDsFgCGA0rBlW1mu68U+jqDuRHhmIL7uZD7KmfnbVfH9n3vvnslYcXQnrDy3FxZI9Y0HTeMOrb6fZgzrqnM5DM5R1/TtO3K3JVU7iOnYGKBcHDTskoh/IPPBFJSWd/YMQrGFAqtKVDKcotR7qNk3MrL8EgZSsHcXTmZK0oBKT++afmU2s3UvEaD45nA80B1s+1bCnFtKTjI5OzATDuqlUjGHDDtoNIMD6BqkDZn54pIS6HdVwTze9oA+C4XdxW80HcYtlSy+S4fnZKaCtYp2I5bq9GejGvXo+964bzveCr4E4lg9pH5Wnn74zxLwXcfBeNj4j5qHVpWKSj3jxWjYKA5aXkN8txBpqcjGWkphAdoc+ZbiICl4LmPkhExBdUFsy0RC7XbLj6gOA7jrrU7A75gte/RApZPMcyBYP9o0FIIt4iwtKXgB5qzXoBZXZNMIGDv+6pzEddUKWVzYZ2JiBm4wmxoqJTGTM99RAQcMsNVCipIG25zAeRbf+PZfEtB/a8CsrpOwXH7BrUnY3lurkwuWvGVSyakFIjyXyuHrGkp5ILnlbU54CKVQHPr0LJKQf3Ik1Ys0BBPzZQOeGsr9LQngjGFAumj2QIWhIl536rjxa1YXu8jddP3diSDLpdJBpTHNu/DxT9ZgzVb9ut9+UVcZoyktAHEPJfBsZClYLrfHF8pWEZMQVkJUa41c5s6jjkoq4F1luH2Caekah97PBZwj6lrptxHszqTSCXcmb2ZHRUOuIfTOsOBbQABi9KUxbbdltbtCUu7HtX+zLqF6VQGq+8/GY+yFMoftNNmTMF7VBaQ6z7K/76Eg5+WVQpqIFLZP2rmrqpSlVKY2ZGIdB+FZ5XFspLCxwSCMYWwa0EphZ6OZGAGOJn7SKV4KtkB3/1UKJuqGIFA83i24EplpqWgZM85DjI5909dmyj3Uc5m43//9QmvbXY4FmDKpR57OxIh91EwptDfldIBcBXzcJjzWluEvzs1uJuzezNLzTyPrMOwYjHXfZQNuo/M2Mi03Ec5FWj2lEIs/7VSYS+OFo7T6FhJyH0kgebWoXWVAqtZl6UDzVaM0JbwlUIyHkNH0op0H+VZCiWkHAZaT9u+Atg2OI7HNu3TMqW8mWBfZyI4u55kQFEuFFMBaEvBiynMaIuXEVPw3zcykQtZCv5rtsN61qpbL3tZNw4bAdtcvlI0YwrmtVMDaZRSUEpaKZHejmQgJTWcfTS7O6WVlbIUHCfqO/SfP7vtANbtGNLn4oRk1HUKOiXVXeegPRHTWVPqOptKIWszxjI53PtcfvrrZGj3UdwrXkMwpjCesUtuAa6y5dI5G2y0eUklYojHSALNLUzrKgVlilt+TCFhkR48Doxn0ZG0kIpbQUvBCCwGi7HKCzSbQcPdw2m8778f1je08sv3dCQDA9VklsKoN/CrGW6MfOWnYgq9nUlkQusUFMKcHaZtJ5BOWaghnvLZm60txvQgaVorRkwhIgirBtL+rlSeXGF3VE/IUtAxBc9SmNPdpi0EM6ZQLCX18puewRdvWeu/FmrFEa5oznmTio5kXLdI0e6jkJK+7ekd+Oh1q/HKkF98VwrhQLMZU5jI2Xj9V3+HG1dvjfpoHuoaub99QynEY4hb7vKigUpuaYjXMrSkUkjnbPzwoU0A3EIglUuesGJ6JnlgPIuOhIWkFQsWrxXwqxdbZ0ER7H3ku4/06yH3UV8oyD1ZsE/NlpVySFgxrWjG0jkQATPaElMKNKezTsFzH8/YaPcsLD/Q7PgzZaUUchHXK+cPPqb1oT5z9jFz8bdnHBFQDuGgfm9HMpSSGsw+ci2FYCDccfKVgqkE949lAjN87QLTbS6CvY98S8GPKUS5j3KOg6EJ1703POG7+YqRyTm46n+f11XbyYjso6Fxtxvs1v3FmwUqTKstnbOR9mRMxS0kYrG87C9xH7UOLakUnnx5ED/642YA/g2WzjlIWjEdxDswnkN70kIqEQsEmgMtryNummKWghPxfjO7Rs2o1ay7tyPoPprsxlSzZbWfZDwWsBQ6k3Ek47EppaSmc3YwjmDIMjyR01kravDNGrECpaQmS0k1rSIVnJ0zow2fOfso7VIz9+NbCslgTMEbuGd3pzCzPYGj53VrC0F93zZzXlsRczZsBq7D8gLI6xGUcxiWRWhPGoFmO2gpAe53qM4tvNxoIW59eju++8BGfO1Ot09RVKBZKZhS92l+FxNZX4FrSyFUvCaB5tahJZXCa5bOwqK+dgD+wDeRtT1Lwb0kQ+NZdCTjSFqxkPsoerZs9kQqtIZB1E1m3tgqQDxuuHqCi8QHb0xmxoZdI/q5H1NwB7SkFQOz+76xTA4dyXzLpxjhrJtClsLwRA7dXosHs82FOo66HMHiNd/toi2FiJTUsAViyqUeezsSGMv4Skspl662OB79v2fivBXztR9eWwqc3+5D7Y+Z8/olhRVRKu763s06hUQsWLymzj9oKfg1MGbtSDGUm0n9VKLcR0reqLUcojCVgmspqPOyELdiyDlO6LcnlkKr0JJKAQB+eNGrsWxOF05c1APAdY8k47FATEFZCoFAs9n/p8AsvpC14ES4j8z1g5VSULPe3gI1Eor7XtiFN1/9ALbsHQXgDwympeAe11UYnSnPUii5otnPyErnnKClEFAKWd0Mzl/jN79dtjkQ+YOs0V/H2Kc6F5UNZnaLTUe4j4B8iyRhuYkDRISEp6yU0nK84HFUF1rVniLqWphVxQlPwaq6EDdRIaYHZu0+CsUU1Gy+1AF8v/cbCVtjZu+joQkVTypN0ZgKeiLr6GuajMeQiFFemwsJNLcOLasUls3txt2ffgOWzXU7hrqWAukbbiSdKxBoLhBTKGFWZVrgaha20wg2DnlKYVgXziUCjc7CgeaXdrvKQK9HnA4GmpWCsx3DUojHyq5T6EjGA6ml7jn6M+TRjK0tBTUTV9lHJoXqFKKK117xOqDO9YrOEkb+pZ+S6haMqZbV2/aP47h/vhMPvLg77zNKLqW01CI78Rjl7XdkIn9gDVsniXhMr9JnLn5jKl313mD2kaOfR7XYDrN7OI19Y2riEEz7pYjeR2rf/3LbOjy0ofAaC9mwpZBTMYWYaynYwXbn4j5qHarWEK9ZUB0l0jk30Kx8zgD0IBrskhodU8gWcK2Y2BEpqYPGWg3KUlCz5L5QplB4v7u8wOP+0eDnRvMsBXYthWR5loLZD8qNKeSfuxpAtVLQ2UdOvqUQsYJZxiiSMpXO9gMTmNWZ1CnC5oxeXRPVb0jNoF/YOYzhiRxefGUY8RgFOsya/aTUNbEZAfegkmk4otV2uDZCxZ/MmIhlEZJsweHg+YctBR1TmMRSeGbgAM771h/Q7Z2fUvpRbS4U41n3uD/4wyaMZXI47Yj+yH2nQ5aCkjWVcGMKWUca4rUqLa8U1I01kbWR9GZJiraEhZR34zuO2/TNHPwDM98CisPEmURxKKWgdEevkZJqGf5rxU5vNq1mksptNG7EFADfUujtTCJllW4pKBk7k3EMp7ORMYXhtCvzDM99ZAaaw5ZCMNBspKTqJoP+69sHxzHP61cEhGMKvisnbpFWCmqZzqHxLFJxK3BsJRd7i/mp1tnmftX3Fg4yKzkBfzBNWISkFUPWcKvFY4RYgvS5mvEqwI0BuO6j/HqSKO5atxPMhmsoa8OKkVaQsXydgImMjT3e8qM7DxROec23FDz3kRVDIhbDnc/u1AV/gKSkthIt6z5SaKWQswMpqYBvKQBmE7YC2UeBtQYmDzQr3rFivv5/KJSiaAaa2xNW3mxNBSAHPZ9zOPtI9d23mfOyj259eruugC5EwFLIRscU1ADapQPN7vVL55y8imFTcZoulqi+QDsOjGPezHb9PLgsqZ/CmrRiumZALdPpcDDVF/AtGMU9z+3Cy3vHApOAbMj6iboWqp6FiJCIB1M3rZhvaZqNAMezvmsm6/juo6hlO03ufyF/DXLTko0wFDCetXXq6s6h/LWp/fMxMsuybrsLK0aIW36dwv885S98KJZC69DySkENNhPZYPEa4PrS1YzTr6KNnu0Hi8z8/x98cTfuf8FdcTRqcZtvXnACHv/cmwG4ueYA8FevXwIit5XCqYfPAgD0dibyso+UUlCWQp77yMjJH9Mxkhj2jqTxdz9/Ej977GW8+eoH8Lvno6tr1Xl0puKBma957sMh95G6flEBz6iUVLN1trn/HYMTmD/TsBSiAs05DloKRo6+merryhWsAn5s0z48s+1AcDbsyTGSzq8f0JaN52ZU52rKn7DIn0TkHK0ElWWQiluwbTP7qLBS2DOSxjPbDgSUgHkeQDCmoBjL5HylcGA873WF6cpT2Ucq7Tdu5Q8LEmhuHVpeKagxwXUfWYHBpN1zHwF+w7BsAT9rodTR/7znRfy7tw5uuAUBkXtjz2gPNuH7y9cvxaZ/OxdEhH9713G4/zNvRF+oupmZ8cqQiikELYXxTND3rILBKvtIifHIS/uwYdcIrvjNOgDA6s37AtlQ6jw6k/F8S0G7WlyZw9lHUQNeVOAyaCn4+xxO5zCvp7ilkHXcAbq/y80+Wm+k54ZjCFEDHeBbUwD0IklDk1gK6jeSsGKBBXSsmK8U0jlH/1bGDEshV2JMQaUan33sIYHt5u8zKqYwkXWw23Mf7R/LBqyRZ7cdwHYvKcH8vao6BfVb3zuSb2FIoLl1EKVgWArJPEvBCsz8gHCWUYGsJOP/PSNp7PIG77CloNYgSMXd+gGVfWTe7Km4hcX9nW43VWNQHprI6UFl35hKZQ3OQM2UVDP7SPG0tz7vLM9N9Z7vPoyP/Ohx/brf58fSAWE1cy1kKajBezRCKURlcWVz+QvQqLWX5xtKwXT/+K4nN9A8qysFK0aBdZrDSkE9VzGFQu/L2k5R95GqfAdcS8xUavEY6YHVbRnufka1uWhLWG6dgo79FFYKqobhLcvn6lqNsLxRMQXTfQQg0Erjb3/2BL5+z4taPoVvKbjHUW44E3EftQ4trxTUwJyOiCmcdFivYSkEc+OBcPZRdExh70gGe0bSbgpkyFIwB//OlKWzXqyIuz0eCjTvMm72/aMZtyNpqIJWDSAT3jrDnak4kpY/wCjLZFZXSmcyvfjKsH8e3v46knG9EJG6Hn5MQVkKrlIgIsRjFOk+ilrW0qx8Vo9qNmu6jyIthZzr8rNihDndwR5J4ZiC2QjPJB661lnb0W44czD26xRYK0ZVp2BHxBTSWcN9ZFoKJaakqu/wqEO6se5LZ2Npf6c+poIiVrsdz9jYNez/Nsxg89BEDkPjOWzdNxbYPuHFFMIut8B1kUBzy9DySkENzOms6n3kX5JXL+7zZ34RC7sU6g2jLIixTA5jGRsOA3tH04F23UCw9bEK1ALBJTgVCSumq6Unsraub1jY2479Y5lAmwcVQFapjGo2H7YUFLM6k3pG2W3IobOPvD4/Yxl/4FCvKVdLd8pf+jJuUbT7qEBKqq3dR+6jUlCqRgEIDt7BhW1iee8FItxHqmgtZK2Fr0fOZgxPZNGesDCrK+kvplPAfZRnKSQMS0G5j1RMIRELpKSOFXEfqc+0e8V3aj2IoPso/3PjWRu7htL6fWYdzETWxnjWxsevfwJfvNVv9qeyj1JFlILEFFoHUQoxP4XQ9U+n8J6TF+K2T7wOAPIDzQVcRlE9ivaO+P75XUNpqLerAcsc/LuMQZUivhW3H42D6/64Ga/6/B14foc7o182pwv7RzOBtgzq/p3hdQlVs3mVfRTGdlgXi6nYgHuufqAZcAeqsKUwks4h7lXyalljsUh/udk8TskYKF5zgoFZVc2szl+hU1Jt1jGBeTODSiF8nn57i+DglmcpOK6l0NUWxyEz2jDbs0DMimal1BPxGDJGoDlukbbEzOyjiawfaC7VfaReU9c+ZSgiRVSgGXDdP0cf4hZlKotATSbGs3ZezEDVKSiF9o0LTsBRXlGnOra4j1qHqikFIvohEe0iomeNbX1EdDcRrfcee43XLieiDUT0AhGdXS25wpgTymTcdUX8+3tX4NgFMwH4N6PqIpmNsAjC23/zp+148MXdOl8ccCtTHW0p5BcfqVk9EG0pxL3WAzc87rZGVpk283vaMZqxsT8ivVStJ6AthVS0pZDOOdGWQqj521gmpwfhnOE+6m6LBwaouEUBy0URtQJbzmajw2wwr7/NcN+YMQVzPQWVYTWZpWDWbHzh7cv18pxhV13WZreXUyqO//yzE3DlO48NyDyetfVEIWlRICYSNwLNY5mcTskdDwWatfsoW7glxVhIMarfYdJQjlGWAgC8vG8MS/o70Z2K699J1nYV8UTWzrNQfEvBPdb5JyzAx884XL/enrQk0NxCVNNS+BGAc0LbLgNwLzMvA3Cv9xxEtBzABQCO8T7zbSKyUAPMgTmc/gcgsk5BzYpth3HkP/0vPvPLpwMB6P9+4CV87/cvYY9pKQxP6ECzVgrGXR1wH0XGFNwmZaq/j7pJ1QxZBQfNGbtaT0AVmHUm40hFnKPrjnIVWJtR9KUGaTUwjWVsxGNuzEBVN7vN8BKB/cVj0e4jNZiHg5zKasjZQR+8qRQiYwq27z46ZGZYKYTqFIxGeB953RKsXOzOR8IZPDnb0Q3+FvV1YFFfR0Dm7YPj+ponvTqFQExBKwX//P2U1FjASpos0EzkKwN/OVHDfVRAK4ykc5jdncLxi2biyZcHAfgLHY1nbIylg8cdTdt4bsdQILCvJgKA+5uQhnitQ9WUAjM/CGBfaPP5AK7z/r8OwDuN7Tcwc5qZNwHYAGBVtWQzMQeF8OwSMNxHWT+XXgUgVdO3X60ZyJtJTYTM9F1DfkxBzfbMga7LsBSiUg1VO2OVYaSCxId4BV4D3oywr8NfqUxVGU8WU5jIOTpwHe79b65G5yqFGKwYBbKPTOsCKOw+MnP9FebgqXzwbiZYLHB94pFKobD7qFBMQX0H6jsMX+uszdp9BPiTgpztxnMG9o9rRaFSUgOWgndc050XpeTC5x5mLGOjw4snAAXcRwU/7VpOJx/ai+d2DGE0ndPW1/BELqCUO5IW7n9hF/aOZnDucYcEtivaEjGxFFqIWscU5jLzDgDwHud42xcAMJeMGvC25UFEFxPRaiJavXt3fsVnuZgDTyJiwAxbClmb9c1tumzCS2VOZB3tPmpPWNhluo8i+uGblkLUBDBhxbS/G/CVQl+nO/Cr+EWPpxRS8Zj2ESuloOoUADe4fPJhvZ6sfuDanL3mbA66RNI5t+o1Rno9BeU+MikUaFY9i6KW3QT8NRomsnbA4gHCvY+M6uJYtPuoUNGXiim0R3RfVfscmcjpmbIahLO2g32j7sI7C3tdRdyRtLyW3Y7el7pWpvtswnAfmRSraB7L2Gg3ZutaKRj7KBRTAFzL6aTDeuGwm3qsJjVmHQrgugs37x1DVyqONx41R2/vMCYpbQlLAs0tRKMEmqN+3ZG/Qma+hplXMvPK2bNnT/vA5pgQbSkEi9dc95E7oOww0vrC/Y7Gszb2jGTQnYpjQW97tPvIOPYhM6LTLxXuurl+O+oD41nEY6RdN3tHlVJwn3e3JXRsImApqFXdOpP49d+8FqcfOTsQUxgz/NyqDkBdg7GsjbiXAqpmx4NjWb3CmSnrWNGmcmbhVNAyUdvCs+pAjyIvvTfnyQcAS2d3IhWPRaZums+dsKUQC7uPGKMZf9Egddys7WgX3cJe11LoSMYxls7pIKxZpxBY9Md73ezH1J6wiloK415diUJdD1PZFYopAK7ldOKhrtJfvWW/vs7hflRqsD/n2EMC1zx8bAk0tw61VgqvENE8APAed3nbBwAsMt63EMB21IBgTCH/LlOzbdN9pG4elU8P5K91MJ6xsXc0g1ldSczuSmHPSMZfgzmW7z5a4a3rAETPAONeSqriwHgWqXhMD27785RCXA94OvvIsBTU7L4tHkM6a+vq6PGMjU//4inc8exO2J77SA1mY2m/P44aTA6MZ/UxTVnDwcx4jLRCMwcm0zJR13A8a+uZvCKsKFVxmBq053S34ekvvgVnHu3OdsNWn9nSG0De/rUMjuO6blLBQThrsw7aqgWaOpMWxrwaEHXeSimMpPMHfNP66etMYixjY71RF2IylrEDA7MONMfNQHNhrTB3Rhtmticwb2YbXt43holstPtHxb0uOnVxYLtZo9GWiEmdQgtRa6VwK4CLvP8vAnCLsf0CIkoR0RIAywA8VguBAu6jqECzanBmBDfVza3S/ZJWvs9VxRRmdaXQ1RbHaDoH21vgXt3M5k29YuHMonImvJRUxYGxLNoSllZQvqXgztq7UvFoS0ErBXcgb0tYGJ7IabfUSDqHm5/ahgfX70bW4WA/H2/9AmUpMDMGx7OYGVYKMcprhteRtIxgvf9iYKlK01IIdTkNN7T7p/95FvvHMoGZc1vC0oNZfvGaX90N+IOe2ZoccOMdo2nffaQUuGkpLPACsh2pOJj9XkmF3EcKZWEArlIYSedw1n8+qBdJMslXCvmB5rBOMOMuc7rb9HH2jqR1oDmMisUcF/r9dYbcR2IptA7VTEn9OYCHARxFRANE9FEAVwE4i4jWAzjLew5mXgvgRgDrANwB4BJmLm1ZqmkSsBQiYgoq60NbCjbrAWv7AT+NM3zTjGdtDE1kMbM94c4oMzZsx003VYrIPF5PR9AFE8aKUaAnz3A6h1Q8pgcO5SvuafctBStkKXQk8y2FVDyme+XMbE9gIut2Nz0wlkXOy+4xfeE6puA4Or9dZTkp4hEWV0cyHpmSGlyARlkKDtqSYaUQDLj+as0A9o9l846lPheOKajPh2MK4Tbi6Zy7CllH0m/bQeS6Bwf2j6GnI6EVaqe3D9XI0Iy/jEZUdJsDb2+n/32v3T6ES65/IqBI3LYkRkwhkR9oDlsK5m9Ix466Utg3mikYv7jz70/Hs1fkZ4CbCikRMekRDl6qtp4CM19Y4KUzC7z/SgBXVkueQhRbiAXwBxcdU3AcPaDs8LpQuouS5McURtM2OmZZaE/GMZbJwWFGLOYfszc0wy5GItT7iDk4M943moFlrELWlTLdRzm0JdxsHnU+pqWg3DpzulM6gD04nkEq3oa4RXlKQVkKg+NKEYVjCvnXsSNlTeo+UpaQaymEAs3e4K+WBjWvi0l7ROqm+VxdwzZtKQS/N3X+qoqbiLwsI8bGXaM4tM+f7atBW7U8N69vlKWweFan/t8Mzt+5diduf2YH3v+aQ/Haw91FccYyNmZ1+a07oovXgvvv7UgEamMAN6Hgpd0jBd1HM9qif4Pmd56wSALNLUSjBJrrhlVCnUIqHtMumKztp6SqVdMmsu7ShaYritnNTupKxY0sFXYtBe9t5k0PAHf9/en46nuOj5QzXHmrZFMKaiSd87q6us+72oLuI+UOUTf7DBVTMPzcc2b48uwfzXruo1ggQGrFYp6lwPr8wzEF03WjZtOdpqVQICXVXJQm7PNX52/Ont1jlacUVFynw7AUTj9ytl7XYnDct6r0Z2OEA+NZrNmyH6cs6fPPLaUsBfczccuNt8TIb04YTGTwn5hN6zbvdWMVA/v8GNV41o4MNJuDdb6lkD/A93Umi1oKhQgUI8ZiUqfQQrS8UjBv2lQi+nL0diR1+mnOdvLeN561kbOdQHAOcJVGZyqOzqSlF4OPGStnqZbPiiPnduN9KxchiqjWz2plOHX/queAOwNU5zY8kfUDp3nuI19m5YcG3BlzzoshmG4uM6aglULIfWQqR+Wb7khage6mgHvtJyLcR1ExBcuzPtRArAjHDpQyScSD25WbSWWAqe8qnbPx44+swsff6FbwDoUsBXdfMTz44m5kbCeYtpkMtjxXFlIyHtMxGrMILB7zlw695IwjcOpSd60MFVMYMNaDKBRoTgQqmgu7jxSzutyA9mQLKhUjbuWv+iccvIhSMAawcK67oqcjgf1jWQxPZDGasQODJ+C6IDI5Jy+NEnBnyu1JNyA5ms4hRqS7W87qTOW9vxCJCEvBVQikBzgzkBxwHxmBUyWj7z4yLAWj0+jgWAZZmwMZNYCKKcRg26wHw3Cg2ZylK6XQmYrnpaR2JuM6pmDFKFDRPFVLQc+ow5ZCqCFeeyhWpPZzIMpSsGLYNjiOjqSlK6Hdc/IshQk/pgC4FqdyH3UYysWy3PUxEhZh1eI+XPcRtz5TKVezZbW7KJJZpzB5oLm7LY6uVByff/tyvW2WF7vYXmRpzsnoaU9i/2gGHLFIlHDw0fJrNFslKIXejiQGxzJ4abc7o3vVId157xmayKI9ma9jO1NxPVCNeMVfqkX2rK7iwWUTZSl0e6ugpQ0lpNxT5qJAXYFAs5/zPqc7hSvOOwbnHj8PQNBSmG0ohdGMjYmsHcg+AtyBLxEnpHM2DowHM54U6rhECCiscJuL9qSlO6K2xf2YyUTWKVi8FnajhS2oQu4j3ebCm/CqgLSSRc3A1Yy60wy0esc8+bDewPXSMYVxP6YAuMkJowFLIa2P8Y4V8wNLsLYnLK0YVcorM2MsW8hSKFyn0Jaw8oLGfd7EY1vEGgmlMr+nDaMZG0PjubwJgHDwIZaCcWPNnRE9c+/tdC2Fjbvd1bCONDpIqvTEofFcnvsIcJVCh+H3jxHpgSccUyiGCnSfdczcvCZpSjm0J/2YQndbPLReg7/ewUWvXYx+79jm4Ds7tCbBnpG0V6dgKAUrhp72JAbHswXdR9qNYsUC7irlKlKWgjnotSctHayfyEQUr3lfVLgiN1xb4ruPomMKKu1VxxSyqsNpyFIwGxR6x1g2JzgZUNaXijcpxZO0YnqRIWUpHNrXEVAoCjNzS1kKan1r01pSLktTQYfrWaJaX6uJh1lTUy7qN75tGvsQmgdRCsaNFXZNKHo8S2Hj7hHEY4Sls/0skqPnuQOF6sEfpjNlGVkqOVgxvz3GrM7SLQU1o3778fP0gGlaCoC3fGjCdx+ZVlBHMl82wE+5BZDnFtszkkEiFgvMxo+Y3YW+TtedMDieRcKivH0njMFRBe/7u1IYSeeQNVYkM6+3mQs/kctXCupc3rx8rit3gfWECwea3c+fefTcwPuUslWv6+wj45xUYd+yuV2BfXZo91HIUogb7iPvHI8MfVZhBod3Dk0gnbP9DqkJ01KIqmgOpeNG/P60+8gY0KMSKoqhGuVNR7EIzUPLK4WolhJhejsSGBzLuimJszoCM7KjDlFKIRcYYBWdybgePEYmsrCIdHpgOe6jT525DP9y/jF445Fz/M6Z3mO7aSlY/szczKzqLKDw1D5ilC/PnpF0Xh3AcQtnuAVRoxkMjmUxsz2ZN2NVbceH0zkd8FWWyYHxLLK54OI9gDugZb21CcwML4WyFI6Y04XNV52LEw/tAVA4phC2IIgID132JvzXhScC8K+ZSqpRMQdl/ZiWggqQL5sTHNg7iwSaVbaOGoBN69JErXmRtGJgBnYMTuilOINKMz/QHP7lRlkKfRExhULV3IWYL5ZCS9HySqFYqwBFb0cSOYfx9MAglvZ3BQbBow6ZAcAdAKNmal2puJ7xjaRzgcB2OYHmOTPa8MFTFyNmdC1VVoHpPjp24Uz8nxMX4KRDewMDekcqeiBQn+0y3FzJkLvI5NgFM9HbkcTwRA57RtKY2Z6vbN7uxSsA6CVO1Yx4cCyr3UTmoNeesJBzHEx4A3A4pqDkSOh6hXjguWJmewJE/mBrsqCn3beywoFsbz9DEZaC4oiQUmhLuJlfZkoqELx+amnMoyLiUEpeAHiVZ3EO7B/3LYVUvqWQKJCSetisjjz3FuB+r0lD8QOFrcYw3/3Ayfj825djVmcSyXhMLIUWoeUDzerGMltXh1GB1B0HJnDeCfMDr5lppVEztY5QuwnTb19O8ZqJskhU2qbpPprRlsB//tkJANzBicitmShkKZjZSGqgPayvA+t3ufGTcNbTnO429HnnvHnPaGQa5GFGkVbSW+JUvW9wLKPrFAIxBc99pIrZClkKajauYwchpTW7O4WbP34als+bEXm+5vFMimUfKcLnSkToTMZ1+qmZfaRQcYKoARvwlcKxC2biTwMHsHX/mC5AnCzQrHRCKh7DA589I3L/RITZXSlsGxxHT4dbs9CetPBfF56orYhCnHOs30p7/sw2sRRahJa3FNSNFQ6ympiD97Hzgz1izMElPGsFgK6UpWd8Yxk74NKJqj0oBX/hleAAGZ4BdiTjuoq2kMtA7cuNfbjvWdzvD+pRLSvUmg2b9oxidoFg+W/+9nW49kOvRiLuFrv1mpaCXrwn2MYhazt+m+kCMQU1KCrrK8rOO2FRT9FF6M39hJ+PZvIzrhb2tue1B1eY19zPPvI/e743iTDjUCZKKRw9bwasGOHprYP41A1Pesf1q6d1oDlikZ3JXKCq1beyojqSFt6xYj5OO6K/6OdM5ve0i6XQIrS8paB8yIUGNyA4Qzw+1Dgs6ALJv5ydIQskFiOct2I+HtqwZ0ryAv7sXlkK2n0U4b5a0t+JTXtGJ7UUulJxpOJuNe7C3nZYXtWyUlz/c8lpOmjZ663hkHMYh/V3RO5X9fm59entSMZjuhXG/rGMTgMNxxRyxqL2eZaCWhfZe1TXNWoxn3JQLiHV44g530q47zNvzGvwp+hMxQEvCcDMulJces6r8MV3HBPpWgR8pdDfmcT8njbc9MQ2ZGwH//3BkwNxiKX9Xbhw1SKcevgsvU3pgqjlW00W9nbg0U37dFfdjojf6WTM72nHH9ZP/TcrNA8trxSWz5uBme0JfObsowq+x7QUVO+br777eBw9b0Zg8FItlU06kvHAyhAWEb7pBTunSthS0O6jCGtAWQrhPvrhfXW1JUBEuOL8Y7FqcR9+9/wubNk7pt1HJxitvc1YyJJZ0TNgxZzuFPq7UujpNC0Fv05BoRZyKbRKmapoVkpKfbbYmgSTce8/vEEHwAFvJbWckxdPiOqJpTAtBTVIm1ZGMh4rqBAAXyn0dCSxsKcDW/eNozsVx1lelpS5n397V7AFiiqCtCKsORP1u7RibqFjuYFmwLWk94y4C0UVWgZUODhoeaUwsyOBp7/4lqLv6TUsBRVkft+r3XYUKpAIAIt682fNnUkLZtuYQq00yiGcktpexFJQbou9I9FtDnRMwZt5f/A1hwEA3vSqObj2oc2RykRZCkAwfhDFp958JP76DYej20uRHRzPwHbUgjRmTMG9Ltc/8nLkuSh/vVJSyn00FtGNtFQOnx0MHCdihAyCmUeTYbbYVr+NpHFexRQK4Gdlze5OaTfPMQtmlDTwlmMpAG6NR1vCKjnQHJYz57hV7L1lpFILzUfLxxRKQWWyrDKaoSnMwevQWYYPOB5DW8LN8U/GY9rtsagv2t1SDnkpqd7AFDUDfM/JC/HnpxyKv37D0sh9tRl1DSZnefUAD2/cm/cZU0ku6S+uFNqTFno73bTVnna3CHDr/jEs7G3XTfkA/zr+YvXWgFwKXdHsDbLL57uB5MmUUjmofUdlHhVCxYvM2IvpPopqZGhy1vK5+OGHVuKIOV36t3H8wp6Sjq3mGpMpEKVs9oyk8ddvWFqwv1YxVEJFuAurcPDR8pZCKVgxwj2fPl3na5sE3EeGpdCWsAIDgrsQjz2pu6UU2sKpqEUshbaEhX/9P8cV3JfZVdVk1WJXAb42IhiZsGKY0ea225hTJEAfpqcjgQNeZfjS2V04boEfn9nnxXZMuYNyqnN2H888ei5u+8TrcMz84llG5aCD2AXiL1H4lkLQZQS4KbDF1lFW733Tq1wFrAbvYxfMLPYRjWoLMpmloJRN1mZ8MLTCWqmomNvukTSWFai5EA4ORCmUyBEFUgrNDCJzgGxPWAHfsmp7cNis6VsKKsDsF68F/exl7Suhso+CP4W4FcOTnz+rYH1DX2cSqbhVln+5pyOJvaNpbNozitcv6w8sOvOekxfCdhz89pmdnlzB47728H589d3HB7K/Sh08S0V9leFOrMVQM2gz4K26nf75KYeWdfzTjujHm4+ei9eXmBWklcIk38HcMhR3Ifq9fewp4IYUDh7EfVRBzAGyPRntu108ibulFFRcQqVtqpntVHzF7QkLf3fmMpx73Ly813q9gT+KU5bMwhuOml3WsXo7Eli7fQjpnIOls7sCM/ITD+3Bt99/sm4HEa75SMZjeN+rF1U1yKnWOFg+v3Rl866TFgJAYBEa1VjxgleX56aZO6MN379oZck+e6XITztiVtH3xa0Y5s9sw8WnR7sQS0HFPvYMi/voYEcshSrRlrAifdOLK+E+ClkKqjq3WJZLIYgInz7ryLI/95UCiwEVo8erhAbyg7zK1fbTvzwFNz+xTbtSasm3338yMraDdxyfryALscLIylJccd4x+Nszjiir4eFU6OtM4t5/eENkgkOYP15+5rSO1dOegBUjiSm0AKIUKsCnzzpSD3LdqTiWzunCot72yCrp8MI6UyHc3kKlzIaXxWw0zAKuw73/b/r4a/GLx7bqeMic7jZ87A2H10U+s4K3HH73D28IVPt2puJ57rhqEVau1SIWI8zqTIpSaAFEKVSAvztzmf7/mYhF0AE3o2U0Y08aeCyF8NKMpx3ej+v/8hSdkdOo/NXrl2LrvnFs3jOqWyycdGgvTjq0d5JPNjZLZ3dhaY0G53rS35WSmEILIEqhRvzh0jdVbJ3bcCVzLEZltSyoFwkrhn97V+FMKKGx6fcK2ISDm4ZTCkR0DoBvALAAfJ+Zr6qzSBWhkgU/px4+C+86aUFJvmRBqBT9XUk8vHEPzrr6gXqLIgB441Gz8blzl0/+xjJpKKVARBaAbwE4C8AAgMeJ6FZmXldfyRqLRX0duPp9J9RbDKHFuODVhyKddcCQtZobgULLB0+XhlIKAFYB2MDMLwEAEd0A4HwAohQEoc6sWtIXWdUvHFw0Wp3CAgBbjecD3jYNEV1MRKuJaPXu3btrKpwgCMLBTqMphajUnICtyszXMPNKZl45e3Z5xVOCIAhCcRpNKQwAMMtAFwLYXidZBEEQWo5GUwqPA1hGREuIKAngAgC31lkmQRCElqGhAs3MnCOivwVwJ9yU1B8y89o6iyUIgtAyNJRSAABm/i2A39ZbDkEQhFak0dxHgiAIQh0RpSAIgiBoiLl5qxOJaDeALdPYRT+APRUSpxo0unyAyFgJGl0+QGSsFI0i42HMHJnT39RKYboQ0WpmXllvOQrR6PIBImMlaHT5AJGxUjSDjOI+EgRBEDSiFARBEARNqyuFa+otwCQ0unyAyFgJGl0+QGSsFA0vY0vHFARBEIQgrW4pCIIgCAaiFARBEARNSyoFIjqHiF4gog1EdFmdZFhERPcR0XNEtJaIPult7yOiu4lovffYa3zmck/mF4jo7BrKahHRk0R0WyPKSEQ9RPQrInreu56nNpKMRPT33nf8LBH9nIjaGkE+IvohEe0iomeNbWXLRUQnE9Ez3mvfJKKoFviVku9r3vf8JyK6mYh66iVfIRmN1z5DRExE/ca2mstYNszcUn9wG+1tBLAUQBLA0wCW10GOeQBO8v7vBvAigOUAvgrgMm/7ZQC+4v2/3JM1BWCJdw5WjWT9NICfAbjNe95QMgK4DsBfev8nAfQ0ioxwF4naBKDde34jgA81gnwATgdwEoBnjW1lywXgMQCnwl0P5X8BvLWK8r0FQNz7/yv1lK+QjN72RXAbe24B0F9PGcv9a0VLQS/5ycwZAGrJz5rCzDuY+Qnv/2EAz8EdQM6HO8jBe3yn9//5AG5g5jQzbwKwAe65VBUiWgjgXADfNzY3jIxENAPujfkDAGDmDDMPNpKMcBtPthNRHEAH3DVC6i4fMz8IYF9oc1lyEdE8ADOY+WF2R7cfG5+puHzMfBcz57ynj8Bdc6Uu8hWS0eM/AfwjgouE1UXGcmlFpTDpkp+1hogWAzgRwKMA5jLzDsBVHADmeG+rl9xfh/vjdoxtjSTjUgC7AVzrubi+T0SdjSIjM28D8O8AXgawA8ABZr6rUeSLoFy5Fnj/h7fXgo/AnVUDDSQfEZ0HYBszPx16qWFkLEYrKoVJl/ysJUTUBeDXAD7FzEPF3hqxrapyE9HbAexi5jWlfiRiW7WvbRyu+f4dZj4RwChct0chaiqj55M/H667YD6ATiL6QLGPRGxrhLzxQnLVRV4i+hyAHIDr1aYCctT6++4A8DkAX4h6uYAsDfWdt6JSaJglP4koAVchXM/MN3mbX/HMSXiPu7zt9ZD7NADnEdFmuG62NxHRTxtMxgEAA8z8qPf8V3CVRKPI+GYAm5h5NzNnAdwE4LUNJF+YcuUagO/CMbdXDSK6CMDbAbzfc7c0knyHw50APO3dNwsBPEFEhzSQjEVpRaXQEEt+etkFPwDwHDNfbbx0K4CLvP8vAnCLsf0CIkoR0RIAy+AGp6oGM1/OzAuZeTHc6/Q7Zv5Ag8m4E8BWIjrK23QmgHUNJOPLAF5DRB3ed34m3PhRo8gXpiy5PBfTMBG9xju/vzA+U3GI6BwAlwI4j5nHQnLXXT5mfoaZ5zDzYu++GYCbULKzUWSclHpFuOv5B+BtcLN9NgL4XJ1keB1cE/FPAJ7y/t4GYBaAewGs9x77jM98zpP5BdQ4OwHAG+FnHzWUjABOALDau5b/A6C3kWQEcAWA5wE8C+AncLNP6i4fgJ/DjXNk4Q5eH52KXABWeue2EcD/g9cpoUrybYDrl1f3zHfrJV8hGUOvb4aXfVQvGcv9kzYXgiAIgqYV3UeCIAhCAUQpCIIgCBpRCoIgCIJGlIIgCIKgEaUgCIIgaEQpCEKZkNuV9eNFXv9jCfsYqaxUglAZRCkIQvn0AMhTCkRkAQAzv7bWAglCpYjXWwBBaEKuAnA4ET0Ft2hpBG4B0wkAlhPRCDN3eX2tboFbTJcA8E/MXL9KVUEoASleE4Qy8bra3sbMxxLRGwHcDuBYdtshw1AKcQAdzDzkLbTyCIBlzMzqPXU6BUEoiFgKgjB9HlMKIQQB+FciOh1u6/EFAOYC2FlL4QShHEQpCML0GS2w/f0AZgM4mZmzXtfMtppJJQhTQALNglA+w3CXUJ2MmXDXo8gS0RkADquuWIIwfcRSEIQyYea9RPSQt1j7OIBXCrz1egC/IaLVcDt6Pl8jEQVhykigWRAEQdCI+0gQBEHQiFIQBEEQNKIUBEEQBI0oBUEQBEEjSkEQBEHQiFIQBEEQNKIUBEEQBM3/B3DvXuOrOjlQAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ax = df['steps_in_trial'].plot()\n", + "ax.set_xlabel(\"trial\")\n", + "ax.set_ylabel(\"steps for solution\")\n", + "ax.legend([\"steps\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The best action: 0\n", + "1 [1e-06, 1280.3139057920484, 1e-06, 1e-06]\n", + "The best action: 1\n", + "1 [1e-06, 1022.2228432857141, 189.3497017167734, 1e-06]\n", + "The best action: 1\n", + "2 [1e-06, 1e-06, 885.2147964418139, 189.94004576921154]\n", + "The best action: 2\n", + "2 [1e-06, 1e-06, 853.0610656271485, 1e-06]\n", + "The best action: 2\n", + "3 [360.5718274400849, 1e-06, 1e-06, 921.9530187832484]\n", + "The best action: 3\n", + "3 [501.97477909987873, 504.59087383792325, 1e-06, 1100.0509562769134]\n" + ] + } + ], + "source": [ + "moves = [\n", + " {'action': 0, 'exp_state': '1001'}, # 3 -> 0\n", + " {'action': 1, 'exp_state': '1010'}, # 0 -> 1\n", + " {'action': 1, 'exp_state': '1100'}, # 1 -> 2\n", + " {'action': 2, 'exp_state': '0101'}, # 2 -> 5\n", + " {'action': 2, 'exp_state': '0110'}, # 5 -> 8\n", + " {'action': 3, 'exp_state': '0010'}, # 8 -> 7\n", + "]\n", + "\n", + "for step in moves:\n", + " match_set = population.generate_match_set(step['exp_state'], 0)\n", + " print(f\"The best action: {step['action']}\")\n", + " prediction = match_set.prediction_array\n", + " print(f\"{prediction.index(max(prediction))} {prediction}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The best action: 0\n", + "Cond:1001 - Act:1 - effect:1000 - Num:23 [fit: 1.000, exp: 6536.00, pred: 1280.314, error:981.05]\n", + "Cond:1001 - Act:0 - effect:0101 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "Cond:1001 - Act:2 - effect:1001 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "Cond:1001 - Act:3 - effect:1100 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "The best action: 1\n", + "Cond:1010 - Act:1 - effect:0011 - Num:28 [fit: 1.000, exp: 5432.00, pred: 1022.223, error:961.05]\n", + "Cond:1010 - Act:2 - effect:0011 - Num:1 [fit: 1.000, exp: 4613.00, pred: 189.350, error:951.61]\n", + "Cond:1010 - Act:3 - effect:0010 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "Cond:1010 - Act:0 - effect:1101 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "The best action: 1\n", + "Cond:1100 - Act:2 - effect:1110 - Num:26 [fit: 1.000, exp: 4562.00, pred: 885.215, error:941.05]\n", + "Cond:1100 - Act:3 - effect:1101 - Num:1 [fit: 1.000, exp: 615.00, pred: 189.940, error:1503.88]\n", + "Cond:1100 - Act:1 - effect:1101 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "Cond:1100 - Act:0 - effect:1001 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "The best action: 2\n", + "Cond:0101 - Act:2 - effect:0001 - Num:24 [fit: 1.000, exp: 3559.00, pred: 853.061, error:921.05]\n", + "Cond:0101 - Act:1 - effect:0101 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "Cond:0101 - Act:3 - effect:1010 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "Cond:0101 - Act:0 - effect:1110 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "The best action: 2\n", + "Cond:0110 - Act:0 - effect:0001 - Num:1 [fit: 1.000, exp: 511.00, pred: 360.572, error:1440.44]\n", + "Cond:0110 - Act:3 - effect:1100 - Num:23 [fit: 1.000, exp: 752.00, pred: 921.953, error:901.05]\n", + "Cond:0110 - Act:2 - effect:0101 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "Cond:0110 - Act:1 - effect:1110 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n", + "The best action: 3\n", + "Cond:0010 - Act:3 - effect:0000 - Num:24 [fit: 1.000, exp: 786.00, pred: 1100.051, error:881.05]\n", + "Cond:0010 - Act:0 - effect:0100 - Num:2 [fit: 0.920, exp: 24.00, pred: 501.975, error:1253.14]\n", + "Cond:0010 - Act:1 - effect:1000 - Num:1 [fit: 0.344, exp: 4.00, pred: 504.591, error:250.05]\n", + "Cond:0010 - Act:2 - effect:0001 - Num:1 [fit: 0.000, exp: 0.00, pred: 0.000, error:0.00]\n" + ] + } + ], + "source": [ + "for step in moves:\n", + " match_set = population.generate_match_set(step['exp_state'], 0)\n", + " print(f\"The best action: {step['action']}\")\n", + " for cl in match_set:\n", + " print(cl)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.10" + } + }, + "nbformat": 4, + "nbformat_minor": 1 +} diff --git a/XCS_Experiments/XNCS_woods.ipynb b/XCS_Experiments/XNCS_woods.ipynb index 0dc4a5e..c7a23c5 100644 --- a/XCS_Experiments/XNCS_woods.ipynb +++ b/XCS_Experiments/XNCS_woods.ipynb @@ -22,12 +22,13 @@ "output_type": "stream", "text": [ "This is how maze looks like:\n", + "['O', 'O', '.', '.', '.', '.', '.', 'O']\n", "\n", + "\u001b[37m□\u001b[0m \u001b[36mX\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[36mX\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n" + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n" ] } ], @@ -40,6 +41,7 @@ "maze = gym.make('Woods1-v0')\n", "print(\"This is how maze looks like:\")\n", "situation = maze.reset()\n", + "print(situation)\n", "maze.render()\n" ] }, @@ -68,9 +70,10 @@ " deletion_threshold=25,\n", " delta=0.1,\n", " initial_error=0.01,\n", + " epsilon_0=0.01,\n", " metrics_trial_frequency=50,\n", " covering_wildcard_chance = 0.9,\n", - " user_metrics_collector_fcn=xcs_maze_metrics,\n", + " user_metrics_collector_fcn=xncs_metrics,\n", " lmc=10,\n", " lem=200\n", " )\n" @@ -85,195 +88,1475 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 12, 'reward': [0, 0, 0, 0, 0, 2.1332401280982545e-40, 1.9720619850863863e-40, 200.0], 'numerosity': 51, 'population': 51, 'average_specificity': 1.8627450980392157, 'fraction_accuracy': 0.16488095238095238}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 9, 'reward': [3.242513785040816, 4.007511220460857, 3.755400723031541, 5.718705424140142, 203.99357594410674, 4.16502083955891, 131.8650716024955, 251.6666137052352], 'numerosity': 299, 'population': 133, 'average_specificity': 1.7759197324414715, 'fraction_accuracy': 0.025498295364304785}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 6, 'reward': [12.027011313229846, 5.781253374659476, 2.089086454040064, 1.0849649364456135, 1.03967442216596, 1.432177796361129, 12.922073032888735, 746.5488957150206], 'numerosity': 315, 'population': 134, 'average_specificity': 1.7333333333333334, 'fraction_accuracy': 0.035467335107153226}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 9, 'reward': [1.8021887695852694, 0.1641835547578232, 1.1445634273693566, 99.85939727754356, 406.66430063060625, 103.90841179260266, 1.0742443230729424, 47.527137949315595], 'numerosity': 317, 'population': 134, 'average_specificity': 1.7602523659305993, 'fraction_accuracy': 0.02326778365233266}\n", - "INFO:lcs.agents.Agent:{'trial': 1200, 'steps_in_trial': 6, 'reward': [0.02118622641878736, 0.05523429811698611, 0.38798854673609356, 14.017161035528767, 1.2197640077544785, 408.1563418422502, 27.089362059349675, 65.5861521511334], 'numerosity': 321, 'population': 134, 'average_specificity': 1.7414330218068537, 'fraction_accuracy': 0.05446225764374553}\n", - "INFO:lcs.agents.Agent:{'trial': 1500, 'steps_in_trial': 2, 'reward': [0.022086023009902214, 0.1190131480781886, 0.0020142729099989504, 1.6525426882568843, 424.7237460501094, 0.014007758931381491, 0.18765529185525254, 55.564970287087704], 'numerosity': 321, 'population': 134, 'average_specificity': 1.7414330218068537, 'fraction_accuracy': 0.06032217360179199}\n", - "INFO:lcs.agents.Agent:{'trial': 1800, 'steps_in_trial': 4, 'reward': [0.06069980692144186, 0.0008488812551224147, 4.315305232314489, 0.2784780355196849, 456.57185462747236, 0.031183833875812528, 6.363499965879443, 4.947467737164551], 'numerosity': 321, 'population': 134, 'average_specificity': 1.7414330218068537, 'fraction_accuracy': 0.05926564718646832}\n", - "INFO:lcs.agents.Agent:{'trial': 2100, 'steps_in_trial': 4, 'reward': [0.04884168449638756, 0.5257956823098625, 1.0133160350464565, 0.28397557101834386, 563.6133328804822, 167.07011388526234, 4.079628146818933, 6.862163275593859], 'numerosity': 321, 'population': 134, 'average_specificity': 1.7414330218068537, 'fraction_accuracy': 0.054242116467880165}\n", - "INFO:lcs.agents.Agent:{'trial': 2400, 'steps_in_trial': 5, 'reward': [0.08584597690007044, 0.043975840888732826, 0.9437512717461756, 0.27830103675600903, 416.11111800012554, 85.6097915046948, 3.401197793958021, 0.7385734955703511], 'numerosity': 321, 'population': 134, 'average_specificity': 1.7414330218068537, 'fraction_accuracy': 0.06907252860499821}\n", - "INFO:lcs.agents.Agent:{'trial': 2700, 'steps_in_trial': 3, 'reward': [0.008170045034242509, 0.020873399127417, 0.11927426358451676, 0.4327178833421425, 578.8359059450786, 0.04433941231217403, 1.1922925799310937, 14.710237845010154], 'numerosity': 321, 'population': 134, 'average_specificity': 1.7414330218068537, 'fraction_accuracy': 0.08781539827916979}\n" + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 27, 'reward': 1000.0, 'perf_time': 0.020669199999999943, 'numerosity': 90, 'population': 90, 'average_specificity': 2.466666666666667, 'fraction_accuracy': 1.0}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 2, 'reward': 1504.1706685827796, 'perf_time': 0.014677700000000016, 'numerosity': 1354, 'population': 772, 'average_specificity': 15.059084194977844, 'fraction_accuracy': 0.85}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 1, 'reward': 1716.2526581377579, 'perf_time': 0.015619799999999628, 'numerosity': 1800, 'population': 1125, 'average_specificity': 15.297777777777778, 'fraction_accuracy': 0.92}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 7, 'reward': 1107.364234798143, 'perf_time': 0.09510359999999807, 'numerosity': 1800, 'population': 1182, 'average_specificity': 15.864444444444445, 'fraction_accuracy': 0.8}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 3, 'reward': 1374.3206969364635, 'perf_time': 0.044094799999996326, 'numerosity': 1800, 'population': 1203, 'average_specificity': 19.039444444444445, 'fraction_accuracy': 0.84}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 22, 'reward': 1000.5341893297839, 'perf_time': 0.28948049999999625, 'numerosity': 1800, 'population': 1240, 'average_specificity': 20.387777777777778, 'fraction_accuracy': 0.83}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 22, 'reward': 1000.5429684150289, 'perf_time': 0.29427820000000793, 'numerosity': 1800, 'population': 1232, 'average_specificity': 18.446666666666665, 'fraction_accuracy': 0.83}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 22, 'reward': 1000.5516527850624, 'perf_time': 0.2890648999999996, 'numerosity': 1800, 'population': 1252, 'average_specificity': 21.537777777777777, 'fraction_accuracy': 0.85}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 39, 'reward': 1000.0015865288192, 'perf_time': 0.5386795999999947, 'numerosity': 1800, 'population': 1258, 'average_specificity': 21.477777777777778, 'fraction_accuracy': 0.88}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 9, 'reward': 1070.094585946123, 'perf_time': 0.1274279000000007, 'numerosity': 1800, 'population': 1283, 'average_specificity': 22.336666666666666, 'fraction_accuracy': 0.82}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 9, 'reward': 1058.2906212386695, 'perf_time': 0.08306730000001039, 'numerosity': 1800, 'population': 1325, 'average_specificity': 21.15, 'fraction_accuracy': 0.79}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 4, 'reward': 1374.485478197999, 'perf_time': 0.06570990000000165, 'numerosity': 1800, 'population': 1335, 'average_specificity': 21.642222222222223, 'fraction_accuracy': 0.62}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 2, 'reward': 1527.071939665981, 'perf_time': 0.02592799999999329, 'numerosity': 1800, 'population': 1315, 'average_specificity': 19.504444444444445, 'fraction_accuracy': 0.33}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 1, 'reward': 1779.8641441312814, 'perf_time': 0.019198799999998073, 'numerosity': 1800, 'population': 1335, 'average_specificity': 19.830555555555556, 'fraction_accuracy': 0.16}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 11, 'reward': 1023.7865410505106, 'perf_time': 0.13085799999998926, 'numerosity': 1800, 'population': 1335, 'average_specificity': 19.875555555555554, 'fraction_accuracy': 0.55}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 4, 'reward': 1368.796388171401, 'perf_time': 0.045051099999994904, 'numerosity': 1800, 'population': 1343, 'average_specificity': 20.444444444444443, 'fraction_accuracy': 0.34}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 7, 'reward': 1093.1306024526373, 'perf_time': 0.07792380000000776, 'numerosity': 1800, 'population': 1332, 'average_specificity': 20.11611111111111, 'fraction_accuracy': 0.66}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 3, 'reward': 1532.020275474561, 'perf_time': 0.03624659999999835, 'numerosity': 1800, 'population': 1336, 'average_specificity': 19.378333333333334, 'fraction_accuracy': 0.6}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 3, 'reward': 1477.9076955273674, 'perf_time': 0.03414960000000633, 'numerosity': 1800, 'population': 1319, 'average_specificity': 18.858888888888888, 'fraction_accuracy': 0.17}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 3, 'reward': 1486.1341013610477, 'perf_time': 0.048599999999993315, 'numerosity': 1800, 'population': 1318, 'average_specificity': 19.534444444444443, 'fraction_accuracy': 0.52}\n" ] } ], "source": [ "agent = XNCS(cfg)\n", - "explore_population, explore_metrics = agent.explore(maze, 3000, True)" + "explore_population, explore_metrics = agent.explore(maze, 1000, False)\n", + "explore_population, exploit_metrics = agent.exploit(maze, 1000)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { - "scrolled": false + "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "Cond:.O...... - Act:0 - Num:3 [fit: 0.000, exp: 33.00, pred: 212.399]\n", - "Cond:.O...#.. - Act:1 - Num:3 [fit: 0.000, exp: 34.00, pred: 197.219]\n", - "Cond:#O.#.#.. - Act:2 - Num:3 [fit: 0.000, exp: 113.00, pred: 233.260]\n", - "Cond:#O...O.. - Act:3 - Num:3 [fit: 0.151, exp: 10.00, pred: 304.418]\n", - "Cond:.O.#..#. - Act:4 - Num:3 [fit: 0.000, exp: 121.00, pred: 207.194]\n", - "Cond:.O.##.#. - Act:5 - Num:3 [fit: 0.000, exp: 187.00, pred: 217.179]\n", - "Cond:.O...... - Act:6 - Num:3 [fit: 0.000, exp: 27.00, pred: 196.817]\n", - "Cond:.O..#... - Act:7 - Num:3 [fit: 0.000, exp: 329.00, pred: 322.857]\n", - "Cond:..##..#O - Act:0 - Num:3 [fit: 0.000, exp: 57.00, pred: 206.864]\n", - "Cond:......OO - Act:1 - Num:1 [fit: 0.000, exp: 50.00, pred: 205.185]\n", - "Cond:......OO - Act:2 - Num:1 [fit: 0.000, exp: 72.00, pred: 203.155]\n", - "Cond:.#....OO - Act:3 - Num:3 [fit: 0.000, exp: 116.00, pred: 210.454]\n", - "Cond:.....#OO - Act:4 - Num:2 [fit: 0.000, exp: 591.00, pred: 424.178]\n", - "Cond:..##...O - Act:5 - Num:3 [fit: 0.001, exp: 415.00, pred: 295.250]\n", - "Cond:#...#.O# - Act:6 - Num:3 [fit: 0.001, exp: 26.00, pred: 195.983]\n", - "Cond:#.#..#OO - Act:7 - Num:3 [fit: 0.000, exp: 46.00, pred: 209.426]\n", - "Cond:O...#.#O - Act:0 - Num:3 [fit: 0.000, exp: 41.00, pred: 189.986]\n", - "Cond:O#.....# - Act:1 - Num:3 [fit: 0.000, exp: 101.00, pred: 188.495]\n", - "Cond:O#.##.#O - Act:2 - Num:3 [fit: 0.000, exp: 63.00, pred: 207.539]\n", - "Cond:#..#...O - Act:3 - Num:2 [fit: 0.000, exp: 190.00, pred: 241.831]\n", - "Cond:###....O - Act:4 - Num:3 [fit: 0.000, exp: 1747.00, pred: 383.607]\n", - "Cond:#..#...O - Act:5 - Num:3 [fit: 0.001, exp: 447.00, pred: 295.250]\n", - "Cond:O....#.O - Act:6 - Num:3 [fit: 0.000, exp: 70.00, pred: 193.808]\n", - "Cond:#......O - Act:7 - Num:3 [fit: 0.000, exp: 137.00, pred: 219.643]\n", - "Cond:OO.#...O - Act:0 - Num:3 [fit: 0.000, exp: 33.00, pred: 202.697]\n", - "Cond:O#....#O - Act:3 - Num:3 [fit: 0.000, exp: 152.00, pred: 210.722]\n", - "Cond:OO.....# - Act:4 - Num:1 [fit: 0.000, exp: 1592.00, pred: 556.146]\n", - "Cond:OO#O...# - Act:5 - Num:3 [fit: 0.092, exp: 5.00, pred: 382.240]\n", - "Cond:O#.....O - Act:6 - Num:2 [fit: 0.000, exp: 157.00, pred: 220.369]\n", - "Cond:OO.....O - Act:7 - Num:1 [fit: 0.000, exp: 220.00, pred: 213.397]\n", - "Cond:OO...#.. - Act:0 - Num:3 [fit: 0.000, exp: 36.00, pred: 192.817]\n", - "Cond:OO###... - Act:2 - Num:2 [fit: 0.001, exp: 65.00, pred: 239.638]\n", - "Cond:OO##.#.. - Act:5 - Num:3 [fit: 0.000, exp: 68.00, pred: 203.744]\n", - "Cond:OO..#..# - Act:6 - Num:3 [fit: 0.000, exp: 145.00, pred: 217.292]\n", - "Cond:#O.....# - Act:7 - Num:2 [fit: 0.000, exp: 807.00, pred: 322.857]\n", - "Cond:.OO..... - Act:0 - Num:1 [fit: 0.000, exp: 30.00, pred: 234.299]\n", - "Cond:#OO.#... - Act:1 - Num:3 [fit: 0.000, exp: 46.00, pred: 228.550]\n", - "Cond:.OO#.#.# - Act:2 - Num:3 [fit: 0.000, exp: 90.00, pred: 175.246]\n", - "Cond:.OO..... - Act:3 - Num:1 [fit: 0.000, exp: 322.00, pred: 209.298]\n", - "Cond:.OO..... - Act:4 - Num:3 [fit: 0.000, exp: 267.00, pred: 386.580]\n", - "Cond:.OO.#.#. - Act:5 - Num:3 [fit: 0.000, exp: 121.00, pred: 209.443]\n", - "Cond:#OO#.... - Act:6 - Num:3 [fit: 0.000, exp: 186.00, pred: 217.089]\n", - "Cond:#OO..... - Act:7 - Num:3 [fit: 0.000, exp: 176.00, pred: 215.273]\n", - "Cond:#..##OOF - Act:0 - Num:3 [fit: 0.001, exp: 25.00, pred: 207.901]\n", - "Cond:.....OOF - Act:1 - Num:1 [fit: 0.000, exp: 58.00, pred: 214.040]\n", - "Cond:.....#O# - Act:2 - Num:3 [fit: 0.000, exp: 184.00, pred: 204.337]\n", - "Cond:.....OOF - Act:3 - Num:3 [fit: 0.000, exp: 130.00, pred: 207.945]\n", - "Cond:.#...#OF - Act:4 - Num:3 [fit: 0.000, exp: 221.00, pred: 209.629]\n", - "Cond:.###.OOF - Act:5 - Num:3 [fit: 0.000, exp: 35.00, pred: 209.458]\n", - "Cond:.....OOF - Act:6 - Num:3 [fit: 0.000, exp: 86.00, pred: 205.525]\n", - "Cond:....#OOF - Act:7 - Num:3 [fit: 0.000, exp: 379.00, pred: 233.029]\n", - "Cond:.....#.O - Act:1 - Num:2 [fit: 0.000, exp: 31.00, pred: 207.023]\n", - "Cond:........ - Act:2 - Num:3 [fit: 0.180, exp: 2.00, pred: 324.083]\n", - "Cond:.....#.O - Act:3 - Num:3 [fit: 0.000, exp: 146.00, pred: 255.747]\n", - "Cond:....#..O - Act:6 - Num:3 [fit: 0.000, exp: 35.00, pred: 204.770]\n", - "Cond:..#..F.. - Act:0 - Num:3 [fit: 0.000, exp: 62.00, pred: 231.597]\n", - "Cond:#..#.F.. - Act:1 - Num:3 [fit: 0.000, exp: 30.00, pred: 232.595]\n", - "Cond:.#.#.F#. - Act:2 - Num:3 [fit: 0.000, exp: 39.00, pred: 206.278]\n", - "Cond:.#O.#F.# - Act:3 - Num:3 [fit: 0.092, exp: 5.00, pred: 265.712]\n", - "Cond:..##.F.. - Act:4 - Num:3 [fit: 0.000, exp: 695.00, pred: 303.338]\n", - "Cond:.....F.. - Act:5 - Num:3 [fit: 0.000, exp: 231.00, pred: 233.854]\n", - "Cond:....#F.. - Act:6 - Num:3 [fit: 0.020, exp: 172.00, pred: 271.108]\n", - "Cond:#....F.# - Act:7 - Num:3 [fit: 0.000, exp: 264.00, pred: 271.796]\n", - "Cond:.#.FO#.. - Act:0 - Num:1 [fit: 0.000, exp: 137.00, pred: 223.777]\n", - "Cond:##.FOO#. - Act:1 - Num:3 [fit: 0.000, exp: 85.00, pred: 227.844]\n", - "Cond:#..FO#.. - Act:2 - Num:2 [fit: 0.000, exp: 568.00, pred: 231.811]\n", - "Cond:.#.F###. - Act:3 - Num:3 [fit: 0.000, exp: 217.00, pred: 227.316]\n", - "Cond:...FOO.. - Act:4 - Num:3 [fit: 0.000, exp: 293.00, pred: 218.361]\n", - "Cond:#..FOO.. - Act:5 - Num:3 [fit: 0.000, exp: 215.00, pred: 215.260]\n", - "Cond:#..FO#.. - Act:6 - Num:3 [fit: 0.000, exp: 43.00, pred: 227.930]\n", - "Cond:..#FOO.. - Act:7 - Num:3 [fit: 0.000, exp: 373.00, pred: 401.396]\n", - "Cond:...O#..# - Act:0 - Num:3 [fit: 0.000, exp: 365.00, pred: 263.844]\n", - "Cond:#.##O... - Act:1 - Num:3 [fit: 0.000, exp: 560.00, pred: 192.944]\n", - "Cond:#..OO... - Act:2 - Num:3 [fit: 0.000, exp: 56.00, pred: 218.966]\n", - "Cond:..#O##.. - Act:3 - Num:3 [fit: 0.000, exp: 292.00, pred: 290.921]\n", - "Cond:...OO..# - Act:4 - Num:3 [fit: 0.000, exp: 124.00, pred: 206.277]\n", - "Cond:..#O#..# - Act:5 - Num:3 [fit: 0.000, exp: 654.00, pred: 224.385]\n", - "Cond:...OO... - Act:6 - Num:3 [fit: 0.000, exp: 131.00, pred: 408.461]\n", - "Cond:...OO... - Act:7 - Num:3 [fit: 0.000, exp: 224.00, pred: 212.393]\n", - "Cond:.#...#F. - Act:0 - Num:1 [fit: 0.000, exp: 50.00, pred: 217.402]\n", - "Cond:.....OF. - Act:1 - Num:2 [fit: 0.000, exp: 78.00, pred: 215.805]\n", - "Cond:#....#F. - Act:2 - Num:3 [fit: 0.000, exp: 33.00, pred: 220.131]\n", - "Cond:###.#OF# - Act:3 - Num:3 [fit: 0.000, exp: 142.00, pred: 215.050]\n", - "Cond:..###OF. - Act:4 - Num:3 [fit: 0.000, exp: 220.00, pred: 230.335]\n", - "Cond:##...OF. - Act:5 - Num:3 [fit: 0.000, exp: 82.00, pred: 225.259]\n", - "Cond:..#..OF# - Act:6 - Num:3 [fit: 0.000, exp: 42.00, pred: 219.861]\n", - "Cond:##...OF. - Act:7 - Num:3 [fit: 0.000, exp: 979.00, pred: 247.994]\n", - "Cond:....FO.. - Act:0 - Num:3 [fit: 0.000, exp: 100.00, pred: 284.493]\n", - "Cond:.....O## - Act:1 - Num:2 [fit: 0.000, exp: 139.00, pred: 207.795]\n", - "Cond:.#..FO.. - Act:2 - Num:1 [fit: 0.000, exp: 61.00, pred: 225.174]\n", - "Cond:....FO.. - Act:3 - Num:3 [fit: 0.000, exp: 123.00, pred: 235.353]\n", - "Cond:....FO.. - Act:4 - Num:2 [fit: 0.000, exp: 2092.00, pred: 313.056]\n", - "Cond:....F#.. - Act:5 - Num:3 [fit: 0.000, exp: 142.00, pred: 224.601]\n", - "Cond:....FO.. - Act:6 - Num:3 [fit: 0.000, exp: 144.00, pred: 231.881]\n", - "Cond:....F##. - Act:7 - Num:3 [fit: 0.000, exp: 232.00, pred: 259.438]\n", - "Cond:#..O..#. - Act:0 - Num:1 [fit: 0.000, exp: 62.00, pred: 230.028]\n", - "Cond:...O#... - Act:1 - Num:1 [fit: 0.000, exp: 669.00, pred: 192.304]\n", - "Cond:#..O.... - Act:2 - Num:1 [fit: 0.000, exp: 44.00, pred: 194.650]\n", - "Cond:##.#..#. - Act:3 - Num:3 [fit: 0.000, exp: 520.00, pred: 290.287]\n", - "Cond:..#O.... - Act:4 - Num:2 [fit: 0.000, exp: 441.00, pred: 562.066]\n", - "Cond:...O.... - Act:5 - Num:1 [fit: 0.000, exp: 154.00, pred: 247.516]\n", - "Cond:..#O.... - Act:6 - Num:2 [fit: 0.000, exp: 90.00, pred: 217.167]\n", - "Cond:#..O#... - Act:7 - Num:3 [fit: 0.000, exp: 383.00, pred: 202.241]\n", - "Cond:..#O...# - Act:0 - Num:3 [fit: 0.000, exp: 103.00, pred: 237.159]\n", - "Cond:.#OO.... - Act:1 - Num:1 [fit: 0.000, exp: 56.00, pred: 193.538]\n", - "Cond:..#O.... - Act:2 - Num:1 [fit: 0.000, exp: 72.00, pred: 199.222]\n", - "Cond:#.OO.... - Act:3 - Num:1 [fit: 0.000, exp: 87.00, pred: 225.191]\n", - "Cond:..OO.#.. - Act:5 - Num:1 [fit: 0.000, exp: 203.00, pred: 232.427]\n", - "Cond:..O##... - Act:7 - Num:1 [fit: 0.000, exp: 356.00, pred: 259.427]\n", - "Cond:.#OO..#. - Act:0 - Num:1 [fit: 0.000, exp: 80.00, pred: 208.204]\n", - "Cond:#OOO...# - Act:2 - Num:1 [fit: 0.000, exp: 58.00, pred: 190.889]\n", - "Cond:.OOO...# - Act:3 - Num:3 [fit: 0.000, exp: 81.00, pred: 205.885]\n", - "Cond:#.#O##.# - Act:5 - Num:3 [fit: 0.000, exp: 531.00, pred: 224.385]\n", - "Cond:.OOO.... - Act:6 - Num:3 [fit: 0.000, exp: 126.00, pred: 210.514]\n", - "Cond:.OOO.... - Act:7 - Num:3 [fit: 0.000, exp: 309.00, pred: 211.958]\n", - "Cond:O#.##... - Act:3 - Num:3 [fit: 0.000, exp: 168.00, pred: 222.932]\n", - "Cond:.O#.#... - Act:3 - Num:3 [fit: 0.000, exp: 520.00, pred: 194.396]\n", - "Cond:O#.....O - Act:5 - Num:1 [fit: 0.000, exp: 357.00, pred: 212.179]\n", - "Cond:O#.....O - Act:7 - Num:1 [fit: 0.000, exp: 296.00, pred: 202.552]\n", - "Cond:#..FO#.. - Act:0 - Num:1 [fit: 0.000, exp: 136.00, pred: 223.777]\n", - "Cond:.......O - Act:2 - Num:1 [fit: 0.000, exp: 28.00, pred: 209.111]\n", - "Cond:###.#.OO - Act:5 - Num:3 [fit: 0.000, exp: 46.00, pred: 203.237]\n", - "Cond:....FO.. - Act:1 - Num:3 [fit: 0.000, exp: 66.00, pred: 234.714]\n", - "Cond:#O.....# - Act:4 - Num:1 [fit: 0.000, exp: 1692.00, pred: 556.146]\n", - "Cond:#..#...O - Act:0 - Num:1 [fit: 0.000, exp: 62.00, pred: 222.786]\n", - "Cond:#OOO..#. - Act:4 - Num:2 [fit: 0.000, exp: 275.00, pred: 460.740]\n", - "Cond:..#O.... - Act:5 - Num:1 [fit: 0.000, exp: 262.00, pred: 231.964]\n", - "Cond:.....#OO - Act:1 - Num:1 [fit: 0.000, exp: 45.00, pred: 205.184]\n", - "Cond:.....#.. - Act:3 - Num:3 [fit: 0.000, exp: 88.00, pred: 231.717]\n", - "Cond:OO###... - Act:6 - Num:1 [fit: 0.000, exp: 44.00, pred: 208.692]\n", - "Cond:....FO.. - Act:0 - Num:1 [fit: 0.000, exp: 70.00, pred: 284.493]\n", - "Cond:.....#.O - Act:4 - Num:1 [fit: 0.000, exp: 561.00, pred: 363.509]\n", - "Cond:#OOO..#. - Act:7 - Num:1 [fit: 0.000, exp: 227.00, pred: 211.958]\n", - "Cond:..#O.... - Act:4 - Num:1 [fit: 0.000, exp: 359.00, pred: 562.066]\n" + "Cond:#..#.O#. - Act:6 - effect:....OOO. - Num:5 [fit: 0.047, exp: 484.00, pred: 1309.630, error:301.0095151762131]acc: 0.9090909090909091\n", + "Cond:..#..O.. - Act:2 - effect:OOFOO... - Num:1 [fit: 0.010, exp: 0.00, pred: 402.488, error:0.0]acc: None\n", + "Cond:.##..O.# - Act:2 - effect:.O...F.. - Num:1 [fit: 0.005, exp: 0.00, pred: 1130.801, error:0.0]acc: None\n", + "Cond:..O#.OF. - Act:3 - effect:O....... - Num:1 [fit: 0.010, exp: 0.00, pred: 1020.921, error:0.0]acc: None\n", + "Cond:#..#.#O. - Act:6 - effect:........ - Num:1 [fit: 0.051, exp: 0.00, pred: 889.235, error:235.93792823062267]acc: None\n", + "Cond:.....O#. - Act:6 - effect:....OOO. - Num:5 [fit: 0.045, exp: 464.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:##.F.O.. - Act:1 - effect:...FOO.. - Num:1 [fit: 0.024, exp: 0.00, pred: 1300.910, error:594.4919059325924]acc: None\n", + "Cond:.#.F.O.. - Act:1 - effect:...FOO.. - Num:1 [fit: 0.024, exp: 0.00, pred: 1300.910, error:594.4919059325924]acc: None\n", + "Cond:.#.#.#O. - Act:6 - effect:........ - Num:1 [fit: 0.018, exp: 0.00, pred: 1108.397, error:631.0816878301168]acc: None\n", + "Cond:.O.O.#.. - Act:4 - effect:.......O - Num:1 [fit: 0.004, exp: 0.00, pred: 1320.865, error:828.9086262063711]acc: None\n", + "Cond:.#..FOO# - Act:4 - effect:....F..F - Num:2 [fit: 0.006, exp: 0.00, pred: 1035.911, error:0.0]acc: None\n", + "Cond:.O...F.# - Act:7 - effect:.O...... - Num:1 [fit: 0.000, exp: 0.00, pred: 966.757, error:505.2542094578607]acc: None\n", + "Cond:..#..... - Act:5 - effect:.O...O.O - Num:4 [fit: 0.083, exp: 0.00, pred: 1077.450, error:5344.255947316998]acc: None\n", + "Cond:#.#..... - Act:5 - effect:....OOO. - Num:1 [fit: 0.016, exp: 0.00, pred: 1272.329, error:515.2882970275518]acc: None\n", + "Cond:##O....O - Act:1 - effect:.OOO.... - Num:1 [fit: 0.008, exp: 0.00, pred: 1029.452, error:686.6862581970554]acc: None\n", + "Cond:.....OO. - Act:6 - effect:....OOO. - Num:3 [fit: 0.250, exp: 0.00, pred: 1117.120, error:28.63262506934837]acc: None\n", + "Cond:#...#... - Act:7 - effect:........ - Num:1 [fit: 0.001, exp: 0.00, pred: 1129.098, error:976.9067463897857]acc: None\n", + "Cond:.#...O.# - Act:4 - effect:.O...F.. - Num:1 [fit: 0.009, exp: 0.00, pred: 953.846, error:847.7725095096298]acc: None\n", + "Cond:#....#O. - Act:6 - effect:....OOO. - Num:1 [fit: 0.086, exp: 0.00, pred: 1021.402, error:230.08143878233392]acc: None\n", + "Cond:O.###... - Act:5 - effect:O....... - Num:1 [fit: 0.002, exp: 0.00, pred: 909.344, error:1233.9457140777274]acc: None\n", + "Cond:#..#.##F - Act:7 - effect:....OOO. - Num:5 [fit: 0.097, exp: 597.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:.#.FF### - Act:2 - effect:.......O - Num:1 [fit: 0.003, exp: 0.00, pred: 1112.408, error:320.9495558547107]acc: None\n", + "Cond:.O..#O## - Act:2 - effect:.O...F.. - Num:1 [fit: 0.005, exp: 0.00, pred: 1081.295, error:583.8091199126336]acc: None\n", + "Cond:#O..#O## - Act:2 - effect:.O...F.. - Num:2 [fit: 0.005, exp: 0.00, pred: 1081.295, error:583.8091199126336]acc: None\n", + "Cond:O.####O# - Act:5 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1032.120, error:310.98410136218314]acc: None\n", + "Cond:#..F#... - Act:7 - effect:........ - Num:1 [fit: 0.001, exp: 0.00, pred: 901.872, error:1143.387258684124]acc: None\n", + "Cond:....O##. - Act:6 - effect:....OOO. - Num:1 [fit: 0.010, exp: 0.00, pred: 837.745, error:316.9118905689682]acc: None\n", + "Cond:##.#.O.# - Act:2 - effect:.O...F.. - Num:1 [fit: 0.003, exp: 0.00, pred: 1049.696, error:708.8547335656915]acc: None\n", + "Cond:##O#.O.F - Act:5 - effect:.O...O.O - Num:1 [fit: 0.006, exp: 0.00, pred: 903.218, error:605.855097555035]acc: None\n", + "Cond:##O#.#.F - Act:5 - effect:.O...O.O - Num:1 [fit: 0.006, exp: 0.00, pred: 903.218, error:605.855097555035]acc: None\n", + "Cond:.#...OO. - Act:6 - effect:....OOO. - Num:2 [fit: 2.487, exp: 0.00, pred: 1061.278, error:93.57621525097161]acc: None\n", + "Cond:..O#.#F. - Act:6 - effect:........ - Num:1 [fit: 0.003, exp: 0.00, pred: 856.911, error:748.418500790591]acc: None\n", + "Cond:O.###.O# - Act:5 - effect:....OOO. - Num:1 [fit: 0.010, exp: 0.00, pred: 1006.350, error:856.9931338932665]acc: None\n", + "Cond:##.F.#.# - Act:4 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 976.766, error:616.1790741521068]acc: None\n", + "Cond:##.O#.OO - Act:1 - effect:...O..OO - Num:1 [fit: 0.004, exp: 0.00, pred: 865.469, error:1113.95024023531]acc: None\n", + "Cond:.###.O.. - Act:7 - effect:.....O.. - Num:1 [fit: 0.003, exp: 0.00, pred: 932.764, error:653.8741476251123]acc: None\n", + "Cond:#....O#. - Act:6 - effect:....OOO. - Num:11 [fit: 0.101, exp: 443.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:#.##O##F - Act:7 - effect:....OOO. - Num:1 [fit: 0.087, exp: 0.00, pred: 1048.932, error:17.98558191490018]acc: None\n", + "Cond:#.#..#.F - Act:5 - effect:.O...O.O - Num:1 [fit: 0.000, exp: 0.00, pred: 1350.463, error:902.1504061827877]acc: None\n", + "Cond:#....OO. - Act:6 - effect:....OOO. - Num:8 [fit: 0.127, exp: 0.00, pred: 1224.646, error:60.5299079420778]acc: None\n", + "Cond:.###..O. - Act:5 - effect:..O...O. - Num:1 [fit: 0.000, exp: 0.00, pred: 1462.021, error:801.951723191582]acc: None\n", + "Cond:....#.#. - Act:4 - effect:.....OF. - Num:1 [fit: 0.005, exp: 0.00, pred: 1188.504, error:492.69601459411433]acc: None\n", + "Cond:#.#..O.# - Act:1 - effect:.....OF. - Num:1 [fit: 0.008, exp: 0.00, pred: 1079.978, error:927.6931159268138]acc: None\n", + "Cond:##.#.##F - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 589.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#..#OO#F - Act:7 - effect:....OOO. - Num:1 [fit: 0.065, exp: 0.00, pred: 1284.949, error:50.47015676150589]acc: None\n", + "Cond:#...#O#O - Act:0 - effect:...O..FO - Num:1 [fit: 0.003, exp: 0.00, pred: 2137.015, error:334.70497923246324]acc: None\n", + "Cond:#.##OOO. - Act:3 - effect:....OOO. - Num:1 [fit: 0.028, exp: 0.00, pred: 1278.064, error:393.375485804115]acc: None\n", + "Cond:#..##OOF - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 585.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#.#..OOO - Act:4 - effect:.....OOF - Num:1 [fit: 0.013, exp: 0.00, pred: 1338.876, error:612.7531804625249]acc: None\n", + "Cond:...#FO.# - Act:4 - effect:....OOO. - Num:1 [fit: 0.006, exp: 165.00, pred: 1131.127, error:205.1756601233588]acc: 1.0\n", + "Cond:###O#O#. - Act:6 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 1200.983, error:255.2276701179535]acc: None\n", + "Cond:#..#OOOF - Act:7 - effect:....OOO. - Num:1 [fit: 0.014, exp: 0.00, pred: 1409.283, error:58.53493937923569]acc: None\n", + "Cond:...#OOOF - Act:7 - effect:....OOO. - Num:1 [fit: 0.014, exp: 0.00, pred: 1409.283, error:58.53493937923569]acc: None\n", + "Cond:...#F#.# - Act:4 - effect:....OOO. - Num:1 [fit: 0.011, exp: 161.00, pred: 1131.127, error:205.17566012335968]acc: 1.0\n", + "Cond:##.#OO#. - Act:3 - effect:....OOO. - Num:9 [fit: 0.188, exp: 192.00, pred: 1105.491, error:158.3848377652093]acc: 1.0\n", + "Cond:.OO#.O.. - Act:0 - effect:...O.... - Num:1 [fit: 0.002, exp: 0.00, pred: 931.199, error:802.2597608663673]acc: None\n", + "Cond:........ - Act:7 - effect:.O.O.OO. - Num:1 [fit: 0.005, exp: 0.00, pred: 1066.201, error:506.6114717044842]acc: None\n", + "Cond:.O#.#.OO - Act:3 - effect:......O. - Num:1 [fit: 0.011, exp: 0.00, pred: 952.820, error:0.0]acc: None\n", + "Cond:#...#.#. - Act:4 - effect:.....OF. - Num:1 [fit: 0.016, exp: 0.00, pred: 1006.129, error:318.04723330093515]acc: None\n", + "Cond:#.##.O.# - Act:4 - effect:.....OOF - Num:1 [fit: 0.004, exp: 0.00, pred: 1138.742, error:460.62816747149355]acc: None\n", + "Cond:##..OO.# - Act:0 - effect:.......O - Num:2 [fit: 0.016, exp: 0.00, pred: 1136.693, error:1918.6584432090172]acc: None\n", + "Cond:.##..#O. - Act:5 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1125.373, error:628.3270452388567]acc: None\n", + "Cond:###O#.F# - Act:7 - effect:O......O - Num:1 [fit: 0.013, exp: 0.00, pred: 933.943, error:539.9601473950385]acc: None\n", + "Cond:###O##F. - Act:7 - effect:O......O - Num:1 [fit: 0.013, exp: 0.00, pred: 933.943, error:539.9601473950385]acc: None\n", + "Cond:##.F.#.. - Act:3 - effect:O...O... - Num:1 [fit: 0.002, exp: 0.00, pred: 853.992, error:0.0]acc: None\n", + "Cond:###O#.#F - Act:6 - effect:..O...O. - Num:1 [fit: 0.006, exp: 0.00, pred: 1311.078, error:0.0]acc: None\n", + "Cond:#O#O#.#F - Act:6 - effect:..O...O. - Num:1 [fit: 0.006, exp: 0.00, pred: 1311.078, error:0.0]acc: None\n", + "Cond:.##..O.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 1226.830, error:2536.638338354514]acc: None\n", + "Cond:O..#.#.. - Act:7 - effect:....OOO. - Num:1 [fit: 0.009, exp: 0.00, pred: 1232.957, error:119.14530456953801]acc: None\n", + "Cond:.....F#. - Act:5 - effect:....OOO. - Num:2 [fit: 0.035, exp: 478.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:##.#.O#. - Act:6 - effect:....OOO. - Num:4 [fit: 0.036, exp: 412.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:#..#.O#O - Act:7 - effect:O......O - Num:1 [fit: 0.001, exp: 0.00, pred: 1240.556, error:640.580868779389]acc: None\n", + "Cond:#.#.#... - Act:7 - effect:...OO... - Num:2 [fit: 0.004, exp: 0.00, pred: 1100.646, error:1249.0696931239395]acc: None\n", + "Cond:..#..F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 473.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:####OO#. - Act:3 - effect:....OOO. - Num:5 [fit: 0.125, exp: 181.00, pred: 1105.491, error:158.3848377652093]acc: 1.0\n", + "Cond:......#. - Act:1 - effect:....O.FF - Num:1 [fit: 0.001, exp: 0.00, pred: 1040.797, error:824.5390976130279]acc: None\n", + "Cond:.O.#...O - Act:2 - effect:.....F.. - Num:1 [fit: 0.020, exp: 0.00, pred: 1207.843, error:30.489074753138993]acc: None\n", + "Cond:..OO..F# - Act:6 - effect:.O..O... - Num:1 [fit: 0.001, exp: 0.00, pred: 902.108, error:1079.354894868393]acc: None\n", + "Cond:#..O.##F - Act:1 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1079.686, error:421.96731147759516]acc: None\n", + "Cond:.OO#.O.. - Act:7 - effect:...O.... - Num:1 [fit: 0.017, exp: 0.00, pred: 1122.034, error:1028.4459704816531]acc: None\n", + "Cond:.O.#OO.# - Act:7 - effect:.......O - Num:1 [fit: 0.001, exp: 0.00, pred: 1023.849, error:385.33459457805014]acc: None\n", + "Cond:##O.##.O - Act:1 - effect:OO.....O - Num:1 [fit: 0.017, exp: 0.00, pred: 894.607, error:1885.65504424539]acc: None\n", + "Cond:...#.F## - Act:5 - effect:....OOO. - Num:2 [fit: 0.035, exp: 454.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:####..O. - Act:5 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 856.191, error:500.12926429418917]acc: None\n", + "Cond:O##...OO - Act:1 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1096.646, error:907.9934129554417]acc: None\n", + "Cond:.....F## - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 452.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:.##..O.. - Act:7 - effect:....OOO. - Num:1 [fit: 0.031, exp: 0.00, pred: 1222.459, error:0.0]acc: None\n", + "Cond:.######F - Act:7 - effect:....OOO. - Num:2 [fit: 0.039, exp: 548.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:.#O#.F.. - Act:7 - effect:.....F.. - Num:1 [fit: 0.007, exp: 0.00, pred: 1399.745, error:2031.7109743478422]acc: None\n", + "Cond:....###F - Act:2 - effect:....OOO. - Num:2 [fit: 0.005, exp: 19.00, pred: 853.610, error:9896.398298371856]acc: 0.0\n", + "Cond:..#O.O#. - Act:6 - effect:.O..O... - Num:2 [fit: 0.002, exp: 0.00, pred: 1158.852, error:517.0909298700396]acc: None\n", + "Cond:..###.F. - Act:6 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1156.314, error:1269.8113169437909]acc: None\n", + "Cond:O.#FO### - Act:1 - effect:...O..FO - Num:2 [fit: 0.007, exp: 0.00, pred: 803.265, error:545.3124537187368]acc: None\n", + "Cond:.#..FO.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.006, exp: 130.00, pred: 1131.127, error:205.17566012307773]acc: 1.0\n", + "Cond:.OO#.O#. - Act:7 - effect:...O.... - Num:1 [fit: 0.000, exp: 0.00, pred: 1142.351, error:1122.7917930536382]acc: None\n", + "Cond:###O##F. - Act:6 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 1357.367, error:608.4248498194593]acc: None\n", + "Cond:.#####F. - Act:6 - effect:....OOO. - Num:1 [fit: 0.009, exp: 393.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:...#.O.# - Act:0 - effect:..OO.... - Num:1 [fit: 0.000, exp: 0.00, pred: 1248.330, error:1417.7874363837213]acc: None\n", + "Cond:###.O.#. - Act:4 - effect:..O..... - Num:1 [fit: 0.013, exp: 0.00, pred: 875.885, error:1502.196337780852]acc: None\n", + "Cond:##..OO#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1285.002, error:1375.8762186933247]acc: None\n", + "Cond:#.#..F#. - Act:5 - effect:....OOO. - Num:2 [fit: 0.035, exp: 443.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:..#..O#. - Act:6 - effect:....OOO. - Num:2 [fit: 0.018, exp: 391.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:#.#.OO#. - Act:3 - effect:....OOO. - Num:2 [fit: 1.712, exp: 0.00, pred: 1069.779, error:59.62231876636257]acc: None\n", + "Cond:#O.O##.# - Act:5 - effect:.O..O... - Num:1 [fit: 0.000, exp: 0.00, pred: 1295.844, error:756.8560925341309]acc: None\n", + "Cond:...#O##F - Act:7 - effect:....OOO. - Num:1 [fit: 0.040, exp: 0.00, pred: 1173.381, error:37.82685641439278]acc: None\n", + "Cond:O#O...## - Act:3 - effect:.......O - Num:1 [fit: 0.005, exp: 0.00, pred: 1391.376, error:631.0579420338574]acc: None\n", + "Cond:.O#.###O - Act:1 - effect:.......O - Num:1 [fit: 0.008, exp: 0.00, pred: 1025.797, error:749.0963136173689]acc: None\n", + "Cond:.##O#F#. - Act:7 - effect:....OOO. - Num:1 [fit: 0.008, exp: 0.00, pred: 1100.619, error:687.9537702181892]acc: None\n", + "Cond:.#...F## - Act:5 - effect:....OOO. - Num:4 [fit: 0.070, exp: 434.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:##O####O - Act:2 - effect:..O..... - Num:1 [fit: 0.026, exp: 0.00, pred: 1044.687, error:3909.6174732321365]acc: None\n", + "Cond:#..#.OO. - Act:1 - effect:O.OO.O.. - Num:1 [fit: 0.003, exp: 0.00, pred: 1451.805, error:702.1968670089854]acc: None\n", + "Cond:#.##F.## - Act:5 - effect:....OOO. - Num:1 [fit: 0.013, exp: 0.00, pred: 969.796, error:324.62833442577335]acc: None\n", + "Cond:#....#.. - Act:5 - effect:....OOO. - Num:2 [fit: 0.035, exp: 429.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:.#...F.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 429.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:O####O.. - Act:3 - effect:.......O - Num:1 [fit: 0.015, exp: 0.00, pred: 1007.934, error:0.0]acc: None\n", + "Cond:#O..OO## - Act:0 - effect:....OOO. - Num:1 [fit: 0.005, exp: 0.00, pred: 1128.637, error:1149.9595501005044]acc: None\n", + "Cond:.###.O.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 1021.402, error:608.5697841496428]acc: None\n", + "Cond:..##O##F - Act:7 - effect:....OOO. - Num:1 [fit: 0.032, exp: 0.00, pred: 1249.765, error:55.681188389018565]acc: None\n", + "Cond:.#.O##.O - Act:1 - effect:.......O - Num:1 [fit: 0.208, exp: 0.00, pred: 1112.464, error:142.10072146819311]acc: None\n", + "Cond:###F#... - Act:0 - effect:.......O - Num:1 [fit: 0.001, exp: 0.00, pred: 1002.648, error:1106.6706406550547]acc: None\n", + "Cond:####OOO. - Act:3 - effect:....OOO. - Num:3 [fit: 0.218, exp: 0.00, pred: 1123.296, error:35.43226524489141]acc: None\n", + "Cond:...O###O - Act:6 - effect:.......O - Num:1 [fit: 0.168, exp: 0.00, pred: 1303.354, error:1555.327302728399]acc: None\n", + "Cond:##..O##. - Act:0 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1025.179, error:751.0473087856219]acc: None\n", + "Cond:####OO## - Act:3 - effect:....OOO. - Num:1 [fit: 0.022, exp: 169.00, pred: 1105.491, error:158.3848377652093]acc: 1.0\n", + "Cond:O..#O### - Act:6 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 979.307, error:1507.0961953160954]acc: None\n", + "Cond:##.#O#O. - Act:3 - effect:....OOO. - Num:1 [fit: 0.181, exp: 0.00, pred: 1071.315, error:26.59546281179921]acc: None\n", + "Cond:##.#OOO. - Act:5 - effect:....OOO. - Num:1 [fit: 1.096, exp: 0.00, pred: 1059.072, error:103.34728876970632]acc: None\n", + "Cond:..##.O.# - Act:4 - effect:O.O...O. - Num:1 [fit: 0.010, exp: 0.00, pred: 845.435, error:1139.0302406427245]acc: None\n", + "Cond:..#...#. - Act:7 - effect:....OOO. - Num:1 [fit: 0.007, exp: 0.00, pred: 1004.325, error:1042.020248249573]acc: None\n", + "Cond:..#.O.#. - Act:3 - effect:OO.....O - Num:1 [fit: 0.018, exp: 0.00, pred: 927.424, error:910.3921764689766]acc: None\n", + "Cond:##..OO## - Act:2 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 1009.019, error:1293.7446007821432]acc: None\n", + "Cond:#O###.#F - Act:7 - effect:....OOO. - Num:1 [fit: 0.009, exp: 0.00, pred: 2078.322, error:206.04210295141172]acc: None\n", + "Cond:.#...FO# - Act:5 - effect:....OOO. - Num:1 [fit: 0.033, exp: 0.00, pred: 1393.496, error:276.46554362073937]acc: None\n", + "Cond:.#.O#O## - Act:6 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1266.881, error:776.1566146402502]acc: None\n", + "Cond:##...OO. - Act:5 - effect:O.OO.O.. - Num:1 [fit: 0.003, exp: 0.00, pred: 1064.734, error:1577.1251211566548]acc: None\n", + "Cond:#..O#O## - Act:1 - effect:O.OO.O.. - Num:1 [fit: 0.003, exp: 0.00, pred: 1064.734, error:1577.1251211566548]acc: None\n", + "Cond:#O###O## - Act:3 - effect:....OOO. - Num:1 [fit: 0.026, exp: 0.00, pred: 1074.737, error:1195.8873686810916]acc: None\n", + "Cond:#..#FO#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.006, exp: 102.00, pred: 1131.127, error:205.17566003387884]acc: 1.0\n", + "Cond:O..#.O.# - Act:7 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 1292.845, error:422.3488663314465]acc: None\n", + "Cond:.#OO.#O. - Act:5 - effect:.....OF. - Num:1 [fit: 0.008, exp: 0.00, pred: 1047.870, error:1267.6619579252433]acc: None\n", + "Cond:.###.F## - Act:2 - effect:.....OF. - Num:1 [fit: 0.016, exp: 53.00, pred: 1272.540, error:216.19869088382717]acc: 0.5283018867924528\n", + "Cond:...#.O#. - Act:1 - effect:....OOO. - Num:2 [fit: 0.000, exp: 24.00, pred: 1014.009, error:8875.937220950615]acc: 0.0\n", + "Cond:.#...O.# - Act:7 - effect:....OOO. - Num:1 [fit: 0.034, exp: 0.00, pred: 1046.046, error:103.7642716752265]acc: None\n", + "Cond:.###OOO# - Act:3 - effect:....OOO. - Num:1 [fit: 0.093, exp: 0.00, pred: 1039.295, error:10.955034451876042]acc: None\n", + "Cond:#O.#O.#. - Act:4 - effect:....O.FF - Num:1 [fit: 0.015, exp: 0.00, pred: 784.296, error:254.13143444597392]acc: None\n", + "Cond:OO#.#O#O - Act:4 - effect:O.O..... - Num:1 [fit: 0.020, exp: 0.00, pred: 1348.108, error:3130.4048639017324]acc: None\n", + "Cond:#...##OF - Act:2 - effect:....OOO. - Num:2 [fit: 0.012, exp: 14.00, pred: 846.479, error:8731.995288609542]acc: 0.0\n", + "Cond:###.O### - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 938.903, error:871.0115584883672]acc: None\n", + "Cond:###.O### - Act:6 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 998.870, error:467.1599039125713]acc: None\n", + "Cond:##.#OO## - Act:3 - effect:....OOO. - Num:2 [fit: 0.063, exp: 164.00, pred: 1105.491, error:158.38483776520974]acc: 1.0\n", + "Cond:...#.FO# - Act:5 - effect:....OOO. - Num:1 [fit: 0.016, exp: 0.00, pred: 1187.035, error:60.03023287703617]acc: None\n", + "Cond:.##..OOF - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 513.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:O##.O##O - Act:4 - effect:O.O..... - Num:1 [fit: 0.018, exp: 0.00, pred: 1402.788, error:2178.3714676998434]acc: None\n", + "Cond:#.#F#.## - Act:3 - effect:....OOO. - Num:1 [fit: 0.005, exp: 0.00, pred: 990.595, error:865.9835135610208]acc: None\n", + "Cond:.#.##F## - Act:0 - effect:......OO - Num:1 [fit: 0.000, exp: 25.00, pred: 1071.779, error:6849.275133886496]acc: 0.08\n", + "Cond:..##.FO. - Act:5 - effect:....OOO. - Num:2 [fit: 0.983, exp: 0.00, pred: 1033.312, error:13.311852830669409]acc: None\n", + "Cond:#....OO. - Act:3 - effect:....OOO. - Num:1 [fit: 0.020, exp: 0.00, pred: 1100.649, error:30.787024084124344]acc: None\n", + "Cond:.##O.O#. - Act:6 - effect:..O..... - Num:1 [fit: 0.009, exp: 0.00, pred: 1289.849, error:1013.6015034400899]acc: None\n", + "Cond:##...O.# - Act:3 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 887.165, error:824.6544737766515]acc: None\n", + "Cond:####OOO# - Act:3 - effect:....OOO. - Num:2 [fit: 0.700, exp: 0.00, pred: 1245.676, error:216.25650183748743]acc: None\n", + "Cond:..O...## - Act:2 - effect:..OO.... - Num:1 [fit: 0.002, exp: 0.00, pred: 927.116, error:277.7368246744554]acc: None\n", + "Cond:#O###.O. - Act:7 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 910.026, error:831.0380782570147]acc: None\n", + "Cond:#O.O#.#. - Act:4 - effect:....O.FF - Num:1 [fit: 0.025, exp: 0.00, pred: 1157.598, error:5248.6823552240385]acc: None\n", + "Cond:#O#.##O# - Act:1 - effect:.....OF. - Num:1 [fit: 0.003, exp: 0.00, pred: 811.253, error:557.8509258442576]acc: None\n", + "Cond:.O#O.O.# - Act:7 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 913.613, error:634.2419250217433]acc: None\n", + "Cond:###.O#.. - Act:3 - effect:....OOO. - Num:1 [fit: 0.015, exp: 0.00, pred: 1200.688, error:384.9604454872805]acc: None\n", + "Cond:.#..OO#. - Act:6 - effect:....OOO. - Num:1 [fit: 0.013, exp: 0.00, pred: 1156.810, error:405.64434939914383]acc: None\n", + "Cond:##..OO## - Act:3 - effect:....OOO. - Num:4 [fit: 0.021, exp: 0.00, pred: 1421.387, error:60.192312346582035]acc: None\n", + "Cond:##O.#.#O - Act:6 - effect:....OOO. - Num:1 [fit: 0.021, exp: 0.00, pred: 1124.445, error:3556.5123974385356]acc: None\n", + "Cond:..###F.O - Act:4 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 757.952, error:201.414775336809]acc: None\n", + "Cond:#.O.#### - Act:6 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1045.634, error:696.6290423684479]acc: None\n", + "Cond:..#..F## - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 25.00, pred: 1071.779, error:9028.602968553936]acc: 0.0\n", + "Cond:####O##O - Act:5 - effect:.....OF. - Num:1 [fit: 0.016, exp: 0.00, pred: 1090.456, error:223.8975135697306]acc: None\n", + "Cond:.#.#.FO. - Act:5 - effect:....OOO. - Num:1 [fit: 0.042, exp: 0.00, pred: 1102.427, error:27.60170927347098]acc: None\n", + "Cond:..O##..# - Act:0 - effect:.......O - Num:1 [fit: 0.000, exp: 25.00, pred: 1030.429, error:8728.667023550193]acc: 0.04\n", + "Cond:#.....#. - Act:4 - effect:....O.FF - Num:1 [fit: 0.001, exp: 0.00, pred: 1174.726, error:1550.575023973563]acc: None\n", + "Cond:.#...O.# - Act:5 - effect:....OOO. - Num:1 [fit: 1.040, exp: 0.00, pred: 1053.225, error:158.74627568588951]acc: None\n", + "Cond:###.F#.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.006, exp: 87.00, pred: 1131.127, error:205.17565568669235]acc: 1.0\n", + "Cond:##..OO#. - Act:3 - effect:....OOO. - Num:2 [fit: 0.041, exp: 0.00, pred: 1289.220, error:62.800432362224036]acc: None\n", + "Cond:.#.#OO## - Act:3 - effect:....OOO. - Num:1 [fit: 0.040, exp: 156.00, pred: 1105.491, error:158.38483776521204]acc: 1.0\n", + "Cond:O.#.#O## - Act:7 - effect:....OOO. - Num:1 [fit: 0.052, exp: 0.00, pred: 1196.840, error:1670.207849173594]acc: None\n", + "Cond:.###.FO. - Act:5 - effect:....OOO. - Num:1 [fit: 0.037, exp: 0.00, pred: 1277.098, error:47.81483426395768]acc: None\n", + "Cond:.###.O.F - Act:7 - effect:.OO..... - Num:1 [fit: 0.098, exp: 0.00, pred: 1235.349, error:2620.8340139705087]acc: None\n", + "Cond:####FF#. - Act:2 - effect:..O..... - Num:1 [fit: 0.001, exp: 0.00, pred: 916.185, error:530.3928517770654]acc: None\n", + "Cond:##..O### - Act:5 - effect:....OOO. - Num:1 [fit: 0.007, exp: 0.00, pred: 958.557, error:568.6349780501693]acc: None\n", + "Cond:.##O#O## - Act:3 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 956.259, error:314.8084322143472]acc: None\n", + "Cond:##O###F# - Act:6 - effect:...OO... - Num:1 [fit: 0.001, exp: 0.00, pred: 1132.119, error:474.19759129401615]acc: None\n", + "Cond:###.O##O - Act:7 - effect:.....OF. - Num:1 [fit: 0.007, exp: 0.00, pred: 914.515, error:833.0146227105975]acc: None\n", + "Cond:####.O#. - Act:6 - effect:....OOO. - Num:1 [fit: 0.009, exp: 356.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:##.#.OO. - Act:6 - effect:....OOO. - Num:1 [fit: 0.013, exp: 0.00, pred: 1165.707, error:41.37068702378868]acc: None\n", + "Cond:.##.#F.# - Act:2 - effect:.....OF. - Num:1 [fit: 0.036, exp: 48.00, pred: 1272.539, error:207.56031913250845]acc: 0.625\n", + "Cond:..##.F.# - Act:7 - effect:.OO..... - Num:1 [fit: 0.000, exp: 21.00, pred: 1091.507, error:6790.135154722228]acc: 0.0\n", + "Cond:.....#.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 380.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:.###OF#. - Act:5 - effect:....OOO. - Num:2 [fit: 0.086, exp: 0.00, pred: 1307.156, error:42.959486190499945]acc: None\n", + "Cond:O#...##. - Act:0 - effect:.O...... - Num:1 [fit: 0.000, exp: 21.00, pred: 942.395, error:5579.211621980182]acc: 0.047619047619047616\n", + "Cond:#....#.. - Act:0 - effect:......OO - Num:1 [fit: 0.000, exp: 21.00, pred: 1073.584, error:7726.367630366822]acc: 0.047619047619047616\n", + "Cond:.##O#O.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.204, exp: 0.00, pred: 1091.634, error:112.09567573235904]acc: None\n", + "Cond:.#..#O#O - Act:4 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1269.907, error:696.0097064350377]acc: None\n", + "Cond:OO..O..O - Act:4 - effect:O.O..... - Num:1 [fit: 0.001, exp: 0.00, pred: 1269.907, error:696.0097064350377]acc: None\n", + "Cond:#.##.OOF - Act:7 - effect:....OOO. - Num:6 [fit: 0.116, exp: 488.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:......#. - Act:6 - effect:....OOO. - Num:1 [fit: 0.138, exp: 0.00, pred: 1471.961, error:123.56618234750192]acc: None\n", + "Cond:###.##OF - Act:7 - effect:....OOO. - Num:2 [fit: 0.039, exp: 484.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:....F#.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.006, exp: 79.00, pred: 1131.127, error:205.17564087634858]acc: 1.0\n", + "Cond:###.O##. - Act:2 - effect:OO.....O - Num:1 [fit: 0.008, exp: 0.00, pred: 948.778, error:269.33843139697007]acc: None\n", + "Cond:#.O..#.# - Act:3 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1031.224, error:585.7665089065729]acc: None\n", + "Cond:..O#.F#. - Act:7 - effect:...O..O. - Num:1 [fit: 0.005, exp: 0.00, pred: 1098.200, error:1348.6640433320222]acc: None\n", + "Cond:.O.##.#. - Act:7 - effect:.O...... - Num:1 [fit: 0.052, exp: 60.00, pred: 832.949, error:5566.107222965558]acc: 0.48333333333333334\n", + "Cond:##.#.OO. - Act:3 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 917.559, error:1606.4438509741753]acc: None\n", + "Cond:O.#####. - Act:3 - effect:.O...... - Num:1 [fit: 0.028, exp: 0.00, pred: 888.151, error:0.0]acc: None\n", + "Cond:..#..O.. - Act:7 - effect:....OOO. - Num:1 [fit: 0.027, exp: 0.00, pred: 1106.117, error:262.4652760773772]acc: None\n", + "Cond:.#.###FF - Act:4 - effect:....OOO. - Num:1 [fit: 0.010, exp: 0.00, pred: 1264.430, error:615.7513147388979]acc: None\n", + "Cond:.#...O#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 20.00, pred: 1013.825, error:9437.625208243435]acc: 0.0\n", + "Cond:OO##.##O - Act:0 - effect:OO.....O - Num:1 [fit: 0.000, exp: 22.00, pred: 956.427, error:5643.712977277961]acc: 0.4090909090909091\n", + "Cond:..#...#. - Act:6 - effect:....OOO. - Num:1 [fit: 0.008, exp: 0.00, pred: 1042.207, error:1444.4173639495093]acc: None\n", + "Cond:#.##FO#. - Act:4 - effect:....OOO. - Num:2 [fit: 0.008, exp: 74.00, pred: 1131.127, error:205.17570620855207]acc: 1.0\n", + "Cond:.####FO. - Act:5 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 1451.084, error:77.32682633615988]acc: None\n", + "Cond:##.#O..O - Act:1 - effect:........ - Num:1 [fit: 0.003, exp: 0.00, pred: 1023.051, error:1303.334632155421]acc: None\n", + "Cond:..#.#FO. - Act:5 - effect:....OOO. - Num:1 [fit: 0.012, exp: 0.00, pred: 1331.924, error:62.69626858079563]acc: None\n", + "Cond:.....O.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.018, exp: 0.00, pred: 1020.136, error:475.541392827823]acc: None\n", + "Cond:#.##.O.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.009, exp: 0.00, pred: 1184.364, error:467.7714632465305]acc: None\n", + "Cond:..###O#O - Act:7 - effect:....OOO. - Num:1 [fit: 0.012, exp: 0.00, pred: 1159.525, error:299.5845472631404]acc: None\n", + "Cond:##..F.#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 1210.170, error:992.8444252534355]acc: None\n", + "Cond:.#..FO## - Act:4 - effect:....OOO. - Num:1 [fit: 0.039, exp: 69.00, pred: 1131.127, error:205.1754536071715]acc: 1.0\n", + "Cond:####.#OF - Act:2 - effect:....OOO. - Num:1 [fit: 0.002, exp: 13.00, pred: 846.348, error:8916.619420326911]acc: 0.0\n", + "Cond:O##F##.. - Act:3 - effect:.O...... - Num:1 [fit: 0.002, exp: 0.00, pred: 1067.982, error:246.5131516957054]acc: None\n", + "Cond:O#.#OO## - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1043.422, error:1072.621609898497]acc: None\n", + "Cond:..O#.#.# - Act:0 - effect:....OOO. - Num:1 [fit: 0.000, exp: 18.00, pred: 1034.005, error:9299.876963999848]acc: 0.0\n", + "Cond:###..O.. - Act:3 - effect:....OOO. - Num:1 [fit: 0.019, exp: 0.00, pred: 1213.020, error:388.73763526588357]acc: None\n", + "Cond:#.O##.## - Act:4 - effect:.OOO.... - Num:1 [fit: 0.000, exp: 24.00, pred: 1005.328, error:3256.0307538946186]acc: 0.20833333333333334\n", + "Cond:#O.##O#. - Act:3 - effect:.O..O... - Num:1 [fit: 0.016, exp: 0.00, pred: 1215.661, error:305.6660722118271]acc: None\n", + "Cond:#...F##. - Act:2 - effect:....OOO. - Num:2 [fit: 0.114, exp: 170.00, pred: 2122.975, error:224.5084546682529]acc: 0.8764705882352941\n", + "Cond:...#.O#. - Act:0 - effect:....OOO. - Num:3 [fit: 0.003, exp: 24.00, pred: 1180.382, error:3867.9775723703506]acc: 0.4166666666666667\n", + "Cond:O#.FO### - Act:1 - effect:...O..FO - Num:1 [fit: 0.001, exp: 0.00, pred: 1240.878, error:258.7210145752198]acc: None\n", + "Cond:#O.##O## - Act:3 - effect:.O..O... - Num:2 [fit: 0.066, exp: 0.00, pred: 977.896, error:5407.37306217631]acc: None\n", + "Cond:..#.#... - Act:3 - effect:....OOO. - Num:1 [fit: 0.022, exp: 0.00, pred: 889.578, error:40.02639304110025]acc: None\n", + "Cond:#...#.OF - Act:2 - effect:....OOO. - Num:1 [fit: 0.014, exp: 0.00, pred: 756.648, error:471.6200884690305]acc: None\n", + "Cond:O..#.#.O - Act:4 - effect:....OOO. - Num:1 [fit: 0.002, exp: 25.00, pred: 1008.869, error:7201.851585005747]acc: 0.44\n", + "Cond:###.OO#. - Act:3 - effect:....OOO. - Num:1 [fit: 0.054, exp: 0.00, pred: 1159.739, error:38.833878812041945]acc: None\n", + "Cond:#.#.#... - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 0.00, pred: 942.262, error:442.73654209893664]acc: None\n", + "Cond:OO##..#. - Act:0 - effect:.......O - Num:1 [fit: 0.000, exp: 18.00, pred: 936.419, error:7013.253635249569]acc: 0.0\n", + "Cond:#.#..OF. - Act:0 - effect:....FO.. - Num:2 [fit: 0.000, exp: 22.00, pred: 1182.000, error:4140.654956251837]acc: 0.18181818181818182\n", + "Cond:O..#OO.# - Act:1 - effect:...O..FO - Num:1 [fit: 0.001, exp: 0.00, pred: 1024.218, error:1186.5885320969137]acc: None\n", + "Cond:.O.#.#.. - Act:0 - effect:.OOO.... - Num:1 [fit: 0.000, exp: 24.00, pred: 977.503, error:5330.061434861966]acc: 0.08333333333333333\n", + "Cond:.#..O### - Act:3 - effect:....OOO. - Num:1 [fit: 0.012, exp: 0.00, pred: 1099.201, error:27.063349223215386]acc: None\n", + "Cond:#.#.#... - Act:3 - effect:....OOO. - Num:2 [fit: 0.005, exp: 0.00, pred: 1095.294, error:894.3881501217868]acc: None\n", + "Cond:####.F#. - Act:1 - effect:...O.... - Num:1 [fit: 0.000, exp: 23.00, pred: 1052.288, error:6891.685937993691]acc: 0.08695652173913043\n", + "Cond:O..##### - Act:4 - effect:....OOO. - Num:1 [fit: 0.003, exp: 24.00, pred: 1009.456, error:6847.604024336309]acc: 0.4166666666666667\n", + "Cond:#...O##F - Act:7 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 1171.721, error:47.796799570063676]acc: None\n", + "Cond:#.##.OO. - Act:6 - effect:....OOO. - Num:1 [fit: 0.035, exp: 0.00, pred: 1158.214, error:40.91289526998797]acc: None\n", + "Cond:.###.OO. - Act:7 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 947.526, error:606.7052023167555]acc: None\n", + "Cond:..#O#O#. - Act:6 - effect:....OOO. - Num:2 [fit: 0.001, exp: 0.00, pred: 1159.719, error:966.5799581342991]acc: None\n", + "Cond:...#.F#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.002, exp: 13.00, pred: 1068.115, error:8245.24307878279]acc: 0.0\n", + "Cond:#..#O#OF - Act:7 - effect:....OOO. - Num:1 [fit: 0.018, exp: 0.00, pred: 1162.757, error:38.76783542189001]acc: None\n", + "Cond:.O.##O#. - Act:3 - effect:....OOO. - Num:1 [fit: 0.017, exp: 0.00, pred: 1087.265, error:316.14210409616555]acc: None\n", + "Cond:.##.FO## - Act:5 - effect:....FO.. - Num:2 [fit: 0.016, exp: 96.00, pred: 1260.267, error:3446.641127474836]acc: 0.6041666666666666\n", + "Cond:#O##F#.# - Act:3 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1085.928, error:1120.0334114957902]acc: None\n", + "Cond:#...#.#. - Act:3 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1069.134, error:516.8380605974937]acc: None\n", + "Cond:.#.#FO## - Act:4 - effect:....OOO. - Num:1 [fit: 0.011, exp: 62.00, pred: 1131.127, error:205.1772480039697]acc: 1.0\n", + "Cond:..O..... - Act:5 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 982.627, error:466.2177335624583]acc: None\n", + "Cond:##..#OOF - Act:7 - effect:....OOO. - Num:4 [fit: 0.078, exp: 462.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:O..#.##. - Act:4 - effect:....OOO. - Num:1 [fit: 0.098, exp: 0.00, pred: 1000.945, error:3904.0040077609965]acc: None\n", + "Cond:.....O#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.006, exp: 18.00, pred: 1178.321, error:3514.2800194640777]acc: 0.4444444444444444\n", + "Cond:##O..O## - Act:1 - effect:.....OF. - Num:1 [fit: 0.005, exp: 0.00, pred: 1033.451, error:1335.7425521132418]acc: None\n", + "Cond:.OO.##O# - Act:3 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 991.522, error:1385.3306094192376]acc: None\n", + "Cond:##.F.##. - Act:4 - effect:....OOO. - Num:1 [fit: 0.024, exp: 0.00, pred: 811.005, error:129.83086643139092]acc: None\n", + "Cond:O..###.. - Act:1 - effect:....OOO. - Num:1 [fit: 0.053, exp: 0.00, pred: 1079.473, error:4863.172230071103]acc: None\n", + "Cond:..##.O.. - Act:3 - effect:OO...... - Num:1 [fit: 0.006, exp: 0.00, pred: 985.735, error:2477.17205485971]acc: None\n", + "Cond:....OO.. - Act:3 - effect:....OOO. - Num:1 [fit: 0.031, exp: 0.00, pred: 1234.648, error:33.020047267780484]acc: None\n", + "Cond:#.###OOF - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 460.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#...FO#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.006, exp: 53.00, pred: 1131.128, error:205.17957609628908]acc: 1.0\n", + "Cond:###..#OF - Act:7 - effect:....OOO. - Num:1 [fit: 0.020, exp: 458.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#O##.O## - Act:4 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 1101.082, error:721.8173821090703]acc: None\n", + "Cond:#...FF#. - Act:2 - effect:....OOO. - Num:1 [fit: 0.029, exp: 0.00, pred: 995.131, error:378.49088069425005]acc: None\n", + "Cond:##.#.F.# - Act:4 - effect:....OOO. - Num:1 [fit: 0.000, exp: 22.00, pred: 1111.739, error:2219.0207029543553]acc: 0.45454545454545453\n", + "Cond:#.#O###F - Act:5 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1127.205, error:1100.7478846395138]acc: None\n", + "Cond:#.#.O#.# - Act:2 - effect:....OOO. - Num:1 [fit: 0.016, exp: 0.00, pred: 1223.994, error:212.93037467131103]acc: None\n", + "Cond:#O.####O - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 12.00, pred: 955.079, error:8186.938864715164]acc: 0.0\n", + "Cond:####OO#. - Act:4 - effect:....OOO. - Num:2 [fit: 0.012, exp: 19.00, pred: 975.715, error:2668.9289815541624]acc: 0.3684210526315789\n", + "Cond:####F.## - Act:3 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 1244.731, error:1164.1843912208192]acc: None\n", + "Cond:..#.#... - Act:6 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1044.118, error:794.272469289723]acc: None\n", + "Cond:.O###O#. - Act:7 - effect:....OOO. - Num:2 [fit: 0.209, exp: 0.00, pred: 1037.646, error:2646.63378838087]acc: None\n", + "Cond:#..F.##. - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1367.212, error:913.7485338952445]acc: None\n", + "Cond:#O.#O.#O - Act:4 - effect:...O.O.. - Num:1 [fit: 0.003, exp: 0.00, pred: 1043.101, error:577.2325947156218]acc: None\n", + "Cond:###O#O.# - Act:6 - effect:.....OF. - Num:2 [fit: 0.007, exp: 0.00, pred: 1300.202, error:728.7837740974007]acc: None\n", + "Cond:.#.F#O#. - Act:6 - effect:..OO.... - Num:1 [fit: 0.007, exp: 189.00, pred: 1163.269, error:1620.6957631975747]acc: 0.8465608465608465\n", + "Cond:....#.#F - Act:2 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 900.668, error:1549.4078814004029]acc: None\n", + "Cond:##..F#O# - Act:4 - effect:....OOO. - Num:1 [fit: 0.022, exp: 0.00, pred: 1324.917, error:66.60175608419969]acc: None\n", + "Cond:.....O#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 14.00, pred: 1019.402, error:8748.711262520868]acc: 0.0\n", + "Cond:#..#FOO. - Act:4 - effect:....OOO. - Num:1 [fit: 0.018, exp: 0.00, pred: 1076.892, error:275.566784825848]acc: None\n", + "Cond:.##O#O## - Act:6 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 993.078, error:2986.2706904637002]acc: None\n", + "Cond:.#####O. - Act:7 - effect:....OOO. - Num:1 [fit: 0.009, exp: 0.00, pred: 1082.843, error:642.6342478996246]acc: None\n", + "Cond:.O.O###. - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1272.138, error:4466.863101724016]acc: None\n", + "Cond:..###OF# - Act:4 - effect:.OO..... - Num:1 [fit: 0.000, exp: 22.00, pred: 1229.294, error:3734.2393311600526]acc: 0.3181818181818182\n", + "Cond:##...#OF - Act:7 - effect:....OOO. - Num:3 [fit: 0.058, exp: 443.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:.#O##..O - Act:5 - effect:.....OF. - Num:1 [fit: 0.001, exp: 0.00, pred: 1181.807, error:777.6601210037431]acc: None\n", + "Cond:#.#.#... - Act:4 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1137.925, error:784.1047692556947]acc: None\n", + "Cond:O##.#O.# - Act:0 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 902.142, error:834.8581278248705]acc: None\n", + "Cond:#..OO#.# - Act:2 - effect:....OOO. - Num:2 [fit: 0.008, exp: 20.00, pred: 963.207, error:7013.032214684326]acc: 0.3\n", + "Cond:#..OO#.. - Act:2 - effect:....OOO. - Num:1 [fit: 0.005, exp: 20.00, pred: 963.207, error:7139.844212528603]acc: 0.3\n", + "Cond:###FOO.# - Act:6 - effect:..OO.... - Num:1 [fit: 0.012, exp: 188.00, pred: 1163.269, error:1460.6696295117993]acc: 0.8085106382978723\n", + "Cond:.##..O.# - Act:6 - effect:....OOO. - Num:1 [fit: 0.058, exp: 0.00, pred: 1115.305, error:2188.0648385950612]acc: None\n", + "Cond:...#F### - Act:2 - effect:....OOO. - Num:1 [fit: 0.057, exp: 165.00, pred: 2122.975, error:224.5084546746298]acc: 0.8848484848484849\n", + "Cond:.#.#OO.. - Act:7 - effect:....OOO. - Num:1 [fit: 0.005, exp: 12.00, pred: 1051.643, error:7577.413047889861]acc: 0.0\n", + "Cond:####..O# - Act:1 - effect:......OO - Num:2 [fit: 0.000, exp: 25.00, pred: 942.357, error:5149.582693621289]acc: 0.24\n", + "Cond:.###...O - Act:7 - effect:.....OF. - Num:2 [fit: 0.004, exp: 25.00, pred: 995.267, error:6046.132923067544]acc: 0.0\n", + "Cond:#..#OO#. - Act:3 - effect:....OOO. - Num:1 [fit: 0.033, exp: 116.00, pred: 1105.491, error:158.38483775791676]acc: 1.0\n", + "Cond:....##FF - Act:4 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 1008.606, error:4429.756784680378]acc: None\n", + "Cond:O#.#.##. - Act:7 - effect:.......O - Num:1 [fit: 0.000, exp: 21.00, pred: 1184.269, error:5396.437556116398]acc: 0.09523809523809523\n", + "Cond:O####... - Act:0 - effect:.O...... - Num:1 [fit: 0.001, exp: 15.00, pred: 940.989, error:5160.851757736933]acc: 0.2\n", + "Cond:...OO#.# - Act:2 - effect:....OOO. - Num:1 [fit: 0.015, exp: 11.00, pred: 934.810, error:5905.226286782271]acc: 0.36363636363636365\n", + "Cond:##.O##.# - Act:2 - effect:....OOO. - Num:1 [fit: 0.004, exp: 17.00, pred: 917.790, error:7036.873190554947]acc: 0.23529411764705882\n", + "Cond:##.FOO.# - Act:6 - effect:..OO.... - Num:2 [fit: 0.014, exp: 184.00, pred: 1163.269, error:1940.678340740399]acc: 0.8097826086956522\n", + "Cond:...###FF - Act:4 - effect:....OOO. - Num:1 [fit: 0.008, exp: 0.00, pred: 936.878, error:840.7070241664348]acc: None\n", + "Cond:..#.FO## - Act:5 - effect:....FO.. - Num:2 [fit: 0.008, exp: 91.00, pred: 1260.267, error:4403.759291506937]acc: 0.5384615384615384\n", + "Cond:.O.#.#O. - Act:7 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1062.435, error:1305.7379189865592]acc: None\n", + "Cond:###O.#O# - Act:1 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 1166.217, error:1132.814531212612]acc: None\n", + "Cond:O....##O - Act:4 - effect:....O.FF - Num:1 [fit: 0.001, exp: 16.00, pred: 1006.384, error:9465.568471325136]acc: 0.0\n", + "Cond:..O.##.O - Act:1 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 876.825, error:1023.8587070732522]acc: None\n", + "Cond:#.#OO#.# - Act:2 - effect:....OOO. - Num:1 [fit: 0.054, exp: 8.00, pred: 946.855, error:5754.639854609089]acc: 0.25\n", + "Cond:.##..O.# - Act:7 - effect:....OOO. - Num:1 [fit: 0.014, exp: 0.00, pred: 1185.795, error:351.3689919772754]acc: None\n", + "Cond:#....O#. - Act:0 - effect:....OOO. - Num:2 [fit: 0.041, exp: 15.00, pred: 1179.208, error:4288.767584165873]acc: 0.4666666666666667\n", + "Cond:#.##.O.. - Act:0 - effect:....OOO. - Num:1 [fit: 0.007, exp: 0.00, pred: 1028.560, error:875.4352905037606]acc: None\n", + "Cond:##O###.O - Act:5 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1166.275, error:1197.751236322753]acc: None\n", + "Cond:.#..O... - Act:3 - effect:OO...... - Num:1 [fit: 0.009, exp: 0.00, pred: 865.625, error:755.0861319880246]acc: None\n", + "Cond:.###.O.# - Act:6 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1021.769, error:904.0887852891783]acc: None\n", + "Cond:.###O### - Act:7 - effect:...O.... - Num:4 [fit: 0.001, exp: 25.00, pred: 1020.246, error:4156.0305229268515]acc: 0.36\n", + "Cond:#..F##.O - Act:5 - effect:....OOO. - Num:1 [fit: 0.009, exp: 0.00, pred: 1052.942, error:549.6782934884673]acc: None\n", + "Cond:.O..#..# - Act:3 - effect:OO...... - Num:1 [fit: 0.003, exp: 12.00, pred: 835.930, error:4718.255183059953]acc: 0.25\n", + "Cond:##.#.#OF - Act:7 - effect:....OOO. - Num:3 [fit: 0.058, exp: 433.00, pred: 1948.419, error:251.07661682020802]acc: 0.9953810623556582\n", + "Cond:####.F.O - Act:4 - effect:.....OF. - Num:1 [fit: 0.025, exp: 0.00, pred: 808.162, error:32.63920417700035]acc: None\n", + "Cond:O....#.# - Act:4 - effect:....OOO. - Num:2 [fit: 0.001, exp: 14.00, pred: 1004.411, error:7097.553836215022]acc: 0.35714285714285715\n", + "Cond:####FO.# - Act:4 - effect:....OOO. - Num:1 [fit: 0.015, exp: 28.00, pred: 1131.033, error:204.80157681536758]acc: 1.0\n", + "Cond:#.#.F..# - Act:5 - effect:....OOO. - Num:1 [fit: 0.008, exp: 0.00, pred: 923.706, error:430.68139192476815]acc: None\n", + "Cond:.######F - Act:0 - effect:...O.... - Num:2 [fit: 0.000, exp: 22.00, pred: 997.463, error:6256.19761677974]acc: 0.2727272727272727\n", + "Cond:....#O.O - Act:0 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 936.280, error:332.1196052707563]acc: None\n", + "Cond:.#..#O#O - Act:7 - effect:....OOO. - Num:1 [fit: 0.017, exp: 0.00, pred: 1058.378, error:211.97764998790768]acc: None\n", + "Cond:.#O...## - Act:2 - effect:.OOO.... - Num:1 [fit: 0.003, exp: 25.00, pred: 885.490, error:5350.027376557834]acc: 0.2\n", + "Cond:#O#.#O.# - Act:6 - effect:.....OF. - Num:1 [fit: 0.021, exp: 0.00, pred: 1109.651, error:144.34854908338855]acc: None\n", + "Cond:#.OO#.## - Act:4 - effect:....OOO. - Num:1 [fit: 0.001, exp: 15.00, pred: 1007.693, error:7868.327377679528]acc: 0.0\n", + "Cond:##..#O#F - Act:7 - effect:....OOO. - Num:3 [fit: 0.060, exp: 431.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:##O##.O. - Act:6 - effect:.....OF. - Num:2 [fit: 0.002, exp: 0.00, pred: 918.132, error:683.4187664924968]acc: None\n", + "Cond:.#...O.. - Act:0 - effect:....OOO. - Num:1 [fit: 0.032, exp: 0.00, pred: 973.801, error:375.751527853884]acc: None\n", + "Cond:.###.F## - Act:5 - effect:....OOO. - Num:3 [fit: 0.053, exp: 319.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:###.F##. - Act:4 - effect:....OOO. - Num:1 [fit: 0.011, exp: 26.00, pred: 1130.647, error:203.81744345551311]acc: 1.0\n", + "Cond:.O#..### - Act:3 - effect:OO...... - Num:1 [fit: 0.000, exp: 25.00, pred: 825.871, error:6539.104299206734]acc: 0.04\n", + "Cond:#OO.#### - Act:2 - effect:.....OOF - Num:2 [fit: 0.001, exp: 24.00, pred: 884.431, error:5491.6029985462565]acc: 0.08333333333333333\n", + "Cond:##.O#.#. - Act:0 - effect:.OO..... - Num:1 [fit: 0.000, exp: 21.00, pred: 787.769, error:6677.694462181593]acc: 0.047619047619047616\n", + "Cond:..##O.#. - Act:7 - effect:....OOO. - Num:1 [fit: 0.003, exp: 10.00, pred: 922.765, error:7445.5902493665435]acc: 0.0\n", + "Cond:..O##.## - Act:0 - effect:....OOO. - Num:1 [fit: 0.004, exp: 9.00, pred: 1021.005, error:8323.165820830904]acc: 0.0\n", + "Cond:##..OO#F - Act:7 - effect:....OOO. - Num:1 [fit: 0.021, exp: 0.00, pred: 1060.518, error:18.55377904654062]acc: None\n", + "Cond:#..F#.## - Act:5 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 912.637, error:634.3465699451797]acc: None\n", + "Cond:##.#OO## - Act:2 - effect:.....F.. - Num:5 [fit: 0.072, exp: 105.00, pred: 2306.930, error:381.90173194241623]acc: 0.7714285714285715\n", + "Cond:#...F#.. - Act:2 - effect:....OOO. - Num:1 [fit: 0.057, exp: 164.00, pred: 2122.975, error:224.50845468891424]acc: 0.8780487804878049\n", + "Cond:.....FO# - Act:5 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1308.336, error:67.69590448735448]acc: None\n", + "Cond:.#.#O#OF - Act:7 - effect:....OOO. - Num:1 [fit: 0.015, exp: 0.00, pred: 1113.062, error:118.47663130622537]acc: None\n", + "Cond:..OOO#.. - Act:0 - effect:....OOO. - Num:1 [fit: 0.013, exp: 0.00, pred: 1456.897, error:726.5811669568604]acc: None\n", + "Cond:.#..#F#. - Act:5 - effect:....OOO. - Num:2 [fit: 0.035, exp: 310.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:.##..... - Act:3 - effect:OO...... - Num:4 [fit: 0.002, exp: 23.00, pred: 826.283, error:6551.705327288914]acc: 0.17391304347826086\n", + "Cond:O...#### - Act:4 - effect:....OOO. - Num:2 [fit: 0.080, exp: 10.00, pred: 1035.448, error:6718.563312298]acc: 0.4\n", + "Cond:O#.##O.# - Act:5 - effect:....O.FF - Num:1 [fit: 0.002, exp: 0.00, pred: 969.586, error:1289.8011984211457]acc: None\n", + "Cond:#.#.#OO# - Act:0 - effect:....OOO. - Num:1 [fit: 0.000, exp: 17.00, pred: 996.992, error:6950.33004245566]acc: 0.29411764705882354\n", + "Cond:..#...## - Act:1 - effect:....OOO. - Num:1 [fit: 0.000, exp: 21.00, pred: 854.923, error:10329.396428239139]acc: 0.0\n", + "Cond:.#O##.F# - Act:7 - effect:....OOO. - Num:1 [fit: 0.015, exp: 0.00, pred: 820.268, error:0.0]acc: None\n", + "Cond:...O#.#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.005, exp: 18.00, pred: 783.612, error:8577.797410377469]acc: 0.0\n", + "Cond:##.F#O#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.006, exp: 9.00, pred: 1079.681, error:6585.607126060172]acc: 0.0\n", + "Cond:O##..#.. - Act:4 - effect:....O.FF - Num:1 [fit: 0.001, exp: 12.00, pred: 927.406, error:8191.457296705652]acc: 0.0\n", + "Cond:.##.OO## - Act:6 - effect:....OOO. - Num:1 [fit: 0.026, exp: 0.00, pred: 1087.604, error:1295.6822744194967]acc: None\n", + "Cond:##.F#O.# - Act:6 - effect:..OO.... - Num:1 [fit: 0.009, exp: 179.00, pred: 1163.269, error:1460.6696295117958]acc: 0.88268156424581\n", + "Cond:#..O#.#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 15.00, pred: 791.565, error:8913.31983390825]acc: 0.0\n", + "Cond:..#O#.#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.000, exp: 24.00, pred: 794.459, error:9292.107021132622]acc: 0.0\n", + "Cond:.#.###.O - Act:1 - effect:....OOO. - Num:1 [fit: 0.003, exp: 8.00, pred: 871.992, error:6733.987840016974]acc: 0.0\n", + "Cond:.#..#O.. - Act:0 - effect:....OOO. - Num:2 [fit: 0.001, exp: 16.00, pred: 1004.701, error:7763.414297423775]acc: 0.0\n", + "Cond:....#.## - Act:1 - effect:....OOO. - Num:1 [fit: 0.000, exp: 19.00, pred: 858.787, error:8850.111219334238]acc: 0.0\n", + "Cond:##O...## - Act:2 - effect:.OOO.... - Num:1 [fit: 0.003, exp: 21.00, pred: 885.927, error:5855.456601156446]acc: 0.14285714285714285\n", + "Cond:.#O...## - Act:7 - effect:.OOO.... - Num:2 [fit: 0.158, exp: 3.00, pred: 879.775, error:3538.8397844312008]acc: 0.0\n", + "Cond:#O#O#.#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.000, exp: 19.00, pred: 888.833, error:7066.98085659963]acc: 0.0\n", + "Cond:#OOO.#.. - Act:2 - effect:....OOO. - Num:2 [fit: 0.001, exp: 23.00, pred: 975.977, error:5813.3981571762015]acc: 0.0\n", + "Cond:###.#O#F - Act:7 - effect:....OOO. - Num:4 [fit: 0.074, exp: 421.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:###O...O - Act:7 - effect:....OOO. - Num:1 [fit: 0.140, exp: 0.00, pred: 1051.743, error:3961.9952374483723]acc: None\n", + "Cond:...F#O#. - Act:6 - effect:..OO.... - Num:2 [fit: 0.021, exp: 178.00, pred: 1163.269, error:1620.6870519689855]acc: 0.8595505617977528\n", + "Cond:##.#.F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 304.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:##...O#. - Act:2 - effect:.....OOF - Num:5 [fit: 1.230, exp: 52.00, pred: 2208.265, error:255.38892135914688]acc: 0.5961538461538461\n", + "Cond:##..##OF - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 420.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#..O#.## - Act:4 - effect:....OOO. - Num:1 [fit: 0.000, exp: 22.00, pred: 839.935, error:4031.502101037802]acc: 0.0\n", + "Cond:OO#.#.#. - Act:6 - effect:.......O - Num:1 [fit: 0.091, exp: 36.00, pred: 1114.181, error:1718.8469268271583]acc: 0.4722222222222222\n", + "Cond:.....FO. - Act:5 - effect:....OOO. - Num:2 [fit: 0.005, exp: 0.00, pred: 1434.700, error:62.1066200614486]acc: None\n", + "Cond:##.#.O#. - Act:4 - effect:....OOO. - Num:2 [fit: 0.005, exp: 16.00, pred: 1235.882, error:7732.496695041442]acc: 0.25\n", + "Cond:.....O.. - Act:0 - effect:....OOO. - Num:1 [fit: 0.009, exp: 0.00, pred: 1151.771, error:1088.292194855013]acc: None\n", + "Cond:...O#O## - Act:6 - effect:....OOO. - Num:1 [fit: 0.083, exp: 0.00, pred: 1509.945, error:1268.5871383359238]acc: None\n", + "Cond:#.#.F#.# - Act:2 - effect:....OOO. - Num:3 [fit: 0.170, exp: 161.00, pred: 2122.975, error:224.508454682177]acc: 0.8819875776397516\n", + "Cond:O###.##O - Act:0 - effect:.....F.. - Num:1 [fit: 0.000, exp: 25.00, pred: 926.870, error:3858.770800372124]acc: 0.28\n", + "Cond:OO#...## - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 20.00, pred: 916.585, error:8688.539657109766]acc: 0.0\n", + "Cond:#.#####F - Act:1 - effect:....OOO. - Num:1 [fit: 0.002, exp: 13.00, pred: 1066.490, error:7746.085598759449]acc: 0.0\n", + "Cond:##.#O..O - Act:5 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1293.110, error:619.9851913568108]acc: None\n", + "Cond:.OO...#. - Act:4 - effect:OO...... - Num:3 [fit: 0.044, exp: 12.00, pred: 887.945, error:6930.928356431701]acc: 0.0\n", + "Cond:##O....# - Act:2 - effect:.OOO.... - Num:1 [fit: 0.001, exp: 20.00, pred: 886.808, error:4775.966501348611]acc: 0.15\n", + "Cond:#.OO#..# - Act:2 - effect:..OO.... - Num:1 [fit: 0.052, exp: 42.00, pred: 894.597, error:2349.1514127427645]acc: 0.21428571428571427\n", + "Cond:..#.F### - Act:7 - effect:...OO... - Num:2 [fit: 0.024, exp: 76.00, pred: 1034.588, error:4481.580989883558]acc: 0.6578947368421053\n", + "Cond:#..#OO## - Act:3 - effect:....OOO. - Num:2 [fit: 0.061, exp: 98.00, pred: 1105.491, error:158.38483751679058]acc: 1.0\n", + "Cond:##..F#.# - Act:2 - effect:....OOO. - Num:3 [fit: 0.160, exp: 159.00, pred: 2122.975, error:224.5084546777185]acc: 0.8867924528301887\n", + "Cond:#..#.#.. - Act:7 - effect:....OOO. - Num:1 [fit: 0.001, exp: 21.00, pred: 1042.910, error:6409.685499208511]acc: 0.0\n", + "Cond:.###.O#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.004, exp: 7.00, pred: 1001.028, error:7189.173497077448]acc: 0.0\n", + "Cond:#..O##.. - Act:1 - effect:....OOO. - Num:1 [fit: 0.002, exp: 18.00, pred: 927.171, error:9561.76280132354]acc: 0.0\n", + "Cond:##.#OO.# - Act:7 - effect:...O.... - Num:1 [fit: 0.096, exp: 9.00, pred: 1071.765, error:2706.2570562050705]acc: 0.6666666666666666\n", + "Cond:O#.#O### - Act:4 - effect:....OOO. - Num:1 [fit: 0.007, exp: 0.00, pred: 1157.953, error:775.3412984299828]acc: None\n", + "Cond:###.#OO# - Act:4 - effect:.....OOF - Num:3 [fit: 0.000, exp: 20.00, pred: 1034.811, error:6127.301496684324]acc: 0.05\n", + "Cond:O.....## - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 15.00, pred: 947.093, error:7111.730253178081]acc: 0.0\n", + "Cond:#.#..#.# - Act:4 - effect:.....F.. - Num:1 [fit: 0.003, exp: 42.00, pred: 1006.277, error:4893.737011127981]acc: 0.38095238095238093\n", + "Cond:.#.#O#O. - Act:3 - effect:....OOO. - Num:1 [fit: 0.043, exp: 0.00, pred: 1321.569, error:50.902385214747554]acc: None\n", + "Cond:.O...#.. - Act:0 - effect:OO...... - Num:1 [fit: 0.004, exp: 13.00, pred: 997.526, error:6758.451264244362]acc: 0.07692307692307693\n", + "Cond:..O##.#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.003, exp: 9.00, pred: 1021.005, error:8384.861820830904]acc: 0.0\n", + "Cond:O..#..## - Act:1 - effect:....OOO. - Num:1 [fit: 0.005, exp: 9.00, pred: 981.302, error:4243.839959297607]acc: 0.0\n", + "Cond:.##.#... - Act:3 - effect:OO...... - Num:1 [fit: 0.000, exp: 21.00, pred: 829.548, error:5893.880703674566]acc: 0.14285714285714285\n", + "Cond:####O#O. - Act:3 - effect:....OOO. - Num:1 [fit: 0.017, exp: 0.00, pred: 1128.686, error:26.790410853213366]acc: None\n", + "Cond:##OO##.# - Act:4 - effect:....OOO. - Num:2 [fit: 0.006, exp: 18.00, pred: 885.446, error:7948.919356518577]acc: 0.0\n", + "Cond:###.#OO. - Act:4 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 1014.373, error:274.4644242964636]acc: None\n", + "Cond:.OO#..## - Act:0 - effect:....OOO. - Num:2 [fit: 0.000, exp: 25.00, pred: 931.308, error:7440.364719725592]acc: 0.0\n", + "Cond:.OO##.## - Act:0 - effect:....OOO. - Num:1 [fit: 0.000, exp: 25.00, pred: 931.308, error:6860.769574667276]acc: 0.0\n", + "Cond:..#...O# - Act:7 - effect:....OOO. - Num:2 [fit: 0.005, exp: 13.00, pred: 909.250, error:4247.205720622724]acc: 0.0\n", + "Cond:##..###F - Act:0 - effect:....OOO. - Num:1 [fit: 0.100, exp: 8.00, pred: 1002.333, error:6868.261897729179]acc: 0.375\n", + "Cond:##...F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 293.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:#....FO. - Act:5 - effect:....OOO. - Num:2 [fit: 0.011, exp: 0.00, pred: 1348.377, error:61.10575644354802]acc: None\n", + "Cond:#.....#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1100.036, error:1117.9886987161249]acc: None\n", + "Cond:#O#O.... - Act:2 - effect:....OOO. - Num:1 [fit: 0.005, exp: 20.00, pred: 981.012, error:4731.704140830461]acc: 0.0\n", + "Cond:###..OO# - Act:4 - effect:....OOO. - Num:1 [fit: 0.000, exp: 20.00, pred: 1034.811, error:7936.2366032109]acc: 0.0\n", + "Cond:##...O#. - Act:1 - effect:....OOO. - Num:2 [fit: 0.005, exp: 7.00, pred: 1001.028, error:7225.973497077448]acc: 0.0\n", + "Cond:##..#O#F - Act:1 - effect:....OOO. - Num:2 [fit: 0.007, exp: 13.00, pred: 1066.490, error:7639.983838759449]acc: 0.0\n", + "Cond:#.#.OO#. - Act:2 - effect:....OOO. - Num:2 [fit: 0.004, exp: 0.00, pred: 1163.048, error:870.1268618310969]acc: None\n", + "Cond:.#OO..F# - Act:7 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 973.874, error:668.2818806024384]acc: None\n", + "Cond:......## - Act:7 - effect:....OOO. - Num:1 [fit: 0.001, exp: 22.00, pred: 942.966, error:5133.8964203040305]acc: 0.0\n", + "Cond:#...#O#F - Act:7 - effect:....OOO. - Num:2 [fit: 0.039, exp: 415.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:..#O#### - Act:2 - effect:..OO.... - Num:2 [fit: 0.955, exp: 48.00, pred: 894.425, error:2034.5255152647255]acc: 0.6458333333333334\n", + "Cond:..OO#.## - Act:0 - effect:....OOO. - Num:1 [fit: 0.003, exp: 7.00, pred: 1040.430, error:7999.377026139935]acc: 0.0\n", + "Cond:.O##.... - Act:4 - effect:......OO - Num:1 [fit: 0.002, exp: 27.00, pred: 794.516, error:1372.6361672836679]acc: 0.3333333333333333\n", + "Cond:#...OO## - Act:7 - effect:....OOO. - Num:1 [fit: 0.022, exp: 0.00, pred: 1080.109, error:18.230085362106077]acc: None\n", + "Cond:#.#.##O# - Act:1 - effect:....OOO. - Num:3 [fit: 0.003, exp: 19.00, pred: 933.608, error:9365.201202086935]acc: 0.0\n", + "Cond:###..... - Act:1 - effect:...O.... - Num:1 [fit: 0.000, exp: 24.00, pred: 871.141, error:6450.7688476236335]acc: 0.0\n", + "Cond:#.O#.O## - Act:7 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 1079.406, error:0.0]acc: None\n", + "Cond:.#O###.. - Act:1 - effect:....OOO. - Num:1 [fit: 0.000, exp: 23.00, pred: 875.541, error:6421.88475580348]acc: 0.0\n", + "Cond:##O...#. - Act:2 - effect:.OOO.... - Num:1 [fit: 0.003, exp: 18.00, pred: 893.482, error:4771.666280118045]acc: 0.16666666666666666\n", + "Cond:#..#.O#F - Act:7 - effect:....OOO. - Num:2 [fit: 0.039, exp: 410.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#..##.#. - Act:2 - effect:....OOO. - Num:1 [fit: 0.003, exp: 10.00, pred: 919.542, error:5243.0372593535]acc: 0.2\n", + "Cond:..OO..#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.004, exp: 5.00, pred: 979.421, error:4940.556361245001]acc: 0.0\n", + "Cond:.OOO#.## - Act:0 - effect:....OOO. - Num:1 [fit: 0.002, exp: 8.00, pred: 1004.451, error:6302.298967767769]acc: 0.0\n", + "Cond:##..#OO# - Act:4 - effect:....OOO. - Num:2 [fit: 0.003, exp: 18.00, pred: 1045.211, error:6516.255773492856]acc: 0.0\n", + "Cond:..####O# - Act:1 - effect:....OOO. - Num:1 [fit: 0.004, exp: 16.00, pred: 946.076, error:8538.619763833096]acc: 0.0\n", + "Cond:.#.#OO#. - Act:4 - effect:....OOO. - Num:2 [fit: 0.035, exp: 10.00, pred: 980.391, error:2033.4125965866044]acc: 0.4\n", + "Cond:.###OO.. - Act:2 - effect:.....F.. - Num:1 [fit: 0.038, exp: 100.00, pred: 2306.930, error:354.1819484250224]acc: 0.79\n", + "Cond:O....#.O - Act:4 - effect:....OOO. - Num:2 [fit: 0.062, exp: 9.00, pred: 1006.424, error:6204.464909678266]acc: 0.3333333333333333\n", + "Cond:.#OO#### - Act:0 - effect:...OO... - Num:2 [fit: 0.014, exp: 14.00, pred: 1017.084, error:6369.095052322562]acc: 0.14285714285714285\n", + "Cond:.O###.#. - Act:0 - effect:.OOO.... - Num:1 [fit: 0.001, exp: 23.00, pred: 878.509, error:3941.113898032443]acc: 0.2608695652173913\n", + "Cond:#...##OF - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 409.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#.#.##.F - Act:1 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 1074.144, error:709.7881398860716]acc: None\n", + "Cond:##O#.... - Act:1 - effect:....OOO. - Num:1 [fit: 0.000, exp: 22.00, pred: 875.837, error:5771.15099383008]acc: 0.0\n", + "Cond:.###F### - Act:4 - effect:....OOO. - Num:1 [fit: 0.017, exp: 13.00, pred: 1125.882, error:188.64978317953808]acc: 1.0\n", + "Cond:##O#O#.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 1261.428, error:1173.4487207634247]acc: None\n", + "Cond:#...#.O# - Act:2 - effect:OO...... - Num:1 [fit: 0.043, exp: 9.00, pred: 883.879, error:5693.040743898501]acc: 0.2222222222222222\n", + "Cond:.....#.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.001, exp: 16.00, pred: 1117.039, error:1793.2004018354007]acc: 0.5\n", + "Cond:...##O.# - Act:5 - effect:....FO.. - Num:1 [fit: 0.004, exp: 231.00, pred: 1320.594, error:1171.1791953028549]acc: 0.5584415584415584\n", + "Cond:#.#O.O#. - Act:3 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 1123.591, error:1700.091409931207]acc: None\n", + "Cond:.#.O..## - Act:6 - effect:....OOO. - Num:2 [fit: 0.010, exp: 19.00, pred: 1069.355, error:7536.460272827986]acc: 0.15789473684210525\n", + "Cond:##.##OF# - Act:4 - effect:....OOO. - Num:1 [fit: 0.005, exp: 6.00, pred: 1088.502, error:6208.7936350304535]acc: 0.16666666666666666\n", + "Cond:###.#OO# - Act:1 - effect:....OOO. - Num:1 [fit: 0.003, exp: 9.00, pred: 1049.984, error:6203.257866034073]acc: 0.0\n", + "Cond:.#..#.#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.014, exp: 6.00, pred: 988.075, error:5834.716997303678]acc: 0.0\n", + "Cond:...##..# - Act:3 - effect:.....OF. - Num:1 [fit: 0.018, exp: 47.00, pred: 1008.264, error:1369.8845408531315]acc: 0.3829787234042553\n", + "Cond:O#..#.#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.013, exp: 6.00, pred: 876.204, error:5475.777498797797]acc: 0.0\n", + "Cond:OO#.#.## - Act:1 - effect:...O.... - Num:1 [fit: 0.001, exp: 19.00, pred: 955.625, error:5665.97570869106]acc: 0.0\n", + "Cond:....OF## - Act:5 - effect:....OOO. - Num:1 [fit: 0.021, exp: 0.00, pred: 1123.643, error:29.896631049635413]acc: None\n", + "Cond:O..#.### - Act:7 - effect:O......O - Num:1 [fit: 0.001, exp: 22.00, pred: 1118.372, error:4435.852055856041]acc: 0.5\n", + "Cond:#O.##O## - Act:7 - effect:....OOO. - Num:1 [fit: 0.024, exp: 0.00, pred: 1188.022, error:55.37511225523055]acc: None\n", + "Cond:.###O#.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.000, exp: 20.00, pred: 810.796, error:2501.4158336514356]acc: 0.15\n", + "Cond:...#O#.# - Act:4 - effect:....OOO. - Num:1 [fit: 0.000, exp: 20.00, pred: 810.796, error:2284.101103617628]acc: 0.15\n", + "Cond:###.OO## - Act:7 - effect:....OOO. - Num:1 [fit: 0.026, exp: 0.00, pred: 1121.133, error:31.10525192777638]acc: None\n", + "Cond:.##.O##. - Act:1 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1289.998, error:1017.8412133248366]acc: None\n", + "Cond:###..O## - Act:4 - effect:....OOO. - Num:1 [fit: 0.000, exp: 15.00, pred: 987.047, error:7109.103306066081]acc: 0.06666666666666667\n", + "Cond:...##O#O - Act:5 - effect:....OOO. - Num:1 [fit: 0.024, exp: 0.00, pred: 1192.881, error:197.62092705875915]acc: None\n", + "Cond:#.#....# - Act:4 - effect:....OOO. - Num:1 [fit: 0.001, exp: 23.00, pred: 1062.806, error:5444.868971052221]acc: 0.2608695652173913\n", + "Cond:..#.F### - Act:4 - effect:....OOO. - Num:1 [fit: 0.171, exp: 8.00, pred: 1088.254, error:115.54034266474295]acc: 1.0\n", + "Cond:#OO...## - Act:2 - effect:......OO - Num:1 [fit: 0.001, exp: 17.00, pred: 891.989, error:5789.253152962113]acc: 0.23529411764705882\n", + "Cond:#....OO# - Act:0 - effect:....OOO. - Num:1 [fit: 0.040, exp: 6.00, pred: 955.559, error:6255.392959681413]acc: 0.16666666666666666\n", + "Cond:...#.##. - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 16.00, pred: 873.226, error:7812.716457785144]acc: 0.0625\n", + "Cond:O####..# - Act:1 - effect:O......O - Num:2 [fit: 0.001, exp: 25.00, pred: 934.696, error:4147.857231064772]acc: 0.24\n", + "Cond:O##F#..# - Act:3 - effect:.......O - Num:1 [fit: 0.013, exp: 0.00, pred: 985.055, error:770.9955347799336]acc: None\n", + "Cond:.#...O## - Act:4 - effect:....OOO. - Num:2 [fit: 0.009, exp: 14.00, pred: 976.229, error:7580.421292840967]acc: 0.07142857142857142\n", + "Cond:#.#F##.O - Act:5 - effect:....OOO. - Num:1 [fit: 0.007, exp: 0.00, pred: 1180.821, error:607.5723119457497]acc: None\n", + "Cond:O####O#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.015, exp: 0.00, pred: 1364.790, error:133.75372182608587]acc: None\n", + "Cond:.#.O#.#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 13.00, pred: 780.828, error:7788.034951515125]acc: 0.0\n", + "Cond:.##.O### - Act:7 - effect:...O.... - Num:1 [fit: 0.008, exp: 0.00, pred: 831.823, error:924.7105510165359]acc: None\n", + "Cond:.###.F.. - Act:0 - effect:....OOO. - Num:1 [fit: 0.012, exp: 3.00, pred: 1127.759, error:3684.222163432582]acc: 0.0\n", + "Cond:....###. - Act:0 - effect:....OOO. - Num:1 [fit: 0.002, exp: 23.00, pred: 1009.725, error:7351.056643384629]acc: 0.043478260869565216\n", + "Cond:..O#.### - Act:7 - effect:....OOO. - Num:2 [fit: 0.001, exp: 20.00, pred: 1004.851, error:5896.240223296991]acc: 0.5\n", + "Cond:#####O#. - Act:4 - effect:....OOO. - Num:3 [fit: 0.007, exp: 19.00, pred: 940.893, error:2631.4559222713624]acc: 0.5789473684210527\n", + "Cond:#.#.#OO# - Act:1 - effect:....OOO. - Num:1 [fit: 0.003, exp: 8.00, pred: 1079.622, error:6220.824847843168]acc: 0.0\n", + "Cond:##.##O#F - Act:1 - effect:....OOO. - Num:1 [fit: 0.004, exp: 8.00, pred: 1079.622, error:5930.904847843167]acc: 0.0\n", + "Cond:###..OOF - Act:0 - effect:....OOO. - Num:1 [fit: 0.021, exp: 6.00, pred: 955.559, error:6559.392959681413]acc: 0.16666666666666666\n", + "Cond:...##O#F - Act:6 - effect:.....OOF - Num:1 [fit: 0.011, exp: 180.00, pred: 921.781, error:3931.4158313498556]acc: 0.5277777777777778\n", + "Cond:#O.#.### - Act:4 - effect:OO...... - Num:4 [fit: 0.001, exp: 19.00, pred: 825.848, error:5063.364127774808]acc: 0.15789473684210525\n", + "Cond:.#...O#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.023, exp: 4.00, pred: 1026.497, error:5037.340425239013]acc: 0.0\n", + "Cond:O.....## - Act:4 - effect:....OOO. - Num:1 [fit: 0.009, exp: 6.00, pred: 945.688, error:5316.197174365649]acc: 0.16666666666666666\n", + "Cond:#O.###.O - Act:7 - effect:.....OF. - Num:1 [fit: 0.013, exp: 9.00, pred: 909.369, error:4240.599383266738]acc: 0.0\n", + "Cond:#..O###. - Act:1 - effect:....OOO. - Num:1 [fit: 0.002, exp: 12.00, pred: 910.876, error:9204.588380235224]acc: 0.0\n", + "Cond:####.##F - Act:2 - effect:....OOO. - Num:1 [fit: 0.013, exp: 1.00, pred: 660.550, error:2200.0]acc: 0.0\n", + "Cond:#..##O#F - Act:7 - effect:....OOO. - Num:3 [fit: 0.058, exp: 401.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:OO##.### - Act:2 - effect:..O..... - Num:1 [fit: 0.000, exp: 21.00, pred: 1058.280, error:6765.65456948671]acc: 0.0\n", + "Cond:##..OO## - Act:1 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 1013.568, error:1385.4809014713112]acc: None\n", + "Cond:O.#.#### - Act:4 - effect:....OOO. - Num:1 [fit: 0.011, exp: 5.00, pred: 956.797, error:5048.356122065812]acc: 0.2\n", + "Cond:#...##.. - Act:0 - effect:....OOO. - Num:2 [fit: 0.005, exp: 11.00, pred: 986.086, error:7994.7503941852865]acc: 0.0\n", + "Cond:#.#OOO.# - Act:2 - effect:....OOO. - Num:1 [fit: 0.017, exp: 0.00, pred: 938.845, error:344.1884695896672]acc: None\n", + "Cond:##..#..O - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 20.00, pred: 922.886, error:4931.738911070224]acc: 0.0\n", + "Cond:O##..##O - Act:0 - effect:....OOO. - Num:3 [fit: 0.001, exp: 13.00, pred: 918.315, error:6929.740677655802]acc: 0.0\n", + "Cond:...#O... - Act:4 - effect:....OOO. - Num:1 [fit: 0.002, exp: 9.00, pred: 837.411, error:2904.3721531425126]acc: 0.0\n", + "Cond:O..O##.. - Act:1 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 932.358, error:807.3249005059434]acc: None\n", + "Cond:.#OO##.# - Act:1 - effect:....OOO. - Num:1 [fit: 0.007, exp: 16.00, pred: 897.761, error:6209.596489418058]acc: 0.0\n", + "Cond:O..####. - Act:7 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1209.530, error:242.4169705767511]acc: None\n", + "Cond:##..OO.# - Act:6 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1299.777, error:757.1374822574143]acc: None\n", + "Cond:##..#O## - Act:4 - effect:....OOO. - Num:1 [fit: 0.002, exp: 18.00, pred: 983.492, error:5171.44948084626]acc: 0.3888888888888889\n", + "Cond:##...OOF - Act:1 - effect:....OOO. - Num:2 [fit: 0.009, exp: 7.00, pred: 1140.401, error:5483.726256211144]acc: 0.0\n", + "Cond:#..#F##. - Act:1 - effect:....FO.. - Num:1 [fit: 0.029, exp: 28.00, pred: 975.799, error:2368.050844853158]acc: 0.35714285714285715\n", + "Cond:#OO.#.#. - Act:2 - effect:.OOO.... - Num:1 [fit: 0.006, exp: 16.00, pred: 896.128, error:4860.248857020593]acc: 0.1875\n", + "Cond:####.#.O - Act:0 - effect:....OOO. - Num:1 [fit: 0.000, exp: 18.00, pred: 921.395, error:5617.328213899707]acc: 0.0\n", + "Cond:.....F.. - Act:5 - effect:....OOO. - Num:2 [fit: 0.035, exp: 274.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:..OO#..# - Act:2 - effect:....OOO. - Num:3 [fit: 0.015, exp: 33.00, pred: 894.638, error:2372.343952856445]acc: 0.0\n", + "Cond:#...##O# - Act:1 - effect:....OOO. - Num:2 [fit: 0.007, exp: 12.00, pred: 960.768, error:9132.85621377589]acc: 0.0\n", + "Cond:..#O#.## - Act:3 - effect:...OO... - Num:1 [fit: 0.007, exp: 44.00, pred: 995.946, error:2598.2678715832726]acc: 0.25\n", + "Cond:.##O.### - Act:4 - effect:...O.... - Num:1 [fit: 0.001, exp: 15.00, pred: 987.984, error:7184.175647682119]acc: 0.0\n", + "Cond:...#OO## - Act:7 - effect:...OO... - Num:1 [fit: 0.003, exp: 9.00, pred: 1071.765, error:5950.481056205071]acc: 0.0\n", + "Cond:##.#F.## - Act:7 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 1085.547, error:465.38443993318714]acc: None\n", + "Cond:O#..#.#O - Act:7 - effect:O......O - Num:1 [fit: 0.013, exp: 22.00, pred: 933.227, error:5329.225918824744]acc: 0.3181818181818182\n", + "Cond:###.F#.. - Act:2 - effect:....OOO. - Num:4 [fit: 0.230, exp: 155.00, pred: 2122.975, error:224.50845468114454]acc: 0.8903225806451613\n", + "Cond:..#..F#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.003, exp: 9.00, pred: 1026.777, error:7547.631911401478]acc: 0.0\n", + "Cond:.#...#O. - Act:5 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 1179.577, error:48.677548234721186]acc: None\n", + "Cond:..#..O.# - Act:4 - effect:....OOO. - Num:1 [fit: 0.022, exp: 0.00, pred: 1466.902, error:34.877244006574216]acc: None\n", + "Cond:..#FO#.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.152, exp: 6.00, pred: 1001.851, error:939.2201135592215]acc: 0.3333333333333333\n", + "Cond:#.##O##. - Act:7 - effect:....OOO. - Num:1 [fit: 0.000, exp: 18.00, pred: 1024.812, error:7617.665767904958]acc: 0.0\n", + "Cond:...#OO## - Act:3 - effect:....OOO. - Num:2 [fit: 0.021, exp: 85.00, pred: 1105.491, error:158.38483300476872]acc: 1.0\n", + "Cond:O###F#.# - Act:3 - effect:.......O - Num:1 [fit: 0.001, exp: 0.00, pred: 960.155, error:1168.9365901385563]acc: None\n", + "Cond:#.##FOO. - Act:4 - effect:....OOO. - Num:1 [fit: 0.009, exp: 0.00, pred: 1094.216, error:80.58512109215224]acc: None\n", + "Cond:#...#.O. - Act:2 - effect:OO...... - Num:1 [fit: 0.017, exp: 0.00, pred: 1172.475, error:430.65497219373026]acc: None\n", + "Cond:#.....O# - Act:2 - effect:OO...... - Num:2 [fit: 0.014, exp: 6.00, pred: 787.619, error:3089.155030683762]acc: 0.16666666666666666\n", + "Cond:#O.O##.. - Act:1 - effect:...O.... - Num:1 [fit: 0.001, exp: 0.00, pred: 841.365, error:752.9267705224405]acc: None\n", + "Cond:O##....O - Act:2 - effect:..OO.... - Num:1 [fit: 0.001, exp: 13.00, pred: 1007.771, error:8438.989174823282]acc: 0.0\n", + "Cond:#.#.O#.. - Act:7 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 957.014, error:366.41658705296413]acc: None\n", + "Cond:..#O#### - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 17.00, pred: 791.705, error:9035.657879132992]acc: 0.0\n", + "Cond:.#O####. - Act:0 - effect:...OO... - Num:1 [fit: 0.001, exp: 17.00, pred: 923.582, error:6121.254225867525]acc: 0.0\n", + "Cond:###OO### - Act:3 - effect:..OO.... - Num:1 [fit: 0.003, exp: 17.00, pred: 985.410, error:1286.0914140484142]acc: 0.058823529411764705\n", + "Cond:..##O##. - Act:7 - effect:....OOO. - Num:1 [fit: 0.000, exp: 16.00, pred: 1018.736, error:7140.191610189184]acc: 0.0\n", + "Cond:.O#####. - Act:0 - effect:.....F.. - Num:1 [fit: 0.008, exp: 18.00, pred: 879.641, error:6557.2805284860915]acc: 0.1111111111111111\n", + "Cond:#.#....# - Act:2 - effect:......OO - Num:1 [fit: 0.000, exp: 25.00, pred: 939.974, error:3554.823893881584]acc: 0.12\n", + "Cond:#.###OO. - Act:1 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 1314.037, error:801.0197851704738]acc: None\n", + "Cond:#..#.OO# - Act:3 - effect:......OO - Num:2 [fit: 0.111, exp: 34.00, pred: 1220.611, error:2380.854261717266]acc: 0.47058823529411764\n", + "Cond:O#.#.#.O - Act:7 - effect:O......O - Num:1 [fit: 0.001, exp: 18.00, pred: 941.907, error:4437.822910745242]acc: 0.16666666666666666\n", + "Cond:#...O### - Act:6 - effect:....OOO. - Num:1 [fit: 0.010, exp: 0.00, pred: 1001.189, error:444.8713617716265]acc: None\n", + "Cond:##O#...# - Act:4 - effect:....OOO. - Num:1 [fit: 0.004, exp: 20.00, pred: 810.859, error:6963.245379383307]acc: 0.0\n", + "Cond:.#O#.... - Act:4 - effect:....OOO. - Num:3 [fit: 0.007, exp: 19.00, pred: 810.316, error:6758.424241727382]acc: 0.0\n", + "Cond:O.##...# - Act:4 - effect:....OOO. - Num:1 [fit: 0.018, exp: 2.00, pred: 1054.910, error:2706.696961108334]acc: 0.0\n", + "Cond:###..OO# - Act:0 - effect:....OOO. - Num:1 [fit: 0.022, exp: 2.00, pred: 801.721, error:2702.8868996266156]acc: 0.0\n", + "Cond:#.#..OOF - Act:4 - effect:....OOO. - Num:1 [fit: 0.007, exp: 7.00, pred: 1089.362, error:6272.037417731222]acc: 0.0\n", + "Cond:.#O#.### - Act:0 - effect:...OO... - Num:2 [fit: 0.001, exp: 16.00, pred: 915.060, error:6284.196907371799]acc: 0.0\n", + "Cond:..OO#### - Act:7 - effect:....OOO. - Num:1 [fit: 0.005, exp: 19.00, pred: 1003.359, error:5950.927435903017]acc: 0.47368421052631576\n", + "Cond:###O##.# - Act:1 - effect:....OOO. - Num:1 [fit: 0.002, exp: 20.00, pred: 891.065, error:8421.487753853147]acc: 0.0\n", + "Cond:##.#O##. - Act:4 - effect:....OOO. - Num:1 [fit: 0.025, exp: 14.00, pred: 819.527, error:2056.3069834346343]acc: 0.14285714285714285\n", + "Cond:.#.O##.# - Act:4 - effect:....OOO. - Num:2 [fit: 0.002, exp: 10.00, pred: 853.895, error:3070.6623795829564]acc: 0.0\n", + "Cond:.##.#F.. - Act:0 - effect:....OOO. - Num:1 [fit: 0.016, exp: 2.00, pred: 1021.982, error:2611.776096305125]acc: 0.0\n", + "Cond:###..O.# - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 995.499, error:1063.790327621523]acc: None\n", + "Cond:#O##.#O. - Act:1 - effect:...O.... - Num:1 [fit: 0.001, exp: 0.00, pred: 1045.412, error:1183.2384225521514]acc: None\n", + "Cond:#.#.#.## - Act:1 - effect:....OOO. - Num:1 [fit: 0.011, exp: 15.00, pred: 852.428, error:6892.371857260754]acc: 0.0\n", + "Cond:.##O##.# - Act:1 - effect:....OOO. - Num:1 [fit: 0.000, exp: 16.00, pred: 885.152, error:8666.061431331578]acc: 0.0\n", + "Cond:.##O#... - Act:0 - effect:.....F.. - Num:3 [fit: 0.009, exp: 17.00, pred: 789.988, error:7395.095451382409]acc: 0.23529411764705882\n", + "Cond:.##.#.#. - Act:2 - effect:....OOO. - Num:1 [fit: 0.001, exp: 13.00, pred: 876.633, error:5568.184754711801]acc: 0.0\n", + "Cond:##OO#.## - Act:7 - effect:....OOO. - Num:2 [fit: 0.000, exp: 24.00, pred: 1003.448, error:6405.122146089911]acc: 0.4166666666666667\n", + "Cond:#.#O#### - Act:3 - effect:...OO... - Num:1 [fit: 0.019, exp: 37.00, pred: 995.951, error:2723.7482366843788]acc: 0.13513513513513514\n", + "Cond:O#..#..O - Act:7 - effect:O......O - Num:1 [fit: 0.003, exp: 17.00, pred: 931.602, error:4571.244980875907]acc: 0.17647058823529413\n", + "Cond:O#....#O - Act:7 - effect:O......O - Num:1 [fit: 0.005, exp: 17.00, pred: 931.602, error:4662.126414639746]acc: 0.17647058823529413\n", + "Cond:O..##### - Act:6 - effect:OO...... - Num:1 [fit: 0.003, exp: 21.00, pred: 1286.486, error:4169.04796849089]acc: 0.5714285714285714\n", + "Cond:#.##OO#. - Act:7 - effect:....OOO. - Num:1 [fit: 0.004, exp: 7.00, pred: 1109.547, error:6448.58043996428]acc: 0.0\n", + "Cond:##.#O..# - Act:7 - effect:...O.... - Num:1 [fit: 0.011, exp: 7.00, pred: 944.711, error:5603.095195038535]acc: 0.14285714285714285\n", + "Cond:.#...##. - Act:1 - effect:....OOO. - Num:2 [fit: 0.001, exp: 19.00, pred: 832.497, error:5465.189505787867]acc: 0.0\n", + "Cond:#...##.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.003, exp: 17.00, pred: 1073.330, error:1176.1740771899172]acc: 0.6470588235294118\n", + "Cond:.##..#.# - Act:3 - effect:.....OF. - Num:2 [fit: 0.222, exp: 41.00, pred: 940.442, error:4452.376791933577]acc: 0.36585365853658536\n", + "Cond:..#O#..# - Act:2 - effect:....OOO. - Num:2 [fit: 0.009, exp: 35.00, pred: 894.495, error:1829.9956385926587]acc: 0.02857142857142857\n", + "Cond:#..O#.#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.002, exp: 9.00, pred: 879.399, error:2355.461593492885]acc: 0.0\n", + "Cond:#O.##..# - Act:7 - effect:.O...... - Num:1 [fit: 0.004, exp: 59.00, pred: 771.147, error:3898.408551470278]acc: 0.22033898305084745\n", + "Cond:##O#.#.. - Act:1 - effect:....OOO. - Num:2 [fit: 0.020, exp: 9.00, pred: 871.216, error:4526.67480524464]acc: 0.0\n", + "Cond:##O###.# - Act:1 - effect:....OOO. - Num:2 [fit: 0.021, exp: 9.00, pred: 871.216, error:5329.81080524464]acc: 0.0\n", + "Cond:.#O.#.## - Act:2 - effect:.OOO.... - Num:1 [fit: 0.002, exp: 9.00, pred: 959.259, error:4356.3161693107795]acc: 0.0\n", + "Cond:#O#O.##. - Act:2 - effect:.OOO.... - Num:1 [fit: 0.010, exp: 6.00, pred: 990.975, error:2168.2184569255264]acc: 0.6666666666666666\n", + "Cond:#O.#.#.. - Act:4 - effect:OO...... - Num:2 [fit: 0.002, exp: 10.00, pred: 868.971, error:7039.559133395995]acc: 0.1\n", + "Cond:#..#.#.. - Act:6 - effect:.....OF. - Num:1 [fit: 0.047, exp: 58.00, pred: 1104.745, error:5678.155220517461]acc: 0.41379310344827586\n", + "Cond:O##..#.O - Act:2 - effect:..OO.... - Num:1 [fit: 0.014, exp: 12.00, pred: 1003.244, error:8025.312846512021]acc: 0.0\n", + "Cond:##..O##. - Act:2 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 951.101, error:1059.1774366285917]acc: None\n", + "Cond:O..##..O - Act:1 - effect:O......O - Num:2 [fit: 0.061, exp: 5.00, pred: 1007.023, error:2435.302140384235]acc: 0.6\n", + "Cond:#.#.#.#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.009, exp: 0.00, pred: 786.669, error:141.41452304304414]acc: None\n", + "Cond:##OO##.# - Act:1 - effect:....OOO. - Num:1 [fit: 0.007, exp: 6.00, pred: 971.388, error:4148.258892447254]acc: 0.0\n", + "Cond:#OO....# - Act:4 - effect:....OOO. - Num:1 [fit: 0.004, exp: 6.00, pred: 842.225, error:5452.742661913613]acc: 0.0\n", + "Cond:..OO##.# - Act:5 - effect:....OOO. - Num:3 [fit: 0.135, exp: 348.00, pred: 2237.917, error:297.4169432052039]acc: 0.8908045977011494\n", + "Cond:.O##.##. - Act:3 - effect:OO...... - Num:2 [fit: 0.003, exp: 19.00, pred: 991.291, error:4934.873559186263]acc: 0.10526315789473684\n", + "Cond:#.#...## - Act:4 - effect:.......O - Num:3 [fit: 0.006, exp: 10.00, pred: 890.227, error:6345.575759902377]acc: 0.0\n", + "Cond:.#...#.# - Act:4 - effect:....OOO. - Num:1 [fit: 0.003, exp: 18.00, pred: 901.726, error:4085.036942741331]acc: 0.3888888888888889\n", + "Cond:....OO.. - Act:6 - effect:....OOO. - Num:1 [fit: 0.026, exp: 0.00, pred: 1531.537, error:327.4199741843755]acc: None\n", + "Cond:...#O.## - Act:3 - effect:...OO... - Num:1 [fit: 0.062, exp: 15.00, pred: 987.540, error:2902.5984551705424]acc: 0.8\n", + "Cond:...O#... - Act:0 - effect:....OOO. - Num:1 [fit: 0.008, exp: 10.00, pred: 796.139, error:7764.735012619234]acc: 0.0\n", + "Cond:.##O#.#. - Act:0 - effect:.....F.. - Num:2 [fit: 0.018, exp: 13.00, pred: 803.168, error:7250.656930501595]acc: 0.15384615384615385\n", + "Cond:.#...#.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.008, exp: 14.00, pred: 959.428, error:5034.073559167924]acc: 0.2857142857142857\n", + "Cond:#.##OO#. - Act:3 - effect:....OOO. - Num:1 [fit: 0.021, exp: 80.00, pred: 1105.491, error:158.38484222318021]acc: 1.0\n", + "Cond:OO##..#. - Act:2 - effect:.OOO.... - Num:1 [fit: 0.005, exp: 7.00, pred: 1153.481, error:7047.160968993182]acc: 0.0\n", + "Cond:O#####.# - Act:0 - effect:....OOO. - Num:1 [fit: 0.006, exp: 8.00, pred: 841.735, error:6386.018099907333]acc: 0.0\n", + "Cond:OO....#O - Act:7 - effect:O......O - Num:1 [fit: 0.030, exp: 8.00, pred: 839.700, error:3922.007546818508]acc: 0.0\n", + "Cond:##.###.O - Act:7 - effect:OO...... - Num:1 [fit: 0.000, exp: 19.00, pred: 914.515, error:1442.6798260659596]acc: 0.2631578947368421\n", + "Cond:O##..... - Act:3 - effect:....OOO. - Num:1 [fit: 0.032, exp: 1.00, pred: 848.177, error:1800.0]acc: 0.0\n", + "Cond:#O####.# - Act:1 - effect:...OO... - Num:1 [fit: 0.000, exp: 25.00, pred: 833.665, error:3099.6520101945466]acc: 0.12\n", + "Cond:..#O##.. - Act:1 - effect:....OOO. - Num:1 [fit: 0.022, exp: 6.00, pred: 893.946, error:6529.035347110384]acc: 0.0\n", + "Cond:#.##.#.. - Act:1 - effect:....OOO. - Num:1 [fit: 0.003, exp: 9.00, pred: 960.996, error:7236.367250531226]acc: 0.0\n", + "Cond:##.#...O - Act:2 - effect:......OO - Num:1 [fit: 0.000, exp: 24.00, pred: 937.664, error:7081.493309465708]acc: 0.041666666666666664\n", + "Cond:.#...OO# - Act:4 - effect:....OOO. - Num:2 [fit: 0.145, exp: 6.00, pred: 1033.507, error:3958.021133601486]acc: 0.0\n", + "Cond:.##..#OO - Act:6 - effect:....OOO. - Num:2 [fit: 0.009, exp: 24.00, pred: 804.803, error:4307.003974821986]acc: 0.0\n", + "Cond:#..###.# - Act:4 - effect:....OOO. - Num:1 [fit: 0.004, exp: 27.00, pred: 891.166, error:4105.128729364458]acc: 0.4074074074074074\n", + "Cond:#..#.O#. - Act:1 - effect:....OOO. - Num:2 [fit: 0.013, exp: 3.00, pred: 762.550, error:3916.3281043512357]acc: 0.0\n", + "Cond:#.#..F#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.005, exp: 5.00, pred: 1074.419, error:4799.723523598448]acc: 0.0\n", + "Cond:.O.#.F#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1043.649, error:1089.8700613351414]acc: None\n", + "Cond:#...F### - Act:4 - effect:....OOO. - Num:1 [fit: 0.104, exp: 2.00, pred: 1005.203, error:2.5950979897625643]acc: 1.0\n", + "Cond:#OO...#. - Act:2 - effect:.OOO.... - Num:1 [fit: 0.150, exp: 7.00, pred: 805.622, error:3763.4942591682957]acc: 0.0\n", + "Cond:#O###.#. - Act:2 - effect:.OOO.... - Num:1 [fit: 0.000, exp: 20.00, pred: 817.585, error:4388.704499593386]acc: 0.2\n", + "Cond:#O###.## - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 15.00, pred: 811.704, error:7237.989908758625]acc: 0.0\n", + "Cond:#O#####. - Act:3 - effect:OO...... - Num:1 [fit: 0.001, exp: 17.00, pred: 974.225, error:4955.279223564317]acc: 0.058823529411764705\n", + "Cond:.##O#### - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 11.00, pred: 795.373, error:8339.887743003326]acc: 0.0\n", + "Cond:OO##..## - Act:2 - effect:.OOO.... - Num:2 [fit: 0.106, exp: 6.00, pred: 1001.607, error:4028.9930783364093]acc: 0.0\n", + "Cond:..#.#### - Act:0 - effect:O......O - Num:1 [fit: 0.000, exp: 21.00, pred: 958.522, error:4792.925522444966]acc: 0.09523809523809523\n", + "Cond:..#.#OOF - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 396.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:######## - Act:5 - effect:....OOO. - Num:3 [fit: 0.004, exp: 2431.00, pred: 2358.304, error:1509.2846166842442]acc: 0.3031674208144796\n", + "Cond:O#.####. - Act:7 - effect:O......O - Num:1 [fit: 0.002, exp: 10.00, pred: 1237.842, error:8526.446420038601]acc: 0.0\n", + "Cond:###O##.# - Act:2 - effect:....OOO. - Num:1 [fit: 0.007, exp: 38.00, pred: 894.383, error:1805.9912794330114]acc: 0.02631578947368421\n", + "Cond:.#.###.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.002, exp: 22.00, pred: 811.573, error:2366.4882536783452]acc: 0.22727272727272727\n", + "Cond:..##O##. - Act:4 - effect:....OOO. - Num:1 [fit: 0.007, exp: 9.00, pred: 822.252, error:1621.5833512147856]acc: 0.1111111111111111\n", + "Cond:#.#..##O - Act:0 - effect:.....OOF - Num:2 [fit: 0.015, exp: 14.00, pred: 924.472, error:3866.277452498752]acc: 0.35714285714285715\n", + "Cond:.#.####O - Act:1 - effect:....OOO. - Num:2 [fit: 0.009, exp: 8.00, pred: 900.348, error:6918.759002950104]acc: 0.0\n", + "Cond:O##...#O - Act:0 - effect:....OOO. - Num:1 [fit: 0.005, exp: 5.00, pred: 882.141, error:4091.2600255039465]acc: 0.0\n", + "Cond:.O###..# - Act:3 - effect:OO...... - Num:1 [fit: 0.001, exp: 14.00, pred: 972.526, error:4559.2443379910255]acc: 0.07142857142857142\n", + "Cond:##.#.#.# - Act:1 - effect:.O...... - Num:1 [fit: 0.000, exp: 25.00, pred: 778.037, error:2565.1258726000046]acc: 0.2\n", + "Cond:#O.#.#.# - Act:1 - effect:OO...... - Num:2 [fit: 0.011, exp: 11.00, pred: 870.262, error:4338.505485389086]acc: 0.0\n", + "Cond:..#.###O - Act:1 - effect:....OOO. - Num:2 [fit: 0.020, exp: 7.00, pred: 835.235, error:7147.580473968223]acc: 0.0\n", + "Cond:.#OO..## - Act:7 - effect:....OOO. - Num:1 [fit: 0.005, exp: 19.00, pred: 994.217, error:5822.536545759045]acc: 0.47368421052631576\n", + "Cond:.OO###.. - Act:1 - effect:....OOO. - Num:1 [fit: 0.070, exp: 4.00, pred: 806.055, error:2585.849451105307]acc: 0.0\n", + "Cond:.O.#O#.# - Act:7 - effect:...O.... - Num:1 [fit: 0.004, exp: 0.00, pred: 1220.959, error:728.1601490398256]acc: None\n", + "Cond:..#O#..# - Act:7 - effect:....FO.. - Num:1 [fit: 0.001, exp: 22.00, pred: 946.997, error:1851.0213751628953]acc: 0.5\n", + "Cond:#O##.#.. - Act:3 - effect:OO...... - Num:1 [fit: 0.014, exp: 14.00, pred: 970.663, error:4452.713644757472]acc: 0.07142857142857142\n", + "Cond:.O###... - Act:4 - effect:....OOO. - Num:1 [fit: 0.002, exp: 11.00, pred: 816.258, error:6420.8452053315295]acc: 0.0\n", + "Cond:.#O###.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.003, exp: 8.00, pred: 842.209, error:5337.59941220785]acc: 0.0\n", + "Cond:##...O#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.032, exp: 1.00, pred: 831.616, error:1600.0]acc: 0.0\n", + "Cond:#.###.#O - Act:0 - effect:.....OOF - Num:5 [fit: 0.040, exp: 13.00, pred: 909.376, error:3837.661342836094]acc: 0.3076923076923077\n", + "Cond:.#.##.## - Act:0 - effect:.....OOF - Num:1 [fit: 0.000, exp: 24.00, pred: 864.903, error:5747.297520037948]acc: 0.20833333333333334\n", + "Cond:#####OOF - Act:5 - effect:.....OOF - Num:1 [fit: 0.016, exp: 65.00, pred: 977.401, error:1216.6219616593341]acc: 0.4\n", + "Cond:.#.##F.. - Act:0 - effect:....OOO. - Num:1 [fit: 0.009, exp: 1.00, pred: 1045.534, error:1600.0]acc: 0.0\n", + "Cond:#O##.#.# - Act:2 - effect:.OOO.... - Num:3 [fit: 0.100, exp: 9.00, pred: 790.509, error:3976.420283536688]acc: 0.2222222222222222\n", + "Cond:##.###F. - Act:4 - effect:....OOO. - Num:1 [fit: 0.022, exp: 1.00, pred: 831.616, error:1800.0]acc: 0.0\n", + "Cond:..#.#F## - Act:0 - effect:....OOO. - Num:1 [fit: 0.011, exp: 1.00, pred: 1045.534, error:1600.0]acc: 0.0\n", + "Cond:.##.#### - Act:0 - effect:....OOO. - Num:1 [fit: 0.003, exp: 19.00, pred: 940.761, error:7063.940615425008]acc: 0.0\n", + "Cond:##.O#.#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.007, exp: 8.00, pred: 843.503, error:2087.648938721949]acc: 0.0\n", + "Cond:#.##.#.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.123, exp: 3.00, pred: 911.010, error:628.4169371724394]acc: 0.6666666666666666\n", + "Cond:..###..# - Act:2 - effect:..OO.... - Num:2 [fit: 0.070, exp: 43.00, pred: 929.516, error:4911.253022838817]acc: 0.23255813953488372\n", + "Cond:.OO#.#.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.005, exp: 7.00, pred: 812.936, error:5075.4044110689265]acc: 0.0\n", + "Cond:##O..### - Act:7 - effect:....OOO. - Num:1 [fit: 0.023, exp: 2.00, pred: 914.646, error:2866.3611603963955]acc: 0.0\n", + "Cond:..##O#.# - Act:7 - effect:....OOO. - Num:1 [fit: 0.003, exp: 10.00, pred: 997.078, error:6004.717833533694]acc: 0.0\n", + "Cond:.###.#OO - Act:6 - effect:....OOO. - Num:1 [fit: 0.007, exp: 20.00, pred: 805.461, error:3747.9498962533476]acc: 0.0\n", + "Cond:#.####.# - Act:4 - effect:....OOO. - Num:2 [fit: 0.016, exp: 15.00, pred: 885.604, error:3402.9366561128604]acc: 0.3333333333333333\n", + "Cond:##.O.#.# - Act:2 - effect:.OOO.... - Num:1 [fit: 0.019, exp: 0.00, pred: 952.782, error:551.514215018859]acc: None\n", + "Cond:.##O#..# - Act:3 - effect:...OO... - Num:1 [fit: 0.011, exp: 39.00, pred: 1042.313, error:3833.143804875865]acc: 0.15384615384615385\n", + "Cond:.#.#.O#. - Act:6 - effect:....OOO. - Num:2 [fit: 0.018, exp: 285.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:.O#.###. - Act:0 - effect:.....F.. - Num:1 [fit: 0.028, exp: 5.00, pred: 784.563, error:4105.518811061121]acc: 0.0\n", + "Cond:###O#.## - Act:0 - effect:.....F.. - Num:1 [fit: 0.029, exp: 9.00, pred: 787.965, error:7578.68189924553]acc: 0.1111111111111111\n", + "Cond:.######. - Act:0 - effect:....OOO. - Num:2 [fit: 0.002, exp: 18.00, pred: 813.788, error:8448.998709485288]acc: 0.0\n", + "Cond:#O##.##. - Act:3 - effect:OO...... - Num:1 [fit: 0.014, exp: 11.00, pred: 963.655, error:4914.95485129136]acc: 0.09090909090909091\n", + "Cond:..#F#..# - Act:2 - effect:....OOO. - Num:1 [fit: 0.008, exp: 0.00, pred: 934.130, error:697.9933032217477]acc: None\n", + "Cond:#.##O... - Act:3 - effect:....OOO. - Num:1 [fit: 0.019, exp: 14.00, pred: 976.468, error:1729.4485970893343]acc: 0.0\n", + "Cond:#.###.#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.355, exp: 5.00, pred: 714.936, error:1070.7733159004888]acc: 0.0\n", + "Cond:O#....## - Act:7 - effect:O......O - Num:1 [fit: 0.000, exp: 21.00, pred: 1187.245, error:7990.079788454115]acc: 0.14285714285714285\n", + "Cond:#..####. - Act:4 - effect:....OOO. - Num:1 [fit: 0.566, exp: 3.00, pred: 848.262, error:72.54542953196585]acc: 1.0\n", + "Cond:#.###... - Act:4 - effect:....OOO. - Num:1 [fit: 0.402, exp: 0.00, pred: 722.818, error:630.5847380716142]acc: None\n", + "Cond:.#.##.## - Act:1 - effect:....OOO. - Num:1 [fit: 0.003, exp: 11.00, pred: 770.371, error:5475.726936280892]acc: 0.0\n", + "Cond:.#O.#### - Act:0 - effect:....OOO. - Num:1 [fit: 0.076, exp: 2.00, pred: 676.149, error:2505.6255204349945]acc: 0.0\n", + "Cond:.OO..#.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.014, exp: 4.00, pred: 760.245, error:3926.7030986524987]acc: 0.0\n", + "Cond:.#O##.#. - Act:2 - effect:..OO.... - Num:1 [fit: 0.027, exp: 32.00, pred: 890.811, error:2202.980763278454]acc: 0.1875\n", + "Cond:###O.... - Act:4 - effect:....OOO. - Num:1 [fit: 0.012, exp: 1.00, pred: 693.639, error:1600.0]acc: 0.0\n", + "Cond:..#.F### - Act:2 - effect:....OOO. - Num:1 [fit: 0.057, exp: 153.00, pred: 2122.975, error:224.50845468370034]acc: 0.8954248366013072\n", + "Cond:.#..#OO# - Act:4 - effect:....OOO. - Num:1 [fit: 0.025, exp: 1.00, pred: 829.698, error:2200.0]acc: 0.0\n", + "Cond:##O#.#.. - Act:7 - effect:....OOO. - Num:1 [fit: 0.001, exp: 16.00, pred: 990.676, error:6297.868626074809]acc: 0.5\n", + "Cond:.O..O##. - Act:7 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 903.565, error:621.8732806430623]acc: None\n", + "Cond:.OO#.#.. - Act:1 - effect:.....F.. - Num:1 [fit: 0.007, exp: 1.00, pred: 659.940, error:1600.0]acc: 0.0\n", + "Cond:.O###... - Act:1 - effect:....OOO. - Num:1 [fit: 0.005, exp: 5.00, pred: 766.695, error:4217.238598926941]acc: 0.0\n", + "Cond:##..##OF - Act:2 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 846.479, error:1782.9988221523856]acc: None\n", + "Cond:#..###OF - Act:2 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 846.479, error:1782.9988221523856]acc: None\n", + "Cond:...##F#. - Act:5 - effect:....OOO. - Num:3 [fit: 0.057, exp: 263.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:##..##.. - Act:0 - effect:....OOO. - Num:1 [fit: 0.019, exp: 3.00, pred: 857.119, error:3918.3609130942536]acc: 0.0\n", + "Cond:..#.#### - Act:1 - effect:....FO.. - Num:1 [fit: 0.008, exp: 32.00, pred: 886.830, error:4684.721017291382]acc: 0.25\n", + "Cond:..O...O# - Act:7 - effect:.OOO.... - Num:1 [fit: 0.010, exp: 0.00, pred: 880.491, error:727.5164070750202]acc: None\n", + "Cond:#..#.##F - Act:0 - effect:....OOO. - Num:1 [fit: 0.012, exp: 0.00, pred: 973.977, error:971.4744072514203]acc: None\n", + "Cond:##..#OF# - Act:0 - effect:....OOO. - Num:1 [fit: 0.012, exp: 0.00, pred: 973.977, error:971.4744072514203]acc: None\n", + "Cond:.####... - Act:0 - effect:.....F.. - Num:1 [fit: 0.010, exp: 4.00, pred: 736.655, error:5204.253807320356]acc: 0.0\n", + "Cond:#.####OF - Act:7 - effect:....OOO. - Num:2 [fit: 0.039, exp: 394.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#O.....# - Act:1 - effect:OO...... - Num:1 [fit: 0.002, exp: 10.00, pred: 826.188, error:4170.363330902508]acc: 0.0\n", + "Cond:O#####.# - Act:1 - effect:O......O - Num:1 [fit: 0.005, exp: 9.00, pred: 930.149, error:3555.827690798452]acc: 0.2222222222222222\n", + "Cond:...O###. - Act:1 - effect:....OOO. - Num:1 [fit: 0.012, exp: 3.00, pred: 885.867, error:4349.510068805084]acc: 0.0\n", + "Cond:O#.F#### - Act:4 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 911.276, error:958.7802784868622]acc: None\n", + "Cond:#O..#O.# - Act:7 - effect:...O.... - Num:1 [fit: 0.016, exp: 0.00, pred: 1024.341, error:581.2159419292111]acc: None\n", + "Cond:.#O.###. - Act:0 - effect:....OOO. - Num:1 [fit: 0.005, exp: 0.00, pred: 670.524, error:113.20319005437429]acc: None\n", + "Cond:#####F## - Act:7 - effect:....OOO. - Num:1 [fit: 0.004, exp: 8.00, pred: 1119.016, error:4279.934312679221]acc: 0.0\n", + "Cond:##OO##.# - Act:7 - effect:.....OF. - Num:1 [fit: 0.002, exp: 13.00, pred: 1008.490, error:6015.881596857966]acc: 0.0\n", + "Cond:.##..O#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.091, exp: 1.00, pred: 810.512, error:1600.0]acc: 0.0\n", + "Cond:#.##.O#. - Act:6 - effect:....OOO. - Num:4 [fit: 0.037, exp: 283.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:..##F#O. - Act:4 - effect:....OOO. - Num:1 [fit: 0.014, exp: 0.00, pred: 1068.116, error:25.871937615380624]acc: None\n", + "Cond:#.#.F### - Act:4 - effect:....OOO. - Num:1 [fit: 0.014, exp: 0.00, pred: 1068.116, error:25.871937615380624]acc: None\n", + "Cond:..##...# - Act:2 - effect:..OO.... - Num:2 [fit: 0.089, exp: 28.00, pred: 929.713, error:5865.936972999651]acc: 0.5357142857142857\n", + "Cond:###.##.O - Act:0 - effect:....OOO. - Num:1 [fit: 0.006, exp: 6.00, pred: 939.073, error:2134.9651765612143]acc: 0.0\n", + "Cond:.##.#.#O - Act:0 - effect:....OOO. - Num:1 [fit: 0.008, exp: 4.00, pred: 904.524, error:3735.4767722895645]acc: 0.0\n", + "Cond:##..##O# - Act:7 - effect:....OOO. - Num:2 [fit: 0.039, exp: 399.00, pred: 1948.419, error:251.07661682020802]acc: 0.9874686716791979\n", + "Cond:#O####.# - Act:2 - effect:.OOO.... - Num:2 [fit: 0.118, exp: 2.00, pred: 846.773, error:1522.1218146659082]acc: 0.0\n", + "Cond:O#.....# - Act:3 - effect:...O.... - Num:1 [fit: 0.069, exp: 56.00, pred: 1438.271, error:3429.6309556695355]acc: 0.5\n", + "Cond:...#.O#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.457, exp: 0.00, pred: 903.767, error:53.31292829573374]acc: None\n", + "Cond:....OOO# - Act:6 - effect:....OOO. - Num:1 [fit: 0.019, exp: 0.00, pred: 1103.831, error:177.30353095073065]acc: None\n", + "Cond:##.#O#.# - Act:7 - effect:...O.... - Num:1 [fit: 0.011, exp: 5.00, pred: 990.508, error:1254.9917005438256]acc: 0.6\n", + "Cond:...#.O.. - Act:1 - effect:....OOO. - Num:1 [fit: 0.005, exp: 0.00, pred: 786.531, error:264.54101304390446]acc: None\n", + "Cond:###..##. - Act:1 - effect:....OOO. - Num:1 [fit: 0.127, exp: 4.00, pred: 772.406, error:2390.6547292962223]acc: 0.0\n", + "Cond:.#.##.#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.016, exp: 0.00, pred: 963.047, error:1930.4608148577297]acc: None\n", + "Cond:###..#.# - Act:1 - effect:OO...... - Num:1 [fit: 0.005, exp: 12.00, pred: 781.001, error:3433.8546147510406]acc: 0.0\n", + "Cond:#O.#.##. - Act:1 - effect:....OOO. - Num:1 [fit: 0.009, exp: 3.00, pred: 706.344, error:2247.6240075391743]acc: 0.0\n", + "Cond:O...#.#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.013, exp: 0.00, pred: 876.204, error:3875.777498797797]acc: None\n", + "Cond:#O.###.# - Act:4 - effect:OO...... - Num:2 [fit: 0.021, exp: 1.00, pred: 767.582, error:0.0]acc: 1.0\n", + "Cond:##.#O... - Act:7 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 950.293, error:1057.436098465086]acc: None\n", + "Cond:..###.#O - Act:0 - effect:.....OOF - Num:1 [fit: 0.111, exp: 2.00, pred: 1043.088, error:1339.187737874409]acc: 0.0\n", + "Cond:##.#.OO# - Act:0 - effect:....OOO. - Num:1 [fit: 0.005, exp: 0.00, pred: 1024.245, error:636.789445958947]acc: None\n", + "Cond:#...###F - Act:1 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 1164.733, error:38.907619523399575]acc: None\n", + "Cond:O.#.#O## - Act:4 - effect:....OOO. - Num:1 [fit: 0.099, exp: 0.00, pred: 1033.931, error:3646.687066485266]acc: None\n", + "Cond:..#.#F#. - Act:6 - effect:.....OF. - Num:3 [fit: 0.218, exp: 39.00, pred: 1104.783, error:4878.666904553485]acc: 0.5128205128205128\n", + "Cond:#.#O###. - Act:0 - effect:....OOO. - Num:1 [fit: 0.005, exp: 2.00, pred: 691.560, error:2907.5844709904486]acc: 0.0\n", + "Cond:##..#.## - Act:6 - effect:......OO - Num:1 [fit: 0.006, exp: 121.00, pred: 763.300, error:5365.048531287018]acc: 0.15702479338842976\n", + "Cond:#O###### - Act:2 - effect:.OOO.... - Num:1 [fit: 0.012, exp: 0.00, pred: 846.773, error:30.530453666477058]acc: None\n", + "Cond:####FO.# - Act:7 - effect:...OO... - Num:1 [fit: 0.010, exp: 66.00, pred: 1034.588, error:5334.550839986552]acc: 0.5454545454545454\n", + "Cond:#O.####. - Act:4 - effect:OO...... - Num:1 [fit: 0.002, exp: 0.00, pred: 767.582, error:0.0]acc: None\n", + "Cond:O#.O##.# - Act:1 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 890.371, error:1823.9462450715146]acc: None\n", + "Cond:#.#O##.. - Act:1 - effect:...OO... - Num:1 [fit: 0.013, exp: 1.00, pred: 984.104, error:0.0]acc: 1.0\n", + "Cond:#O.##.#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 813.713, error:645.1064697171166]acc: None\n", + "Cond:O##.##.. - Act:0 - effect:.O...... - Num:1 [fit: 0.001, exp: 0.00, pred: 813.713, error:645.1064697171166]acc: None\n", + "Cond:##..#.## - Act:2 - effect:....OOO. - Num:1 [fit: 0.003, exp: 20.00, pred: 862.130, error:4237.209752585226]acc: 0.0\n", + "Cond:#..##### - Act:4 - effect:....OOO. - Num:1 [fit: 0.107, exp: 3.00, pred: 867.732, error:2882.511779253281]acc: 0.3333333333333333\n", + "Cond:##.#O### - Act:7 - effect:...O.... - Num:1 [fit: 0.209, exp: 2.00, pred: 827.086, error:27.43458807135653]acc: 1.0\n", + "Cond:#..O.### - Act:4 - effect:....OOO. - Num:1 [fit: 0.016, exp: 0.00, pred: 1027.168, error:309.90800443767887]acc: None\n", + "Cond:#....#.. - Act:6 - effect:.....OF. - Num:1 [fit: 0.005, exp: 37.00, pred: 1104.987, error:4820.82348771049]acc: 0.3783783783783784\n", + "Cond:...#.O#F - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 393.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:###O#.#. - Act:1 - effect:....OOO. - Num:3 [fit: 0.033, exp: 1.00, pred: 984.104, error:1600.0]acc: 0.0\n", + "Cond:#.#..#.. - Act:7 - effect:....OOO. - Num:1 [fit: 0.010, exp: 7.00, pred: 1135.641, error:3435.4007309922963]acc: 0.0\n", + "Cond:.#.#O#.. - Act:7 - effect:...FOO.. - Num:1 [fit: 0.023, exp: 0.00, pred: 1746.338, error:292.2116050190348]acc: None\n", + "Cond:...F#### - Act:5 - effect:...FOO.. - Num:1 [fit: 0.064, exp: 101.00, pred: 1320.570, error:2599.8725700284485]acc: 0.5742574257425742\n", + "Cond:#####OO. - Act:6 - effect:....OOO. - Num:1 [fit: 0.007, exp: 0.00, pred: 1518.942, error:168.60255503323083]acc: None\n", + "Cond:...#OO#. - Act:3 - effect:....OOO. - Num:2 [fit: 0.061, exp: 51.00, pred: 1105.485, error:158.35741086134072]acc: 1.0\n", + "Cond:...FO#.# - Act:5 - effect:O......O - Num:2 [fit: 0.008, exp: 91.00, pred: 1320.570, error:2658.662460530898]acc: 0.2857142857142857\n", + "Cond:.#.F#### - Act:5 - effect:...FOO.. - Num:1 [fit: 0.053, exp: 91.00, pred: 1320.570, error:2419.3406058169085]acc: 0.8351648351648352\n", + "Cond:..##OO#. - Act:3 - effect:....OOO. - Num:2 [fit: 0.041, exp: 46.00, pred: 1105.483, error:158.34995429413874]acc: 1.0\n", + "Cond:..##..O. - Act:5 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 1481.471, error:4343.221114376192]acc: None\n", + "Cond:....#OO. - Act:5 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 1468.672, error:87.405671337059]acc: None\n", + "Cond:..#FOOO. - Act:3 - effect:....OOO. - Num:1 [fit: 0.033, exp: 0.00, pred: 1072.587, error:6.547142131850127]acc: None\n", + "Cond:..##OO#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.415, exp: 1.00, pred: 909.839, error:1800.0]acc: 0.0\n", + "Cond:O##.O..# - Act:5 - effect:....OOO. - Num:1 [fit: 0.007, exp: 0.00, pred: 1644.842, error:756.3818069517888]acc: None\n", + "Cond:#..#.### - Act:1 - effect:....OOO. - Num:3 [fit: 0.136, exp: 5.00, pred: 852.434, error:5459.45746786533]acc: 0.0\n", + "Cond:.###.##. - Act:4 - effect:....OOO. - Num:1 [fit: 0.155, exp: 3.00, pred: 796.225, error:2953.8226210153884]acc: 0.0\n", + "Cond:##.#OO#. - Act:1 - effect:....OOO. - Num:4 [fit: 0.022, exp: 16.00, pred: 1125.296, error:4045.18246462395]acc: 0.0\n", + "Cond:#####OOF - Act:2 - effect:....OOO. - Num:1 [fit: 0.024, exp: 0.00, pred: 1121.670, error:10.301395021620039]acc: None\n", + "Cond:.....OO# - Act:2 - effect:.....OOF - Num:1 [fit: 0.007, exp: 0.00, pred: 1193.341, error:508.5657116397141]acc: None\n", + "Cond:...#OO#. - Act:1 - effect:.....OF. - Num:2 [fit: 0.004, exp: 16.00, pred: 1125.296, error:3993.22991391675]acc: 0.0\n", + "Cond:#.###O#F - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 359.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:####..O# - Act:5 - effect:...FOO.. - Num:1 [fit: 0.003, exp: 111.00, pred: 2124.705, error:1301.3548733046496]acc: 0.7207207207207207\n", + "Cond:#.#.OF.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.014, exp: 0.00, pred: 1744.400, error:19.512710990888845]acc: None\n", + "Cond:.#.F#O#. - Act:0 - effect:..OO.... - Num:1 [fit: 0.250, exp: 1.00, pred: 909.839, error:1600.0]acc: 0.0\n", + "Cond:..#..#OF - Act:2 - effect:....OOO. - Num:1 [fit: 0.005, exp: 0.00, pred: 1273.784, error:21.729992299637942]acc: None\n", + "Cond:.#.F#O## - Act:6 - effect:..OO.... - Num:4 [fit: 0.042, exp: 142.00, pred: 1163.269, error:1460.6783407403925]acc: 0.9788732394366197\n", + "Cond:.#.F#O.. - Act:6 - effect:..OO.... - Num:1 [fit: 0.007, exp: 142.00, pred: 1163.269, error:1780.6696295117995]acc: 0.9788732394366197\n", + "Cond:##.F#O.. - Act:6 - effect:..OO.... - Num:2 [fit: 0.021, exp: 137.00, pred: 1163.269, error:1460.7044744261004]acc: 0.9781021897810219\n", + "Cond:#.#.#O#F - Act:7 - effect:....OOO. - Num:1 [fit: 0.020, exp: 352.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#.#.#OOF - Act:7 - effect:....OOO. - Num:3 [fit: 0.058, exp: 351.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#.##.F#. - Act:5 - effect:....OOO. - Num:2 [fit: 0.035, exp: 243.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:####.#F. - Act:6 - effect:....OOO. - Num:2 [fit: 0.018, exp: 229.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:...#.O## - Act:0 - effect:....OOO. - Num:1 [fit: 0.015, exp: 0.00, pred: 1168.363, error:274.6026825163381]acc: None\n", + "Cond:.#O#O..# - Act:5 - effect:.....OF. - Num:1 [fit: 0.179, exp: 0.00, pred: 1760.512, error:54.60036992063097]acc: None\n", + "Cond:##...#O. - Act:6 - effect:....OOO. - Num:1 [fit: 0.075, exp: 0.00, pred: 1453.943, error:260.89758801033435]acc: None\n", + "Cond:####.#F# - Act:6 - effect:....OOO. - Num:3 [fit: 0.027, exp: 224.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:O##F.### - Act:5 - effect:...OO... - Num:1 [fit: 0.003, exp: 0.00, pred: 2125.973, error:654.0192505125349]acc: None\n", + "Cond:#...OOOF - Act:7 - effect:....OOO. - Num:2 [fit: 0.029, exp: 0.00, pred: 1064.598, error:7.071396744654988]acc: None\n", + "Cond:.##F#O.. - Act:6 - effect:..OO.... - Num:1 [fit: 0.011, exp: 122.00, pred: 1163.269, error:1460.6783407405512]acc: 0.9754098360655737\n", + "Cond:.##.O#.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 1803.127, error:169.0548719410447]acc: None\n", + "Cond:..##.OO# - Act:6 - effect:.....OOF - Num:1 [fit: 0.018, exp: 88.00, pred: 921.781, error:3185.830097201937]acc: 0.5227272727272727\n", + "Cond:.#.F##.. - Act:6 - effect:..OO.... - Num:1 [fit: 0.014, exp: 112.00, pred: 1163.269, error:2100.6696295096635]acc: 0.9732142857142857\n", + "Cond:##.#OO.. - Act:6 - effect:..OO.... - Num:2 [fit: 0.014, exp: 112.00, pred: 1163.269, error:1460.687052014696]acc: 0.9464285714285714\n", + "Cond:..#..#.# - Act:6 - effect:.....OF. - Num:1 [fit: 0.010, exp: 59.00, pred: 933.766, error:8600.473536552912]acc: 0.4406779661016949\n", + "Cond:.#.F###. - Act:6 - effect:..OO.... - Num:1 [fit: 0.007, exp: 109.00, pred: 1163.269, error:1620.6696294829467]acc: 0.9724770642201835\n", + "Cond:.###.... - Act:2 - effect:....OOO. - Num:1 [fit: 0.040, exp: 16.00, pred: 917.159, error:1579.33934864759]acc: 0.0\n", + "Cond:....#O#F - Act:2 - effect:....OOO. - Num:1 [fit: 0.044, exp: 0.00, pred: 1145.815, error:5.340067511560463]acc: None\n", + "Cond:...##OF# - Act:0 - effect:....OOO. - Num:1 [fit: 0.020, exp: 0.00, pred: 1580.416, error:425.0006350695197]acc: None\n", + "Cond:###.#O## - Act:0 - effect:....OOO. - Num:1 [fit: 0.047, exp: 2.00, pred: 942.459, error:2704.137485094424]acc: 0.0\n", + "Cond:####...O - Act:7 - effect:...FOO.. - Num:3 [fit: 0.024, exp: 15.00, pred: 931.159, error:5141.7572595231]acc: 0.2\n", + "Cond:##.F##.. - Act:6 - effect:..OO.... - Num:2 [fit: 0.009, exp: 104.00, pred: 1163.269, error:1460.6957633193504]acc: 0.9711538461538461\n", + "Cond:...#.... - Act:3 - effect:....OOO. - Num:1 [fit: 0.244, exp: 2.00, pred: 790.686, error:1509.116361759168]acc: 0.0\n", + "Cond:###.#F.. - Act:1 - effect:....OOO. - Num:1 [fit: 0.042, exp: 0.00, pred: 1942.531, error:212.86869529563663]acc: None\n", + "Cond:...##F## - Act:5 - effect:....OOO. - Num:2 [fit: 0.035, exp: 235.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:O###.#O# - Act:5 - effect:...FOO.. - Num:1 [fit: 0.084, exp: 0.00, pred: 2313.615, error:31.69017518363622]acc: None\n", + "Cond:###OO### - Act:6 - effect:.....OOF - Num:1 [fit: 0.190, exp: 3.00, pred: 1013.946, error:1887.784788248291]acc: 0.0\n", + "Cond:#..#.#O# - Act:2 - effect:....OOO. - Num:1 [fit: 0.002, exp: 3.00, pred: 845.502, error:1284.4410141320363]acc: 0.0\n", + "Cond:#.#..F.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 232.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:#..F#O.# - Act:1 - effect:..OO.... - Num:1 [fit: 0.005, exp: 16.00, pred: 1125.296, error:4406.52775895995]acc: 0.0\n", + "Cond:..OO#O.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.067, exp: 0.00, pred: 1642.981, error:673.5088503009308]acc: None\n", + "Cond:..OO.#.# - Act:5 - effect:....OOO. - Num:5 [fit: 0.245, exp: 256.00, pred: 2237.917, error:297.4169431582121]acc: 0.94140625\n", + "Cond:##.#.#F. - Act:6 - effect:....OOO. - Num:1 [fit: 0.009, exp: 199.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:####.OO# - Act:6 - effect:.....OOF - Num:1 [fit: 0.012, exp: 64.00, pred: 921.781, error:3671.462857180056]acc: 0.640625\n", + "Cond:...#OF## - Act:5 - effect:....OOO. - Num:1 [fit: 0.178, exp: 0.00, pred: 1779.293, error:146.65108673005415]acc: None\n", + "Cond:##.FO#.# - Act:6 - effect:..OO.... - Num:1 [fit: 0.007, exp: 84.00, pred: 1163.269, error:1780.6783275154232]acc: 0.9642857142857143\n", + "Cond:##....F. - Act:5 - effect:....OOO. - Num:1 [fit: 0.015, exp: 0.00, pred: 2235.208, error:166.54559981706268]acc: None\n", + "Cond:#.#OO.## - Act:0 - effect:.....OOF - Num:1 [fit: 0.028, exp: 1.00, pred: 706.729, error:1600.0]acc: 0.0\n", + "Cond:##...O#. - Act:6 - effect:....OOO. - Num:2 [fit: 0.020, exp: 194.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:####..O# - Act:6 - effect:...FOO.. - Num:1 [fit: 0.028, exp: 16.00, pred: 803.110, error:2840.404962358911]acc: 0.0\n", + "Cond:.##FOO.. - Act:6 - effect:..OO.... - Num:1 [fit: 0.007, exp: 77.00, pred: 1163.269, error:1460.6870374731038]acc: 0.961038961038961\n", + "Cond:.#.FOO.# - Act:6 - effect:..OO.... - Num:2 [fit: 0.013, exp: 77.00, pred: 1163.269, error:1620.6696150159175]acc: 0.961038961038961\n", + "Cond:###.O##F - Act:7 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 1310.334, error:52.4543983789914]acc: None\n", + "Cond:##.#.##F - Act:5 - effect:.....OOF - Num:1 [fit: 0.039, exp: 16.00, pred: 974.919, error:1169.9717574409867]acc: 0.875\n", + "Cond:..#.F..# - Act:3 - effect:...FOO.. - Num:1 [fit: 2.195, exp: 0.00, pred: 2106.470, error:175.87720446349576]acc: None\n", + "Cond:#.#.##F. - Act:6 - effect:....OOO. - Num:1 [fit: 0.009, exp: 191.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:##..OF#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.014, exp: 0.00, pred: 1875.396, error:27.49740494221644]acc: None\n", + "Cond:##..O### - Act:7 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 1224.583, error:29.990572400638463]acc: None\n", + "Cond:####.OF# - Act:6 - effect:....OOO. - Num:3 [fit: 0.027, exp: 188.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:..#.#... - Act:5 - effect:...FOO.. - Num:1 [fit: 0.313, exp: 0.00, pred: 2170.061, error:42.23143561259113]acc: None\n", + "Cond:###.##O# - Act:2 - effect:.O...... - Num:1 [fit: 0.357, exp: 3.00, pred: 845.502, error:2217.77434746537]acc: 0.6666666666666666\n", + "Cond:#.#####F - Act:5 - effect:.....OOF - Num:3 [fit: 0.496, exp: 11.00, pred: 989.306, error:840.2310934577486]acc: 0.9090909090909091\n", + "Cond:.#.FOO.# - Act:4 - effect:..OO.... - Num:1 [fit: 0.012, exp: 0.00, pred: 1614.364, error:36.75558239710531]acc: None\n", + "Cond:###OO... - Act:4 - effect:.....OOF - Num:1 [fit: 0.021, exp: 0.00, pred: 1445.498, error:278.50745479699117]acc: None\n", + "Cond:...F#O## - Act:6 - effect:..OO.... - Num:1 [fit: 0.007, exp: 64.00, pred: 1163.269, error:1460.678418421111]acc: 0.953125\n", + "Cond:#.###... - Act:3 - effect:.....OOF - Num:2 [fit: 0.016, exp: 28.00, pred: 996.707, error:1015.1245763538107]acc: 0.07142857142857142\n", + "Cond:#..#.F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 222.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:#.####O# - Act:7 - effect:....OOO. - Num:3 [fit: 0.049, exp: 247.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#..F#### - Act:6 - effect:..OO.... - Num:1 [fit: 0.007, exp: 57.00, pred: 1163.270, error:1940.7154385628387]acc: 0.9473684210526315\n", + "Cond:.#.#.F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 220.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:..OO#### - Act:5 - effect:....OOO. - Num:5 [fit: 0.262, exp: 201.00, pred: 2237.917, error:297.41694316675614]acc: 0.9850746268656716\n", + "Cond:#.##O.## - Act:7 - effect:.....OOF - Num:1 [fit: 0.017, exp: 0.00, pred: 1674.694, error:42.80424548575752]acc: None\n", + "Cond:..#FF#.. - Act:6 - effect:...OO... - Num:1 [fit: 0.022, exp: 0.00, pred: 2056.453, error:32.53068463630606]acc: None\n", + "Cond:...F#O.# - Act:6 - effect:..OO.... - Num:1 [fit: 0.007, exp: 53.00, pred: 1163.268, error:1460.6745116466257]acc: 0.9433962264150944\n", + "Cond:.###F#.. - Act:6 - effect:...OO... - Num:1 [fit: 0.004, exp: 31.00, pred: 1070.420, error:3171.7981885025197]acc: 0.41935483870967744\n", + "Cond:.#.#OO.# - Act:6 - effect:..OO.... - Num:1 [fit: 0.014, exp: 48.00, pred: 1163.256, error:1620.6301512773587]acc: 0.9375\n", + "Cond:...F#O.. - Act:6 - effect:..OO.... - Num:1 [fit: 0.007, exp: 48.00, pred: 1163.256, error:1460.6464848309708]acc: 0.9375\n", + "Cond:##.#O##. - Act:3 - effect:....OOO. - Num:1 [fit: 0.017, exp: 35.00, pred: 1048.445, error:219.72108207787812]acc: 0.7142857142857143\n", + "Cond:.###OO.# - Act:6 - effect:..OO.... - Num:2 [fit: 0.024, exp: 45.00, pred: 1163.258, error:1780.5597201616079]acc: 0.9555555555555556\n", + "Cond:.##OO### - Act:6 - effect:.....OOF - Num:1 [fit: 0.021, exp: 2.00, pred: 1071.786, error:2578.144797114214]acc: 0.0\n", + "Cond:....#.## - Act:2 - effect:...FOO.. - Num:1 [fit: 0.008, exp: 14.00, pred: 897.420, error:3904.646779353376]acc: 0.0\n", + "Cond:..#.###F - Act:7 - effect:....OOO. - Num:2 [fit: 0.039, exp: 232.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:..#..F.. - Act:5 - effect:....OOO. - Num:2 [fit: 0.036, exp: 217.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:.###.##. - Act:0 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 856.471, error:1507.1793005912543]acc: None\n", + "Cond:.#.#O### - Act:3 - effect:....OOO. - Num:2 [fit: 0.031, exp: 32.00, pred: 1048.261, error:294.4328260206514]acc: 0.6875\n", + "Cond:O#..#### - Act:7 - effect:....OOO. - Num:1 [fit: 0.009, exp: 19.00, pred: 1184.442, error:8170.84067207529]acc: 0.0\n", + "Cond:O.#.#### - Act:7 - effect:O......O - Num:1 [fit: 0.273, exp: 3.00, pred: 1062.894, error:2190.3640096463632]acc: 0.6666666666666666\n", + "Cond:..##OO## - Act:0 - effect:..OO.... - Num:1 [fit: 0.033, exp: 0.00, pred: 909.839, error:0.0]acc: None\n", + "Cond:.O.F#O## - Act:0 - effect:....OOO. - Num:1 [fit: 0.033, exp: 0.00, pred: 909.839, error:0.0]acc: None\n", + "Cond:#.##.##. - Act:4 - effect:....OOO. - Num:2 [fit: 0.010, exp: 0.00, pred: 1298.347, error:345.31182006296615]acc: None\n", + "Cond:#.#.OO## - Act:3 - effect:....OOO. - Num:1 [fit: 0.008, exp: 0.00, pred: 1508.490, error:100.74082854883056]acc: None\n", + "Cond:#.#FOO#. - Act:3 - effect:....OOO. - Num:1 [fit: 0.097, exp: 19.00, pred: 1098.986, error:143.80581798861735]acc: 1.0\n", + "Cond:..#.#..# - Act:7 - effect:...FOO.. - Num:2 [fit: 0.099, exp: 4.00, pred: 1008.374, error:3077.2945150111773]acc: 0.0\n", + "Cond:..O#.#.F - Act:5 - effect:....OOO. - Num:1 [fit: 0.012, exp: 0.00, pred: 1769.091, error:87.11982030304415]acc: None\n", + "Cond:.#...#OF - Act:7 - effect:....OOO. - Num:2 [fit: 0.038, exp: 223.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:...#FO#. - Act:6 - effect:...OO... - Num:1 [fit: 0.077, exp: 21.00, pred: 1068.527, error:3029.9626758600534]acc: 0.5238095238095238\n", + "Cond:..##.F.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.019, exp: 214.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:###FOO#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.007, exp: 10.00, pred: 1124.801, error:3348.5964506107175]acc: 0.0\n", + "Cond:#.OO#O.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.020, exp: 0.00, pred: 1642.887, error:81.95691480009623]acc: None\n", + "Cond:#.##.O#F - Act:7 - effect:....OOO. - Num:3 [fit: 0.058, exp: 216.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:###.#O#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 23.00, pred: 979.846, error:4956.30688563193]acc: 0.0\n", + "Cond:#O#.###. - Act:1 - effect:....OOO. - Num:1 [fit: 0.112, exp: 2.00, pred: 649.647, error:1701.1295763962432]acc: 0.0\n", + "Cond:..#.#..O - Act:7 - effect:...FOO.. - Num:1 [fit: 0.124, exp: 0.00, pred: 1053.617, error:1724.483375766285]acc: None\n", + "Cond:.#.#O##. - Act:3 - effect:....OOO. - Num:3 [fit: 0.065, exp: 24.00, pred: 1049.212, error:220.38151512465453]acc: 0.5833333333333334\n", + "Cond:.#OOO..# - Act:5 - effect:.....OOF - Num:1 [fit: 0.041, exp: 0.00, pred: 1525.938, error:73.89102930303838]acc: None\n", + "Cond:.....F## - Act:4 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 1649.414, error:133.36726572580682]acc: None\n", + "Cond:..OO.O.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.138, exp: 0.00, pred: 1708.689, error:349.5100922604224]acc: None\n", + "Cond:##..OOOF - Act:7 - effect:....OOO. - Num:1 [fit: 0.007, exp: 0.00, pred: 1519.054, error:51.98057206693248]acc: None\n", + "Cond:##..#F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 212.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:###..O.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.021, exp: 0.00, pred: 1470.790, error:76.5356247557689]acc: None\n", + "Cond:####.OOF - Act:7 - effect:....OOO. - Num:3 [fit: 0.058, exp: 205.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:##.#OO.. - Act:1 - effect:....OOO. - Num:2 [fit: 0.189, exp: 6.00, pred: 1053.792, error:2870.471118876515]acc: 0.0\n", + "Cond:#..##O.# - Act:5 - effect:...FOO.. - Num:1 [fit: 0.070, exp: 72.00, pred: 1320.594, error:2193.091203606499]acc: 0.4722222222222222\n", + "Cond:..#..O.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.007, exp: 0.00, pred: 1515.764, error:530.6265469140068]acc: None\n", + "Cond:#.#...## - Act:6 - effect:...OO... - Num:1 [fit: 0.002, exp: 28.00, pred: 798.003, error:5948.104893458627]acc: 0.0\n", + "Cond:O#.#.##O - Act:6 - effect:.O...... - Num:1 [fit: 0.220, exp: 8.00, pred: 948.891, error:2705.6014120736863]acc: 0.75\n", + "Cond:..OO###F - Act:5 - effect:....OOO. - Num:1 [fit: 0.105, exp: 0.00, pred: 1281.682, error:323.3991094123723]acc: None\n", + "Cond:#####O#F - Act:7 - effect:....OOO. - Num:2 [fit: 0.039, exp: 204.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:#...##.. - Act:3 - effect:.OOO.... - Num:1 [fit: 0.002, exp: 72.00, pred: 1667.057, error:1773.3602475137475]acc: 0.4722222222222222\n", + "Cond:O##..### - Act:7 - effect:....OOO. - Num:2 [fit: 0.009, exp: 17.00, pred: 1183.371, error:8514.480244112257]acc: 0.0\n", + "Cond:OO.....# - Act:1 - effect:OO...... - Num:2 [fit: 0.138, exp: 4.00, pred: 883.889, error:3390.5639531339475]acc: 0.0\n", + "Cond:#O.#...O - Act:7 - effect:O......O - Num:1 [fit: 0.069, exp: 4.00, pred: 808.328, error:2858.0753773429187]acc: 0.0\n", + "Cond:###...#O - Act:7 - effect:...FOO.. - Num:1 [fit: 0.036, exp: 7.00, pred: 896.951, error:3229.570085451004]acc: 0.14285714285714285\n", + "Cond:####.#.. - Act:1 - effect:....OOO. - Num:1 [fit: 0.120, exp: 2.00, pred: 649.647, error:1501.1295763962432]acc: 0.0\n", + "Cond:#####O.. - Act:5 - effect:...FOO.. - Num:2 [fit: 0.132, exp: 71.00, pred: 1320.594, error:2800.1060895814676]acc: 0.3380281690140845\n", + "Cond:.###OO## - Act:6 - effect:..OO.... - Num:2 [fit: 0.021, exp: 40.00, pred: 1163.297, error:1460.610342310684]acc: 0.95\n", + "Cond:#O#...## - Act:6 - effect:.O...... - Num:4 [fit: 0.218, exp: 53.00, pred: 894.360, error:6402.234757891905]acc: 0.37735849056603776\n", + "Cond:O###..O# - Act:5 - effect:...FOO.. - Num:1 [fit: 0.011, exp: 0.00, pred: 1644.584, error:528.6147322005247]acc: None\n", + "Cond:####OO## - Act:6 - effect:..OO.... - Num:3 [fit: 0.029, exp: 39.00, pred: 1163.346, error:1620.6821151608838]acc: 0.9487179487179487\n", + "Cond:.###OO.. - Act:6 - effect:..OO.... - Num:1 [fit: 0.007, exp: 39.00, pred: 1163.346, error:1460.6821151608838]acc: 0.9487179487179487\n", + "Cond:.##O##F# - Act:6 - effect:....OOO. - Num:1 [fit: 0.021, exp: 0.00, pred: 1281.973, error:195.57941016301413]acc: None\n", + "Cond:#.##.O.# - Act:7 - effect:....OOO. - Num:1 [fit: 0.015, exp: 0.00, pred: 1309.237, error:112.27890643882908]acc: None\n", + "Cond:#O#.###. - Act:7 - effect:......OO - Num:1 [fit: 0.002, exp: 45.00, pred: 771.178, error:3069.2999300877227]acc: 0.1111111111111111\n", + "Cond:#....O## - Act:6 - effect:....OOO. - Num:8 [fit: 0.072, exp: 206.00, pred: 1309.630, error:301.01333544763446]acc: 0.7815533980582524\n", + "Cond:O#..###O - Act:6 - effect:.O...... - Num:1 [fit: 0.189, exp: 6.00, pred: 863.486, error:2693.205200847778]acc: 0.6666666666666666\n", + "Cond:####.#.. - Act:3 - effect:....OOO. - Num:1 [fit: 0.002, exp: 25.00, pred: 1019.013, error:4869.3963828173055]acc: 0.0\n", + "Cond:###.F##. - Act:2 - effect:....OOO. - Num:6 [fit: 0.344, exp: 150.00, pred: 2122.975, error:224.5084546745183]acc: 0.9066666666666666\n", + "Cond:#O.##.#. - Act:6 - effect:....OOO. - Num:2 [fit: 0.014, exp: 15.00, pred: 843.168, error:7667.021605599387]acc: 0.0\n", + "Cond:.####.## - Act:2 - effect:....OOO. - Num:1 [fit: 0.003, exp: 24.00, pred: 862.930, error:3681.629918581282]acc: 0.0\n", + "Cond:#..##..# - Act:6 - effect:...OO... - Num:1 [fit: 0.003, exp: 12.00, pred: 936.103, error:6903.3141198729945]acc: 0.0\n", + "Cond:#.#..O#F - Act:6 - effect:....OOO. - Num:1 [fit: 0.008, exp: 48.00, pred: 921.781, error:2653.523705590048]acc: 0.1875\n", + "Cond:#.#..##. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 280.00, pred: 1825.847, error:246.04780710159352]acc: 0.7785714285714286\n", + "Cond:#...#O.# - Act:1 - effect:....FO.. - Num:3 [fit: 1.096, exp: 10.00, pred: 984.570, error:2782.167280691241]acc: 0.9\n", + "Cond:###.#O.. - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 10.00, pred: 984.570, error:5247.703280691241]acc: 0.0\n", + "Cond:##..#O## - Act:0 - effect:....OOO. - Num:1 [fit: 0.005, exp: 0.00, pred: 942.459, error:276.034371273606]acc: None\n", + "Cond:##...### - Act:0 - effect:....OOO. - Num:1 [fit: 0.079, exp: 4.00, pred: 880.369, error:1214.965448136441]acc: 0.0\n", + "Cond:###OO##. - Act:5 - effect:.....OOF - Num:1 [fit: 0.035, exp: 144.00, pred: 2439.321, error:281.155364428202]acc: 0.7013888888888888\n", + "Cond:#.OO###. - Act:5 - effect:....OOO. - Num:2 [fit: 0.105, exp: 166.00, pred: 2237.917, error:297.41694315821195]acc: 0.9879518072289156\n", + "Cond:##.##O#F - Act:7 - effect:....OOO. - Num:4 [fit: 0.076, exp: 200.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:O..##.O# - Act:5 - effect:...FOO.. - Num:1 [fit: 0.009, exp: 0.00, pred: 1523.001, error:649.0694118254892]acc: None\n", + "Cond:.....O## - Act:5 - effect:.....OF. - Num:1 [fit: 0.108, exp: 76.00, pred: 1041.317, error:4353.685556666832]acc: 0.3684210526315789\n", + "Cond:#....OO# - Act:6 - effect:....OOO. - Num:1 [fit: 0.003, exp: 39.00, pred: 921.731, error:2375.107320080895]acc: 0.10256410256410256\n", + "Cond:#...#FO. - Act:5 - effect:....OOO. - Num:1 [fit: 0.028, exp: 0.00, pred: 1542.890, error:90.89386278404072]acc: None\n", + "Cond:#.OO#O#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.790, exp: 0.00, pred: 1310.895, error:102.57409173424277]acc: None\n", + "Cond:#.OO#### - Act:5 - effect:....OOO. - Num:10 [fit: 0.514, exp: 158.00, pred: 2237.917, error:297.4169431603479]acc: 0.9873417721518988\n", + "Cond:#####.OO - Act:5 - effect:...FOO.. - Num:1 [fit: 0.002, exp: 78.00, pred: 2124.705, error:1674.053616769118]acc: 0.6410256410256411\n", + "Cond:####OO.. - Act:6 - effect:..OO.... - Num:3 [fit: 0.020, exp: 34.00, pred: 1163.295, error:1460.5243787616248]acc: 0.9411764705882353\n", + "Cond:######O# - Act:7 - effect:....OOO. - Num:2 [fit: 0.039, exp: 189.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:O.#.#O.# - Act:7 - effect:....OOO. - Num:1 [fit: 0.015, exp: 0.00, pred: 1861.172, error:414.7149987582622]acc: None\n", + "Cond:..O#.##. - Act:3 - effect:....OOO. - Num:1 [fit: 0.109, exp: 9.00, pred: 998.489, error:2686.1222231366783]acc: 0.0\n", + "Cond:.#O#O#.# - Act:5 - effect:.....OF. - Num:1 [fit: 0.055, exp: 0.00, pred: 1313.044, error:478.0992122997639]acc: None\n", + "Cond:.....##. - Act:4 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 1764.174, error:363.74359319504856]acc: None\n", + "Cond:..#O.##. - Act:6 - effect:....OOO. - Num:1 [fit: 0.004, exp: 34.00, pred: 1042.810, error:2607.7595326816113]acc: 0.7647058823529411\n", + "Cond:#.O#.##. - Act:5 - effect:....OOO. - Num:5 [fit: 0.257, exp: 155.00, pred: 2237.917, error:297.41694317530016]acc: 0.9870967741935484\n", + "Cond:.##.OOO# - Act:7 - effect:....OOO. - Num:1 [fit: 0.163, exp: 0.00, pred: 2022.326, error:301.6462779188013]acc: None\n", + "Cond:.##OO#.# - Act:6 - effect:..OO.... - Num:1 [fit: 0.041, exp: 2.00, pred: 1071.786, error:978.1447971142139]acc: 0.0\n", + "Cond:..#.F.## - Act:7 - effect:...OO... - Num:1 [fit: 0.057, exp: 0.00, pred: 1139.036, error:88.50612314674022]acc: None\n", + "Cond:.###OO#. - Act:6 - effect:..OO.... - Num:2 [fit: 0.023, exp: 31.00, pred: 1163.550, error:1620.8877743898865]acc: 0.9354838709677419\n", + "Cond:#.O#.#O. - Act:5 - effect:....OOO. - Num:1 [fit: 0.512, exp: 0.00, pred: 1468.311, error:104.6335346440721]acc: None\n", + "Cond:..O#.O#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.512, exp: 0.00, pred: 1468.311, error:104.6335346440721]acc: None\n", + "Cond:..#.#OF. - Act:0 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 1230.365, error:79.2105574417227]acc: None\n", + "Cond:#.##.### - Act:4 - effect:....OOO. - Num:1 [fit: 0.080, exp: 3.00, pred: 867.732, error:2549.178445919948]acc: 0.3333333333333333\n", + "Cond:#.#.F#.# - Act:7 - effect:...OO... - Num:2 [fit: 0.029, exp: 34.00, pred: 1034.818, error:4122.720808338575]acc: 0.6470588235294118\n", + "Cond:#.OO##.# - Act:5 - effect:....OOO. - Num:2 [fit: 0.105, exp: 143.00, pred: 2237.917, error:297.4169431710267]acc: 0.986013986013986\n", + "Cond:#.#.F..# - Act:7 - effect:...OO... - Num:1 [fit: 0.045, exp: 0.00, pred: 1880.672, error:73.15898962104794]acc: None\n", + "Cond:.##.F##O - Act:7 - effect:...OO... - Num:1 [fit: 0.045, exp: 0.00, pred: 1880.672, error:73.15898962104794]acc: None\n", + "Cond:...#.FO. - Act:5 - effect:....OOO. - Num:1 [fit: 0.005, exp: 0.00, pred: 1674.749, error:44.100142668848605]acc: None\n", + "Cond:#.OO#OO# - Act:5 - effect:....OOO. - Num:1 [fit: 0.013, exp: 0.00, pred: 1462.156, error:37.3641914995019]acc: None\n", + "Cond:###.###O - Act:7 - effect:...OO... - Num:1 [fit: 0.033, exp: 5.00, pred: 926.330, error:3006.522050111458]acc: 0.0\n", + "Cond:..#.F..# - Act:7 - effect:...OO... - Num:1 [fit: 0.048, exp: 0.00, pred: 1927.811, error:51.971713474646094]acc: None\n", + "Cond:.###OO.# - Act:7 - effect:..OO.... - Num:1 [fit: 0.045, exp: 0.00, pred: 1879.510, error:44.65563925331589]acc: None\n", + "Cond:.##OOO#. - Act:6 - effect:..OO.... - Num:1 [fit: 0.045, exp: 0.00, pred: 1879.510, error:44.65563925331589]acc: None\n", + "Cond:#.O##### - Act:5 - effect:....OOO. - Num:3 [fit: 0.157, exp: 127.00, pred: 2237.917, error:297.4169431582527]acc: 0.984251968503937\n", + "Cond:....#F#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.007, exp: 0.00, pred: 1694.996, error:39.3310394189061]acc: None\n", + "Cond:..##OO#. - Act:6 - effect:..OO.... - Num:3 [fit: 0.048, exp: 26.00, pred: 1161.923, error:1778.2065717566818]acc: 0.9230769230769231\n", + "Cond:#...F#.# - Act:7 - effect:...OO... - Num:9 [fit: 0.103, exp: 23.00, pred: 1034.493, error:4867.738624074384]acc: 0.4782608695652174\n", + "Cond:....#OO. - Act:7 - effect:....OOO. - Num:1 [fit: 0.007, exp: 0.00, pred: 1328.129, error:49.539035231956746]acc: None\n", + "Cond:..###F#. - Act:5 - effect:....OOO. - Num:3 [fit: 0.052, exp: 196.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:#.#OO### - Act:2 - effect:.....OOF - Num:1 [fit: 0.096, exp: 0.00, pred: 1340.856, error:48.06295356953851]acc: None\n", + "Cond:...#OO#. - Act:6 - effect:..OO.... - Num:1 [fit: 0.025, exp: 23.00, pred: 1159.277, error:1454.7219602529972]acc: 0.9130434782608695\n", + "Cond:.##O#O#. - Act:6 - effect:..OO.... - Num:1 [fit: 0.076, exp: 0.00, pred: 1445.593, error:33.946195318680964]acc: None\n", + "Cond:..#..##. - Act:7 - effect:OO.....O - Num:2 [fit: 0.001, exp: 21.00, pred: 989.121, error:4597.666689063726]acc: 0.047619047619047616\n", + "Cond:..##..## - Act:7 - effect:....OOO. - Num:3 [fit: 0.027, exp: 12.00, pred: 972.227, error:6289.692895385433]acc: 0.5\n", + "Cond:###.##.O - Act:7 - effect:...OO... - Num:1 [fit: 0.021, exp: 5.00, pred: 926.330, error:3366.522050111458]acc: 0.0\n", + "Cond:...#..## - Act:7 - effect:....OOO. - Num:2 [fit: 0.106, exp: 1.00, pred: 709.916, error:1800.0]acc: 0.0\n", + "Cond:...#..#. - Act:7 - effect:....OOO. - Num:1 [fit: 0.106, exp: 1.00, pred: 709.916, error:1600.0]acc: 0.0\n", + "Cond:###.#..O - Act:7 - effect:...FOO.. - Num:1 [fit: 0.355, exp: 3.00, pred: 801.679, error:1667.2396281333506]acc: 0.3333333333333333\n", + "Cond:O###.##O - Act:7 - effect:....OOO. - Num:1 [fit: 0.006, exp: 3.00, pred: 801.679, error:2467.2396281333504]acc: 0.0\n", + "Cond:.#OOO#.. - Act:5 - effect:.....OOF - Num:1 [fit: 0.010, exp: 0.00, pred: 1134.959, error:875.2179165347551]acc: None\n", + "Cond:..O#.#.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.052, exp: 110.00, pred: 2237.917, error:297.4169431524832]acc: 0.9818181818181818\n", + "Cond:#.#..O#F - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 137.00, pred: 1948.419, error:251.07661682014498]acc: 1.0\n", + "Cond:#.##..## - Act:7 - effect:....OOO. - Num:2 [fit: 0.016, exp: 3.00, pred: 796.502, error:3432.320933515355]acc: 0.0\n", + "Cond:..##.F#. - Act:7 - effect:OO.....O - Num:2 [fit: 0.109, exp: 2.00, pred: 1003.396, error:1645.0926429939175]acc: 0.0\n", + "Cond:OO..#..# - Act:1 - effect:OO...... - Num:1 [fit: 0.017, exp: 0.00, pred: 934.912, error:467.432196946809]acc: None\n", + "Cond:###..#.O - Act:7 - effect:...OO... - Num:1 [fit: 0.005, exp: 0.00, pred: 970.065, error:448.29437156873615]acc: None\n", + "Cond:O####### - Act:7 - effect:....OOO. - Num:1 [fit: 0.004, exp: 9.00, pred: 1314.563, error:7267.279212174998]acc: 0.0\n", + "Cond:###..##O - Act:0 - effect:....OOO. - Num:2 [fit: 0.498, exp: 3.00, pred: 800.005, error:1336.199910844169]acc: 0.0\n", + "Cond:.#..#### - Act:0 - effect:....OOO. - Num:1 [fit: 0.001, exp: 1.00, pred: 964.712, error:1800.0]acc: 0.0\n", + "Cond:.#.##.## - Act:2 - effect:....OOO. - Num:1 [fit: 0.101, exp: 5.00, pred: 920.193, error:3034.1117944572266]acc: 0.0\n", + "Cond:#O..#.## - Act:6 - effect:....OOO. - Num:2 [fit: 0.049, exp: 9.00, pred: 801.853, error:5445.199687415582]acc: 0.0\n", + "Cond:##..#... - Act:6 - effect:....FO.. - Num:1 [fit: 0.053, exp: 8.00, pred: 805.484, error:5731.132482618904]acc: 0.125\n", + "Cond:O..#..## - Act:6 - effect:...OO... - Num:1 [fit: 0.024, exp: 0.00, pred: 956.150, error:613.8287238127097]acc: None\n", + "Cond:#..#..#O - Act:6 - effect:...OO... - Num:1 [fit: 0.002, exp: 23.00, pred: 800.622, error:5390.4182283926475]acc: 0.0\n", + "Cond:######OO - Act:7 - effect:...FOO.. - Num:1 [fit: 0.014, exp: 0.00, pred: 975.976, error:550.6585506394133]acc: None\n", + "Cond:#...##.# - Act:4 - effect:....OOO. - Num:1 [fit: 0.045, exp: 1.00, pred: 841.449, error:0.0]acc: 1.0\n", + "Cond:##..F#.# - Act:7 - effect:...OO... - Num:1 [fit: 0.085, exp: 10.00, pred: 1040.831, error:4360.178752258289]acc: 0.0\n", + "Cond:#...#### - Act:4 - effect:....OOO. - Num:1 [fit: 0.024, exp: 1.00, pred: 720.230, error:2200.0]acc: 0.0\n", + "Cond:#..##OO. - Act:6 - effect:....OOO. - Num:1 [fit: 0.010, exp: 0.00, pred: 1326.590, error:82.61357566130036]acc: None\n", + "Cond:.##OO#.. - Act:5 - effect:.....OOF - Num:2 [fit: 0.070, exp: 66.00, pred: 2439.321, error:281.1397660512607]acc: 0.7424242424242424\n", + "Cond:.#OOO##. - Act:5 - effect:.....OOF - Num:1 [fit: 0.026, exp: 0.00, pred: 1228.565, error:3303.331394361997]acc: None\n", + "Cond:#...#O## - Act:6 - effect:....OOO. - Num:3 [fit: 0.027, exp: 184.00, pred: 1309.630, error:301.0144678551296]acc: 0.8315217391304348\n", + "Cond:###..O## - Act:1 - effect:....OOO. - Num:1 [fit: 0.018, exp: 0.00, pred: 1495.046, error:198.34912075199242]acc: None\n", + "Cond:#.#.F..# - Act:3 - effect:....OOO. - Num:1 [fit: 0.012, exp: 0.00, pred: 1120.153, error:439.10160959204177]acc: None\n", + "Cond:####OO#. - Act:6 - effect:..OO.... - Num:1 [fit: 0.124, exp: 15.00, pred: 1165.241, error:1611.1079058568812]acc: 0.8666666666666667\n", + "Cond:.##OO.## - Act:5 - effect:.....OOF - Num:5 [fit: 0.168, exp: 64.00, pred: 2439.321, error:281.1633122752595]acc: 0.75\n", + "Cond:###OO#.. - Act:5 - effect:.....OOF - Num:2 [fit: 0.078, exp: 64.00, pred: 2439.321, error:281.14759083127757]acc: 0.75\n", + "Cond:.##.FO#. - Act:5 - effect:....FO.. - Num:1 [fit: 0.017, exp: 16.00, pred: 1261.081, error:3840.410943665717]acc: 0.75\n", + "Cond:.#...O#. - Act:6 - effect:....OOO. - Num:1 [fit: 0.009, exp: 130.00, pred: 1309.630, error:301.00951517614817]acc: 1.0\n", + "Cond:##OOO..# - Act:5 - effect:.....OOF - Num:1 [fit: 0.004, exp: 0.00, pred: 1272.070, error:678.2686935879257]acc: None\n", + "Cond:#.O.#### - Act:3 - effect:....OOO. - Num:1 [fit: 0.019, exp: 0.00, pred: 1357.110, error:175.00261740786692]acc: None\n", + "Cond:#.#.#F#. - Act:3 - effect:....OOO. - Num:1 [fit: 0.018, exp: 8.00, pred: 1127.475, error:3960.9601508370497]acc: 0.0\n", + "Cond:#....### - Act:1 - effect:....OOO. - Num:2 [fit: 0.027, exp: 2.00, pred: 743.420, error:2561.545169463935]acc: 0.0\n", + "Cond:.####..# - Act:3 - effect:....OOO. - Num:1 [fit: 0.002, exp: 29.00, pred: 1015.335, error:4426.913077652574]acc: 0.0\n", + "Cond:.#.O.##. - Act:6 - effect:....OOO. - Num:1 [fit: 0.076, exp: 0.00, pred: 1137.625, error:66.37866543928988]acc: None\n", + "Cond:..##.OF. - Act:6 - effect:....OOO. - Num:1 [fit: 0.009, exp: 119.00, pred: 1309.630, error:301.00951517736405]acc: 1.0\n", + "Cond:##...O## - Act:6 - effect:....OOO. - Num:1 [fit: 0.009, exp: 140.00, pred: 1309.630, error:301.01477201403105]acc: 0.8642857142857143\n", + "Cond:#..FOO#. - Act:6 - effect:..OO.... - Num:1 [fit: 0.016, exp: 11.00, pred: 1182.607, error:1463.870969714343]acc: 0.8181818181818182\n", + "Cond:#####O.. - Act:6 - effect:....OOO. - Num:1 [fit: 0.000, exp: 25.00, pred: 1073.387, error:2440.088081382356]acc: 0.6\n", + "Cond:###OO#.# - Act:5 - effect:.....OOF - Num:2 [fit: 0.070, exp: 59.00, pred: 2439.322, error:281.14225109021334]acc: 0.8135593220338984\n", + "Cond:O..##.## - Act:3 - effect:....OOO. - Num:1 [fit: 0.005, exp: 31.00, pred: 1320.889, error:4841.150659100348]acc: 0.5483870967741935\n", + "Cond:.#OOO### - Act:5 - effect:.....OOF - Num:1 [fit: 0.000, exp: 0.00, pred: 1491.924, error:1421.0415237696316]acc: None\n", + "Cond:.O##.##O - Act:6 - effect:.....F.. - Num:1 [fit: 0.006, exp: 0.00, pred: 1698.703, error:257.3276775888043]acc: None\n", + "Cond:.#.#FO.. - Act:6 - effect:....OOO. - Num:1 [fit: 0.001, exp: 13.00, pred: 1066.352, error:1956.5279604344635]acc: 0.38461538461538464\n", + "Cond:.####... - Act:3 - effect:....OOO. - Num:1 [fit: 0.008, exp: 19.00, pred: 1015.922, error:4685.192189539443]acc: 0.0\n", + "Cond:.O###O## - Act:3 - effect:....OOO. - Num:1 [fit: 0.094, exp: 0.00, pred: 1175.046, error:282.86846856914343]acc: None\n", + "Cond:#..O#O#. - Act:2 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 1203.634, error:489.8346272143816]acc: None\n", + "Cond:#.#O.##. - Act:6 - effect:....OOO. - Num:1 [fit: 0.008, exp: 14.00, pred: 1035.642, error:3351.999185063512]acc: 0.6428571428571429\n", + "Cond:.O####.# - Act:3 - effect:....OOO. - Num:1 [fit: 0.006, exp: 7.00, pred: 1009.162, error:3915.294491855846]acc: 0.0\n", + "Cond:##O.#O#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.025, exp: 0.00, pred: 1071.371, error:574.8123054047359]acc: None\n", + "Cond:#..OOO#. - Act:6 - effect:..OO.... - Num:1 [fit: 0.027, exp: 0.00, pred: 1245.413, error:60.92965676802024]acc: None\n", + "Cond:#.O####F - Act:5 - effect:....OOO. - Num:1 [fit: 0.269, exp: 0.00, pred: 1029.722, error:192.41028258918809]acc: None\n", + "Cond:O#####.# - Act:7 - effect:....OOO. - Num:1 [fit: 0.003, exp: 8.00, pred: 1276.677, error:6807.72253665997]acc: 0.0\n", + "Cond:##O.#.O. - Act:6 - effect:.....F.. - Num:1 [fit: 0.001, exp: 0.00, pred: 1431.971, error:952.9075770386793]acc: None\n", + "Cond:#..#..#. - Act:3 - effect:....OOO. - Num:2 [fit: 0.002, exp: 0.00, pred: 1085.923, error:471.0908749355071]acc: None\n", + "Cond:#..##..# - Act:3 - effect:....OOO. - Num:2 [fit: 0.015, exp: 39.00, pred: 1320.024, error:4526.039427949774]acc: 0.41025641025641024\n", + "Cond:...#.F.. - Act:5 - effect:....OOO. - Num:3 [fit: 0.053, exp: 184.00, pred: 1825.847, error:246.0478071015795]acc: 1.0\n", + "Cond:OO..F### - Act:3 - effect:OO.....O - Num:1 [fit: 0.000, exp: 0.00, pred: 1224.927, error:3810.4450329026176]acc: None\n", + "Cond:..#O#### - Act:6 - effect:....OOO. - Num:2 [fit: 0.023, exp: 13.00, pred: 1054.822, error:5119.511182823525]acc: 0.5384615384615384\n", + "Cond:.##.#.#. - Act:6 - effect:.....F.. - Num:1 [fit: 0.001, exp: 19.00, pred: 894.045, error:6053.53277760874]acc: 0.0\n", + "Cond:.####O#. - Act:4 - effect:....OOO. - Num:1 [fit: 0.385, exp: 0.00, pred: 1309.424, error:545.3293477518134]acc: None\n", + "Cond:##..###. - Act:5 - effect:....OOO. - Num:3 [fit: 0.044, exp: 298.00, pred: 1859.108, error:492.0484794327116]acc: 0.7046979865771812\n", + "Cond:##.#F..# - Act:5 - effect:....FO.. - Num:1 [fit: 0.016, exp: 0.00, pred: 1723.278, error:402.33619107716027]acc: None\n", + "Cond:#.O##### - Act:6 - effect:....OOO. - Num:1 [fit: 0.033, exp: 10.00, pred: 1038.225, error:3161.0313885812916]acc: 0.6\n", + "Cond:.###.#O# - Act:0 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 1586.079, error:698.7170209374137]acc: None\n", + "Cond:.#.F#O.# - Act:6 - effect:..OO.... - Num:1 [fit: 0.108, exp: 5.00, pred: 1025.323, error:1196.2825746468975]acc: 0.6\n", + "Cond:..#O.##. - Act:3 - effect:....OOO. - Num:1 [fit: 0.114, exp: 2.00, pred: 759.098, error:1707.8890414414]acc: 0.0\n", + "Cond:#.#.##.# - Act:6 - effect:.....OF. - Num:1 [fit: 0.003, exp: 27.00, pred: 986.139, error:3611.612116042944]acc: 0.1111111111111111\n", + "Cond:.###F##. - Act:3 - effect:....OOO. - Num:1 [fit: 0.002, exp: 28.00, pred: 1667.876, error:4965.475947635376]acc: 0.35714285714285715\n", + "Cond:#O#...#O - Act:6 - effect:.O...... - Num:2 [fit: 0.725, exp: 0.00, pred: 1418.354, error:509.4565074566127]acc: None\n", + "Cond:#.#O.O#. - Act:6 - effect:....OOO. - Num:1 [fit: 0.037, exp: 0.00, pred: 1247.205, error:2063.5096380068317]acc: None\n", + "Cond:.#.#.#F. - Act:0 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1140.397, error:500.4450342135306]acc: None\n", + "Cond:.###F##. - Act:1 - effect:....OOO. - Num:1 [fit: 0.249, exp: 2.00, pred: 958.517, error:2903.5097852760464]acc: 0.0\n", + "Cond:#.#.#O.# - Act:6 - effect:.....OF. - Num:2 [fit: 0.004, exp: 12.00, pred: 1072.586, error:3391.8068434625425]acc: 0.0\n", + "Cond:..##OO.. - Act:6 - effect:...O.... - Num:1 [fit: 0.257, exp: 4.00, pred: 1027.335, error:1522.538693981428]acc: 0.5\n", + "Cond:#.#O#### - Act:6 - effect:....OOO. - Num:1 [fit: 0.225, exp: 4.00, pred: 934.531, error:1679.6521728007706]acc: 0.5\n", + "Cond:#.#..#.# - Act:3 - effect:....OOO. - Num:2 [fit: 0.010, exp: 29.00, pred: 1319.669, error:3994.406898076206]acc: 0.5517241379310345\n", + "Cond:.O#...## - Act:6 - effect:.O...... - Num:4 [fit: 0.126, exp: 10.00, pred: 858.084, error:6360.4437667576685]acc: 0.3\n", + "Cond:#O....## - Act:6 - effect:.O...... - Num:1 [fit: 0.054, exp: 6.00, pred: 840.146, error:6386.595557375447]acc: 0.0\n", + "Cond:.#...#.# - Act:3 - effect:.....OF. - Num:2 [fit: 0.566, exp: 3.00, pred: 768.070, error:1958.033489823553]acc: 0.6666666666666666\n", + "Cond:.#O#.#.. - Act:3 - effect:....OOO. - Num:1 [fit: 0.011, exp: 6.00, pred: 1064.772, error:3187.3492700361203]acc: 0.0\n", + "Cond:#.O#.#.. - Act:3 - effect:....OOO. - Num:1 [fit: 0.025, exp: 0.00, pred: 1003.580, error:311.7343313360617]acc: None\n", + "Cond:###..OF. - Act:4 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 1085.441, error:30.675580429201283]acc: None\n", + "Cond:.###.#O# - Act:6 - effect:....OOO. - Num:4 [fit: 0.247, exp: 16.00, pred: 812.622, error:3719.551458573999]acc: 0.0625\n", + "Cond:##...... - Act:7 - effect:.O...... - Num:3 [fit: 0.016, exp: 34.00, pred: 771.245, error:2769.3378710899874]acc: 0.5882352941176471\n", + "Cond:..##FO#. - Act:3 - effect:....OOO. - Num:3 [fit: 0.009, exp: 19.00, pred: 1672.917, error:4417.4298784474195]acc: 0.2631578947368421\n", + "Cond:.###.##. - Act:3 - effect:......OO - Num:2 [fit: 0.001, exp: 25.00, pred: 1215.716, error:1923.7693120971246]acc: 0.16\n", + "Cond:#..F#O.. - Act:6 - effect:..OO.... - Num:1 [fit: 0.202, exp: 2.00, pred: 875.121, error:63.96076644637196]acc: 1.0\n", + "Cond:#..#OO## - Act:6 - effect:..OO.... - Num:1 [fit: 0.002, exp: 2.00, pred: 875.121, error:1163.960766446372]acc: 0.5\n", + "Cond:#.####.# - Act:1 - effect:.....OF. - Num:2 [fit: 0.131, exp: 3.00, pred: 785.310, error:2960.428134799491]acc: 0.0\n", + "Cond:#.#..##. - Act:7 - effect:....OOO. - Num:1 [fit: 0.115, exp: 7.00, pred: 1049.687, error:2605.277662976673]acc: 0.0\n", + "Cond:.#.FFO#. - Act:6 - effect:...OO... - Num:1 [fit: 0.024, exp: 0.00, pred: 1042.036, error:137.4691224768915]acc: None\n", + "Cond:#.....## - Act:7 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 786.125, error:234.52600477115368]acc: None\n", + "Cond:#...#### - Act:1 - effect:....FO.. - Num:1 [fit: 0.056, exp: 2.00, pred: 743.420, error:2661.545169463935]acc: 0.0\n", + "Cond:.###FO#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.067, exp: 0.00, pred: 971.543, error:185.70963324591094]acc: None\n", + "Cond:##.#.O#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.146, exp: 0.00, pred: 1088.683, error:110.50204573046366]acc: None\n", + "Cond:#.#..O#. - Act:7 - effect:....OOO. - Num:1 [fit: 0.020, exp: 1.00, pred: 771.551, error:1800.0]acc: 0.0\n", + "Cond:...#FO## - Act:6 - effect:...OO... - Num:1 [fit: 0.010, exp: 8.00, pred: 1120.924, error:2727.560873615958]acc: 0.0\n", + "Cond:.#...... - Act:7 - effect:.O...... - Num:3 [fit: 0.304, exp: 25.00, pred: 834.495, error:4407.98944446703]acc: 0.76\n", + "Cond:##.#.### - Act:4 - effect:....OOO. - Num:1 [fit: 0.029, exp: 1.00, pred: 720.230, error:1600.0]acc: 0.0\n", + "Cond:#.#.#### - Act:4 - effect:....OOO. - Num:1 [fit: 0.005, exp: 0.00, pred: 793.981, error:118.64730573999347]acc: None\n", + "Cond:#....### - Act:4 - effect:....OOO. - Num:1 [fit: 0.005, exp: 0.00, pred: 793.981, error:118.64730573999347]acc: None\n", + "Cond:#...##.# - Act:6 - effect:.....OF. - Num:2 [fit: 0.008, exp: 15.00, pred: 991.451, error:2789.3734647722767]acc: 0.0\n", + "Cond:#...#... - Act:5 - effect:....FO.. - Num:1 [fit: 0.001, exp: 0.00, pred: 1104.325, error:599.2641296251884]acc: None\n", + "Cond:##..#... - Act:7 - effect:.O...... - Num:4 [fit: 0.043, exp: 28.00, pred: 772.074, error:4188.933140036059]acc: 0.6785714285714286\n", + "Cond:O#...### - Act:7 - effect:....OOO. - Num:1 [fit: 0.013, exp: 4.00, pred: 1093.479, error:5726.9077014063705]acc: 0.0\n", + "Cond:###.OO.# - Act:3 - effect:.....OF. - Num:1 [fit: 0.002, exp: 0.00, pred: 1271.292, error:914.2503379509014]acc: None\n", + "Cond:#..#.#O# - Act:3 - effect:......OO - Num:5 [fit: 0.105, exp: 22.00, pred: 861.645, error:3893.502667582095]acc: 0.8181818181818182\n", + "Cond:.##FO##. - Act:3 - effect:....OOO. - Num:1 [fit: 0.076, exp: 6.00, pred: 1090.165, error:115.85978472130414]acc: 1.0\n", + "Cond:#O###.## - Act:6 - effect:.O...... - Num:1 [fit: 0.140, exp: 4.00, pred: 850.326, error:4238.913234362228]acc: 0.25\n", + "Cond:#O....#. - Act:6 - effect:....OOO. - Num:1 [fit: 0.022, exp: 2.00, pred: 765.900, error:2723.6364922489156]acc: 0.0\n", + "Cond:.###OO#. - Act:3 - effect:....OOO. - Num:1 [fit: 0.329, exp: 4.00, pred: 1012.915, error:6.690209020212961]acc: 1.0\n", + "Cond:##.#OO## - Act:0 - effect:....OOO. - Num:1 [fit: 0.018, exp: 0.00, pred: 1238.504, error:51.783616738858846]acc: None\n", + "Cond:.#O#.### - Act:7 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 988.539, error:1048.241639835303]acc: None\n", + "Cond:..####.# - Act:6 - effect:....OOO. - Num:1 [fit: 0.004, exp: 6.00, pred: 1001.563, error:1425.3777140862735]acc: 0.16666666666666666\n", + "Cond:#...##.. - Act:6 - effect:.....OF. - Num:1 [fit: 0.051, exp: 5.00, pred: 1060.749, error:1161.6403467806194]acc: 0.0\n", + "Cond:#.#.#O.. - Act:6 - effect:...OO... - Num:1 [fit: 0.050, exp: 5.00, pred: 1060.749, error:961.6403467806194]acc: 0.0\n", + "Cond:.##FOO## - Act:3 - effect:....OOO. - Num:1 [fit: 0.170, exp: 2.00, pred: 1013.355, error:4.878875386836739]acc: 1.0\n", + "Cond:.#.#.... - Act:7 - effect:.O...... - Num:1 [fit: 0.253, exp: 11.00, pred: 836.317, error:4549.050169819594]acc: 0.5454545454545454\n", + "Cond:#....#O# - Act:3 - effect:......OO - Num:2 [fit: 0.541, exp: 7.00, pred: 860.342, error:4213.8936755207405]acc: 0.7142857142857143\n", + "Cond:#O#.#.## - Act:6 - effect:.O...... - Num:1 [fit: 0.027, exp: 1.00, pred: 675.261, error:2000.0]acc: 0.0\n", + "Cond:.#.##..# - Act:6 - effect:...FOO.. - Num:1 [fit: 0.004, exp: 0.00, pred: 913.607, error:701.4412126047316]acc: None\n", + "Cond:O.##..## - Act:6 - effect:...OO... - Num:1 [fit: 0.004, exp: 0.00, pred: 913.607, error:701.4412126047316]acc: None\n", + "Cond:.#.F...# - Act:5 - effect:....OOO. - Num:1 [fit: 0.058, exp: 0.00, pred: 1004.219, error:1567.5650786874749]acc: None\n", + "Cond:#.##...# - Act:2 - effect:..OO.... - Num:1 [fit: 0.214, exp: 2.00, pred: 696.538, error:1710.2853247542278]acc: 0.0\n", + "Cond:.####..# - Act:2 - effect:..OO.... - Num:1 [fit: 0.008, exp: 1.00, pred: 675.968, error:1600.0]acc: 0.0\n", + "Cond:.#.##..# - Act:2 - effect:....OOO. - Num:1 [fit: 0.016, exp: 1.00, pred: 675.968, error:2200.0]acc: 0.0\n", + "Cond:.O#...#. - Act:4 - effect:OO...... - Num:1 [fit: 0.047, exp: 2.00, pred: 709.528, error:3044.72743802484]acc: 0.0\n", + "Cond:.O#.##.. - Act:4 - effect:....OOO. - Num:1 [fit: 0.026, exp: 2.00, pred: 709.528, error:2544.72743802484]acc: 0.0\n", + "Cond:.##..#.# - Act:6 - effect:.....OF. - Num:1 [fit: 0.232, exp: 1.00, pred: 675.261, error:1600.0]acc: 0.0\n", + "Cond:O#...... - Act:7 - effect:....OOO. - Num:1 [fit: 0.009, exp: 1.00, pred: 634.980, error:1600.0]acc: 0.0\n", + "Cond:#..#...O - Act:2 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 884.955, error:133.48075595713135]acc: None\n", + "Cond:.#.#.#O# - Act:6 - effect:....OOO. - Num:1 [fit: 0.131, exp: 2.00, pred: 801.752, error:1906.2949318173376]acc: 0.5\n", + "Cond:.#.##.#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 791.914, error:773.2212014785395]acc: None\n", + "Cond:#O.#.### - Act:1 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 791.914, error:773.2212014785395]acc: None\n", + "Cond:..#.##.. - Act:3 - effect:.....OF. - Num:2 [fit: 0.003, exp: 11.00, pred: 1790.186, error:5908.081412190937]acc: 0.0\n", + "Cond:.##O#.## - Act:0 - effect:.....F.. - Num:1 [fit: 0.011, exp: 0.00, pred: 747.364, error:719.7801751865054]acc: None\n", + "Cond:.#.O###. - Act:0 - effect:.......O - Num:1 [fit: 0.011, exp: 0.00, pred: 747.364, error:719.7801751865054]acc: None\n", + "Cond:######.# - Act:1 - effect:....OOO. - Num:1 [fit: 0.024, exp: 0.00, pred: 792.116, error:301.49206073116386]acc: None\n", + "Cond:.#.#...# - Act:7 - effect:.O...... - Num:1 [fit: 0.253, exp: 0.00, pred: 836.317, error:2949.050169819594]acc: None\n", + "Cond:.###.... - Act:7 - effect:.O...... - Num:1 [fit: 0.253, exp: 0.00, pred: 836.317, error:2949.050169819594]acc: None\n", + "Cond:###.##.. - Act:3 - effect:....OOO. - Num:1 [fit: 0.003, exp: 11.00, pred: 1790.186, error:4100.7905321909375]acc: 0.36363636363636365\n", + "Cond:##.FFO#. - Act:6 - effect:....OOO. - Num:1 [fit: 0.019, exp: 0.00, pred: 1289.830, error:637.6864650567773]acc: None\n", + "Cond:.#.#OO.. - Act:6 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 1105.491, error:39.59620944129755]acc: None\n", + "Cond:#.#O##.# - Act:3 - effect:....OOO. - Num:2 [fit: 0.003, exp: 0.00, pred: 1569.282, error:121.99000583073118]acc: None\n", + "Cond:.....O## - Act:6 - effect:....OOO. - Num:1 [fit: 0.009, exp: 60.00, pred: 1309.630, error:301.01137344303027]acc: 0.9833333333333333\n", + "Cond:#.OO##.F - Act:5 - effect:....OOO. - Num:1 [fit: 0.012, exp: 0.00, pred: 983.175, error:445.0093691584556]acc: None\n", + "Cond:..O#.O.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.012, exp: 0.00, pred: 983.175, error:445.0093691584556]acc: None\n", + "Cond:.#..FO## - Act:5 - effect:.....F.. - Num:1 [fit: 0.205, exp: 2.00, pred: 1156.059, error:1718.2894200763808]acc: 0.5\n", + "Cond:...F#### - Act:4 - effect:...FOO.. - Num:1 [fit: 0.006, exp: 0.00, pred: 1130.032, error:968.1854372987591]acc: None\n", + "Cond:.#.#.#OF - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 131.00, pred: 1948.419, error:251.07661682073928]acc: 1.0\n", + "Cond:...#.OO. - Act:6 - effect:....OOO. - Num:1 [fit: 0.260, exp: 0.00, pred: 873.764, error:1052.204494700778]acc: None\n", + "Cond:##..###O - Act:4 - effect:...FOO.. - Num:1 [fit: 0.001, exp: 0.00, pred: 1534.501, error:512.1110090883312]acc: None\n", + "Cond:.##..### - Act:3 - effect:....OOO. - Num:1 [fit: 0.001, exp: 18.00, pred: 1346.783, error:5100.349864721724]acc: 0.0\n", + "Cond:###.#OOF - Act:7 - effect:....OOO. - Num:3 [fit: 0.062, exp: 123.00, pred: 1948.419, error:251.07661681708376]acc: 1.0\n", + "Cond:##.#O### - Act:2 - effect:.....F.. - Num:5 [fit: 0.075, exp: 78.00, pred: 2306.930, error:380.06542213421125]acc: 0.9102564102564102\n", + "Cond:#...##.. - Act:2 - effect:....OOO. - Num:1 [fit: 0.048, exp: 159.00, pred: 2122.822, error:226.7030900779826]acc: 0.7484276729559748\n", + "Cond:....##.. - Act:3 - effect:....OOO. - Num:1 [fit: 0.006, exp: 11.00, pred: 1790.186, error:4931.569412190937]acc: 0.36363636363636365\n", + "Cond:#.##.##. - Act:1 - effect:.....OF. - Num:1 [fit: 0.017, exp: 0.00, pred: 1227.125, error:350.90301200968656]acc: None\n", + "Cond:..#..F## - Act:5 - effect:....OOO. - Num:1 [fit: 0.020, exp: 161.00, pred: 1825.847, error:246.04780710157942]acc: 1.0\n", + "Cond:..OO##.# - Act:3 - effect:....OOO. - Num:1 [fit: 0.010, exp: 0.00, pred: 1324.837, error:128.74656718286667]acc: None\n", + "Cond:##...OOF - Act:7 - effect:....OOO. - Num:2 [fit: 0.029, exp: 120.00, pred: 1948.419, error:251.07661681761726]acc: 1.0\n", + "Cond:####.#OF - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 120.00, pred: 1948.419, error:251.07661681761726]acc: 1.0\n", + "Cond:##.#O#.# - Act:2 - effect:.....F.. - Num:5 [fit: 0.080, exp: 76.00, pred: 2306.930, error:378.06230958603527]acc: 0.9078947368421053\n", + "Cond:O##.##.# - Act:3 - effect:...O.... - Num:1 [fit: 0.007, exp: 30.00, pred: 1439.102, error:2927.4267324699053]acc: 0.6333333333333333\n", + "Cond:##..#.## - Act:3 - effect:....OOO. - Num:1 [fit: 0.001, exp: 30.00, pred: 1439.102, error:3970.7723568991805]acc: 0.5\n", + "Cond:#.OO.#.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.052, exp: 94.00, pred: 2237.917, error:297.4169428391154]acc: 1.0\n", + "Cond:.##OO### - Act:0 - effect:.....OOF - Num:1 [fit: 0.001, exp: 0.00, pred: 1663.183, error:526.4396464889498]acc: None\n", + "Cond:#.#..OOF - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 113.00, pred: 1948.419, error:251.0766168166831]acc: 1.0\n", + "Cond:#.OO#### - Act:1 - effect:....OOO. - Num:1 [fit: 0.024, exp: 0.00, pred: 1485.811, error:71.53752812383858]acc: None\n", + "Cond:#.OO###F - Act:5 - effect:....OOO. - Num:1 [fit: 0.024, exp: 0.00, pred: 1485.811, error:71.53752812383858]acc: None\n", + "Cond:..##FF#. - Act:2 - effect:.....OOF - Num:1 [fit: 0.010, exp: 0.00, pred: 1586.132, error:434.60801688811864]acc: None\n", + "Cond:###.#.#. - Act:1 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1621.978, error:506.2760782099705]acc: None\n", + "Cond:...O#O#. - Act:2 - effect:...O.... - Num:1 [fit: 0.003, exp: 0.00, pred: 1517.673, error:556.4957028821489]acc: None\n", + "Cond:#.OO.### - Act:5 - effect:....OOO. - Num:4 [fit: 0.168, exp: 79.00, pred: 2237.917, error:297.4169412773152]acc: 1.0\n", + "Cond:.#OO#O## - Act:5 - effect:....OOO. - Num:1 [fit: 0.013, exp: 0.00, pred: 1386.021, error:149.12789926784882]acc: None\n", + "Cond:...###O# - Act:2 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1315.955, error:42.46764369319496]acc: None\n", + "Cond:##.#O#.# - Act:5 - effect:.....OOF - Num:1 [fit: 0.001, exp: 73.00, pred: 2397.943, error:3682.291303716083]acc: 0.4794520547945205\n", + "Cond:.##.#F.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 156.00, pred: 1825.847, error:246.04780710157942]acc: 1.0\n", + "Cond:....#F.# - Act:2 - effect:.....OF. - Num:2 [fit: 0.159, exp: 14.00, pred: 1258.311, error:182.16454230645667]acc: 1.0\n", + "Cond:.....#F# - Act:5 - effect:.....OF. - Num:1 [fit: 0.217, exp: 2.00, pred: 843.987, error:1701.6588530833346]acc: 0.5\n", + "Cond:..O#.#O# - Act:5 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 1177.618, error:37.55714238031585]acc: None\n", + "Cond:#.#...## - Act:3 - effect:....OOO. - Num:4 [fit: 0.066, exp: 25.00, pred: 1323.571, error:4128.4903439827085]acc: 0.6\n", + "Cond:..#.#.## - Act:3 - effect:....OOO. - Num:1 [fit: 0.001, exp: 0.00, pred: 1282.182, error:199.69093503988003]acc: None\n", + "Cond:####O#.# - Act:2 - effect:.....F.. - Num:1 [fit: 0.015, exp: 69.00, pred: 2306.930, error:379.91236986753677]acc: 0.8985507246376812\n", + "Cond:#...###F - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 91.00, pred: 1948.419, error:251.07662000109426]acc: 1.0\n", + "Cond:..##.F## - Act:5 - effect:....OOO. - Num:4 [fit: 0.070, exp: 155.00, pred: 1825.847, error:246.04780710157948]acc: 1.0\n", + "Cond:#...#F.# - Act:2 - effect:.....OF. - Num:3 [fit: 0.122, exp: 10.00, pred: 1297.117, error:193.7066562975593]acc: 1.0\n", + "Cond:.##.#F## - Act:2 - effect:.....OF. - Num:1 [fit: 0.063, exp: 10.00, pred: 1297.117, error:193.7066562975593]acc: 1.0\n", + "Cond:#.##.#F# - Act:6 - effect:....OOO. - Num:1 [fit: 0.011, exp: 56.00, pred: 1309.634, error:301.01148413817117]acc: 1.0\n", + "Cond:#....F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 152.00, pred: 1825.847, error:246.04780710158101]acc: 1.0\n", + "Cond:..#.#O## - Act:5 - effect:....OOO. - Num:1 [fit: 0.000, exp: 0.00, pred: 1619.789, error:2585.7938439098034]acc: None\n", + "Cond:####..## - Act:5 - effect:....OOO. - Num:2 [fit: 0.004, exp: 347.00, pred: 2499.409, error:2494.2530535983637]acc: 0.2737752161383285\n", + "Cond:####F#.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.008, exp: 0.00, pred: 2276.536, error:317.1361975323695]acc: None\n", + "Cond:#....O## - Act:1 - effect:....OOO. - Num:1 [fit: 0.016, exp: 0.00, pred: 1701.083, error:133.18817514488768]acc: None\n", + "Cond:#####.## - Act:5 - effect:....OOO. - Num:5 [fit: 0.010, exp: 379.00, pred: 2612.986, error:2398.164247421447]acc: 0.3087071240105541\n", + "Cond:#.##..## - Act:3 - effect:....OOO. - Num:2 [fit: 0.065, exp: 25.00, pred: 1323.571, error:3934.8129295827093]acc: 0.6\n", + "Cond:.###O#.# - Act:4 - effect:.....OOF - Num:1 [fit: 0.006, exp: 0.00, pred: 1692.425, error:366.87121072582215]acc: None\n", + "Cond:#...#F.. - Act:2 - effect:....OOO. - Num:1 [fit: 0.002, exp: 10.00, pred: 1297.117, error:4268.7402562975585]acc: 0.0\n", + "Cond:..OO.### - Act:5 - effect:....OOO. - Num:1 [fit: 0.052, exp: 66.00, pred: 2237.918, error:297.4171213104337]acc: 1.0\n", + "Cond:..#..##. - Act:5 - effect:....OOO. - Num:3 [fit: 0.045, exp: 139.00, pred: 1825.847, error:246.04780710156098]acc: 1.0\n", + "Cond:###.FF#. - Act:2 - effect:....OOO. - Num:1 [fit: 0.207, exp: 0.00, pred: 2027.230, error:386.51212596012226]acc: None\n", + "Cond:#.###### - Act:7 - effect:....OOO. - Num:3 [fit: 0.058, exp: 84.00, pred: 1948.419, error:251.07663112272834]acc: 1.0\n", + "Cond:##.#OO.. - Act:2 - effect:.....F.. - Num:2 [fit: 0.029, exp: 57.00, pred: 2306.929, error:381.7271595816214]acc: 0.8771929824561403\n", + "Cond:.###.F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 126.00, pred: 1825.847, error:246.0478071014796]acc: 1.0\n", + "Cond:#....##F - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 81.00, pred: 1948.419, error:251.07663557171]acc: 1.0\n", + "Cond:.#.OO### - Act:5 - effect:.....OOF - Num:1 [fit: 0.037, exp: 31.00, pred: 2440.069, error:281.43290047994935]acc: 1.0\n", + "Cond:.##.##.# - Act:3 - effect:....OOO. - Num:1 [fit: 0.004, exp: 11.00, pred: 1790.186, error:4342.733572190938]acc: 0.36363636363636365\n", + "Cond:#...#O#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.021, exp: 0.00, pred: 1889.429, error:56.931640562994694]acc: None\n", + "Cond:..#.O#.. - Act:2 - effect:.....F.. - Num:1 [fit: 0.043, exp: 0.00, pred: 2193.862, error:52.86163267023902]acc: None\n", + "Cond:.##OO##. - Act:5 - effect:.....OOF - Num:2 [fit: 0.070, exp: 29.00, pred: 2440.334, error:281.9025183888516]acc: 1.0\n", + "Cond:###OO... - Act:5 - effect:.....OOF - Num:1 [fit: 0.035, exp: 29.00, pred: 2440.334, error:281.9025183888516]acc: 1.0\n", + "Cond:.####O#. - Act:6 - effect:....OOO. - Num:1 [fit: 0.009, exp: 38.00, pred: 1309.647, error:300.9998253114917]acc: 1.0\n", + "Cond:..#.F#.. - Act:2 - effect:....OOO. - Num:2 [fit: 0.114, exp: 80.00, pred: 2122.975, error:224.5084541756377]acc: 1.0\n", + "Cond:..OO.##. - Act:5 - effect:....OOO. - Num:1 [fit: 0.052, exp: 56.00, pred: 2237.917, error:297.41530157487483]acc: 1.0\n", + "Cond:#.OO.#.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.052, exp: 56.00, pred: 2237.917, error:297.41530157487483]acc: 1.0\n", + "Cond:###..O#F - Act:7 - effect:....OOO. - Num:2 [fit: 0.038, exp: 73.00, pred: 1948.419, error:251.0766580465728]acc: 1.0\n", + "Cond:.#O#O### - Act:5 - effect:.....OOF - Num:1 [fit: 0.013, exp: 0.00, pred: 2515.975, error:129.95034827048332]acc: None\n", + "Cond:###OO..# - Act:5 - effect:.....OOF - Num:2 [fit: 0.111, exp: 27.00, pred: 2439.507, error:280.26338373532224]acc: 1.0\n", + "Cond:...#.O#. - Act:6 - effect:....OOO. - Num:4 [fit: 0.028, exp: 35.00, pred: 1309.511, error:300.72292905281586]acc: 1.0\n", + "Cond:.#.##F#. - Act:3 - effect:....OOO. - Num:1 [fit: 0.005, exp: 0.00, pred: 1835.572, error:42.639500571894]acc: None\n", + "Cond:.##.OO#. - Act:2 - effect:.....F.. - Num:1 [fit: 0.034, exp: 0.00, pred: 2123.638, error:86.0253876386183]acc: None\n", + "Cond:..OO.O#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 2224.774, error:58.73886604733403]acc: None\n", + "Cond:...#.O## - Act:6 - effect:....OOO. - Num:1 [fit: 0.009, exp: 31.00, pred: 1309.962, error:301.3858501986791]acc: 1.0\n", + "Cond:#.#.F#.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.019, exp: 0.00, pred: 2083.615, error:67.41830543451239]acc: None\n", + "Cond:..#..#.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 104.00, pred: 1825.847, error:246.04780708825155]acc: 1.0\n", + "Cond:.###O### - Act:2 - effect:.....F.. - Num:2 [fit: 0.032, exp: 44.00, pred: 2306.924, error:378.0480224982885]acc: 0.8409090909090909\n", + "Cond:#####.O# - Act:2 - effect:...FOO.. - Num:1 [fit: 0.029, exp: 0.00, pred: 2466.244, error:68.7931137029548]acc: None\n", + "Cond:#....F.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 96.00, pred: 1825.847, error:246.0478070605559]acc: 1.0\n", + "Cond:##OO.O.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.032, exp: 0.00, pred: 2214.380, error:199.41740180778518]acc: None\n", + "Cond:#..#.OOF - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 65.00, pred: 1948.419, error:251.076833627319]acc: 1.0\n", + "Cond:##.#OO.# - Act:2 - effect:.....F.. - Num:1 [fit: 0.016, exp: 38.00, pred: 2306.905, error:379.0931033071599]acc: 0.8157894736842105\n", + "Cond:..#.#F.. - Act:2 - effect:.....OF. - Num:1 [fit: 0.000, exp: 10.00, pred: 1297.117, error:3449.6682562975593]acc: 0.1\n", + "Cond:.##..F#. - Act:5 - effect:....OOO. - Num:2 [fit: 0.035, exp: 85.00, pred: 1825.847, error:246.04780690890203]acc: 1.0\n", + "Cond:####O..# - Act:5 - effect:.....OOF - Num:1 [fit: 0.071, exp: 21.00, pred: 2435.614, error:276.40116722125447]acc: 1.0\n", + "Cond:##OO##O# - Act:5 - effect:....OOO. - Num:1 [fit: 0.023, exp: 0.00, pred: 2163.070, error:44.60160165874159]acc: None\n", + "Cond:##OO#O## - Act:5 - effect:....OOO. - Num:1 [fit: 0.023, exp: 0.00, pred: 2163.070, error:44.60160165874159]acc: None\n", + "Cond:....##F# - Act:5 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 1920.076, error:40.45750260778474]acc: None\n", + "Cond:####OO.# - Act:2 - effect:.....F.. - Num:2 [fit: 0.022, exp: 34.00, pred: 2306.629, error:379.7533409322018]acc: 0.7941176470588235\n", + "Cond:.#.#OO## - Act:2 - effect:.....F.. - Num:3 [fit: 0.045, exp: 34.00, pred: 2306.629, error:379.9117763277021]acc: 0.7941176470588235\n", + "Cond:.#O#O.#. - Act:5 - effect:.....OOF - Num:1 [fit: 0.027, exp: 0.00, pred: 2383.084, error:36.08573774917655]acc: None\n", + "Cond:.....##. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 81.00, pred: 1825.847, error:246.0478073595747]acc: 1.0\n", + "Cond:#.##.F.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 81.00, pred: 1825.847, error:246.0478073595747]acc: 1.0\n", + "Cond:#.OO##O# - Act:5 - effect:....OOO. - Num:1 [fit: 0.028, exp: 0.00, pred: 2015.027, error:39.90055205608894]acc: None\n", + "Cond:#.##.### - Act:5 - effect:....OOO. - Num:1 [fit: 0.001, exp: 221.00, pred: 2208.708, error:1610.938401861646]acc: 0.6199095022624435\n", + "Cond:#..FO#.# - Act:5 - effect:...FOO.. - Num:1 [fit: 0.006, exp: 34.00, pred: 1320.778, error:2933.862387303233]acc: 0.058823529411764705\n", + "Cond:##.#OO#. - Act:2 - effect:.....F.. - Num:3 [fit: 0.049, exp: 32.00, pred: 2306.511, error:377.8896055362053]acc: 0.78125\n", + "Cond:.##.#F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 75.00, pred: 1825.847, error:246.04777941756396]acc: 1.0\n", + "Cond:####OO## - Act:2 - effect:.....F.. - Num:1 [fit: 0.014, exp: 30.00, pred: 2307.221, error:384.8856293703533]acc: 0.7666666666666667\n", + "Cond:...#O### - Act:2 - effect:.....F.. - Num:1 [fit: 0.014, exp: 30.00, pred: 2307.221, error:384.1135224504041]acc: 0.7666666666666667\n", + "Cond:..##.##. - Act:6 - effect:....OOO. - Num:1 [fit: 0.016, exp: 19.00, pred: 1311.524, error:301.1036103459686]acc: 1.0\n", + "Cond:##.##.## - Act:1 - effect:....OOO. - Num:1 [fit: 0.011, exp: 0.00, pred: 1969.920, error:49.61818496102171]acc: None\n", + "Cond:##..#### - Act:3 - effect:...O.... - Num:2 [fit: 0.003, exp: 55.00, pred: 1371.812, error:4180.427520003814]acc: 0.45454545454545453\n", + "Cond:.###...# - Act:3 - effect:....OOO. - Num:1 [fit: 0.244, exp: 5.00, pred: 1116.337, error:2833.242370883583]acc: 0.0\n", + "Cond:.#.F#O.# - Act:5 - effect:...FOO.. - Num:1 [fit: 0.295, exp: 13.00, pred: 1324.684, error:2108.1912342951514]acc: 0.8461538461538461\n", + "Cond:.#.#.F.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 65.00, pred: 1825.847, error:246.0477256273078]acc: 1.0\n", + "Cond:##.#..OO - Act:5 - effect:...FOO.. - Num:1 [fit: 0.002, exp: 27.00, pred: 2124.941, error:1481.44009502915]acc: 0.4074074074074074\n", + "Cond:O#.#..O# - Act:5 - effect:...FOO.. - Num:1 [fit: 0.016, exp: 0.00, pred: 2333.371, error:368.40514435786565]acc: None\n", + "Cond:#.##.OF# - Act:6 - effect:....OOO. - Num:1 [fit: 0.019, exp: 18.00, pred: 1309.763, error:298.56702684491614]acc: 1.0\n", + "Cond:.##.###. - Act:5 - effect:....OOO. - Num:1 [fit: 0.015, exp: 73.00, pred: 1893.148, error:893.8423961884575]acc: 0.9041095890410958\n", + "Cond:#.##.#.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.003, exp: 163.00, pred: 2208.641, error:1572.0464840404318]acc: 0.6625766871165644\n", + "Cond:#####O.. - Act:1 - effect:...FOO.. - Num:1 [fit: 0.069, exp: 0.00, pred: 1554.495, error:2186.3156477129774]acc: None\n", + "Cond:.#.#O### - Act:2 - effect:.....F.. - Num:2 [fit: 0.034, exp: 28.00, pred: 2309.107, error:375.4924186891549]acc: 0.75\n", + "Cond:#.#.F#.. - Act:2 - effect:....OOO. - Num:5 [fit: 0.237, exp: 38.00, pred: 2123.001, error:224.47377040829275]acc: 1.0\n", + "Cond:##.##### - Act:3 - effect:....OOO. - Num:1 [fit: 0.002, exp: 44.00, pred: 1371.823, error:2991.367057558353]acc: 0.25\n", + "Cond:#..#.F#. - Act:0 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 1457.363, error:44.34168667455944]acc: None\n", + "Cond:####.#O# - Act:5 - effect:...FOO.. - Num:2 [fit: 0.004, exp: 23.00, pred: 2121.149, error:1612.2924324901587]acc: 0.4782608695652174\n", + "Cond:####O.## - Act:5 - effect:.....OOF - Num:3 [fit: 0.252, exp: 14.00, pred: 2431.569, error:272.55493275072126]acc: 1.0\n", + "Cond:.#####.# - Act:3 - effect:....OOO. - Num:2 [fit: 0.056, exp: 14.00, pred: 1383.518, error:4888.602650726573]acc: 0.2857142857142857\n", + "Cond:###.#OO# - Act:7 - effect:....OOO. - Num:1 [fit: 0.020, exp: 47.00, pred: 1948.412, error:251.05602539676852]acc: 1.0\n", + "Cond:##..O#O# - Act:7 - effect:....OOO. - Num:1 [fit: 0.004, exp: 0.00, pred: 1679.659, error:58.87042378261822]acc: None\n", + "Cond:.##.O##. - Act:2 - effect:.....F.. - Num:1 [fit: 0.020, exp: 0.00, pred: 1966.144, error:525.5776702262747]acc: None\n", + "Cond:.#.###.# - Act:3 - effect:....OOO. - Num:1 [fit: 0.045, exp: 7.00, pred: 1611.278, error:3701.908166915538]acc: 0.2857142857142857\n", + "Cond:O###..OO - Act:5 - effect:...FOO.. - Num:1 [fit: 0.004, exp: 0.00, pred: 2221.741, error:628.0041953100285]acc: None\n", + "Cond:.#O##..# - Act:3 - effect:....OOO. - Num:1 [fit: 0.044, exp: 3.00, pred: 1006.754, error:2814.8391922156334]acc: 0.0\n", + "Cond:#.#..O#. - Act:6 - effect:....OOO. - Num:1 [fit: 0.140, exp: 6.00, pred: 1146.212, error:93.61105190454327]acc: 1.0\n", + "Cond:.....OF# - Act:6 - effect:....OOO. - Num:1 [fit: 0.140, exp: 6.00, pred: 1146.212, error:93.61105190454327]acc: 1.0\n", + "Cond:.####.#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.000, exp: 101.00, pred: 2569.348, error:1681.51199290808]acc: 0.5544554455445545\n", + "Cond:###OO.## - Act:5 - effect:.....OOF - Num:2 [fit: 0.140, exp: 12.00, pred: 2430.813, error:271.147059187859]acc: 1.0\n", + "Cond:#.OO.#O. - Act:5 - effect:....OOO. - Num:1 [fit: 0.125, exp: 0.00, pred: 2032.963, error:219.40234097260935]acc: None\n", + "Cond:##OO#O.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.113, exp: 0.00, pred: 2031.173, error:213.43706406340897]acc: None\n", + "Cond:##.###.# - Act:3 - effect:....OOO. - Num:1 [fit: 0.004, exp: 15.00, pred: 1417.681, error:4973.991090388701]acc: 0.13333333333333333\n", + "Cond:.#.#OO## - Act:5 - effect:.....F.. - Num:1 [fit: 0.005, exp: 0.00, pred: 1782.964, error:828.294463570928]acc: None\n", + "Cond:#....### - Act:3 - effect:....OOO. - Num:3 [fit: 0.010, exp: 18.00, pred: 1245.873, error:3014.1524181008217]acc: 0.05555555555555555\n", + "Cond:..##.F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 47.00, pred: 1825.845, error:246.04331534133763]acc: 1.0\n", + "Cond:#....F.# - Act:2 - effect:.....OF. - Num:1 [fit: 0.347, exp: 9.00, pred: 1255.451, error:155.12700255975145]acc: 1.0\n", + "Cond:..#.##.# - Act:2 - effect:....OOO. - Num:1 [fit: 0.048, exp: 44.00, pred: 2122.799, error:226.7589625126488]acc: 0.7954545454545454\n", + "Cond:#.##.#F. - Act:0 - effect:....OOO. - Num:1 [fit: 0.008, exp: 0.00, pred: 1579.715, error:90.16629451997451]acc: None\n", + "Cond:####.O## - Act:6 - effect:....OOO. - Num:1 [fit: 0.246, exp: 4.00, pred: 1126.005, error:74.7958189056925]acc: 1.0\n", + "Cond:#.###### - Act:3 - effect:....OOO. - Num:2 [fit: 0.043, exp: 8.00, pred: 1214.552, error:3844.9075961237395]acc: 0.125\n", + "Cond:.##..F.# - Act:2 - effect:.....OF. - Num:1 [fit: 0.362, exp: 4.00, pred: 1272.015, error:134.05480133988493]acc: 1.0\n", + "Cond:.OOO.#.. - Act:3 - effect:....OOO. - Num:1 [fit: 0.013, exp: 0.00, pred: 1106.722, error:1992.2357095639643]acc: None\n", + "Cond:..##.### - Act:5 - effect:....OOO. - Num:1 [fit: 0.001, exp: 119.00, pred: 2204.840, error:1585.8512826149488]acc: 0.7142857142857143\n", + "Cond:#.#.#OF. - Act:6 - effect:....OOO. - Num:1 [fit: 0.152, exp: 2.00, pred: 1118.305, error:54.07987325235797]acc: 1.0\n", + "Cond:.####### - Act:5 - effect:....OOO. - Num:1 [fit: 0.001, exp: 140.00, pred: 2354.658, error:1778.0845253758193]acc: 0.6571428571428571\n", + "Cond:#####.## - Act:4 - effect:....OOO. - Num:1 [fit: 0.002, exp: 0.00, pred: 1282.955, error:412.88075265597956]acc: None\n", + "Cond:#..#.F.# - Act:2 - effect:.....OF. - Num:1 [fit: 0.023, exp: 0.00, pred: 1276.284, error:43.604207357163844]acc: None\n", + "Cond:###..O.. - Act:2 - effect:.....OOF - Num:1 [fit: 0.019, exp: 0.00, pred: 1449.433, error:107.37520021712714]acc: None\n", + "Cond:###..O#. - Act:2 - effect:....OOO. - Num:1 [fit: 0.001, exp: 16.00, pred: 2231.856, error:6949.340657307325]acc: 0.0\n", + "Cond:###.##O# - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 43.00, pred: 1948.430, error:251.08915053651995]acc: 1.0\n", + "Cond:#..#OO#. - Act:2 - effect:.....F.. - Num:2 [fit: 0.249, exp: 20.00, pred: 2306.809, error:340.16169409750205]acc: 1.0\n", + "Cond:...OO### - Act:5 - effect:.....OOF - Num:1 [fit: 0.235, exp: 10.00, pred: 2419.473, error:264.29761324462925]acc: 1.0\n", + "Cond:###..F.. - Act:2 - effect:....OOO. - Num:1 [fit: 0.013, exp: 0.00, pred: 1633.906, error:456.5348075256136]acc: None\n", + "Cond:.##.F### - Act:2 - effect:....OOO. - Num:1 [fit: 0.058, exp: 31.00, pred: 2122.876, error:224.40553777193318]acc: 1.0\n", + "Cond:..O#.##. - Act:5 - effect:....OOO. - Num:1 [fit: 0.054, exp: 30.00, pred: 2237.932, error:297.30455951193795]acc: 1.0\n", + "Cond:#.O#.### - Act:5 - effect:....OOO. - Num:1 [fit: 0.054, exp: 30.00, pred: 2237.932, error:297.30455951193795]acc: 1.0\n", + "Cond:O####.## - Act:5 - effect:....FO.. - Num:1 [fit: 0.018, exp: 21.00, pred: 2409.822, error:3954.687526047537]acc: 0.6190476190476191\n", + "Cond:###.F#.# - Act:2 - effect:....OOO. - Num:1 [fit: 0.059, exp: 28.00, pred: 2122.800, error:224.3407864043484]acc: 1.0\n", + "Cond:#.#.F##. - Act:2 - effect:....OOO. - Num:3 [fit: 0.163, exp: 28.00, pred: 2122.800, error:224.3407864043484]acc: 1.0\n", + "Cond:.#...F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.017, exp: 35.00, pred: 1825.943, error:246.1003839795294]acc: 1.0\n", + "Cond:#.##.F## - Act:1 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 1353.368, error:27.231522782389426]acc: None\n", + "Cond:..O##### - Act:5 - effect:....OOO. - Num:1 [fit: 0.054, exp: 26.00, pred: 2237.911, error:297.3289236776996]acc: 1.0\n", + "Cond:##.#.OOF - Act:7 - effect:....OOO. - Num:1 [fit: 0.020, exp: 33.00, pred: 1948.370, error:250.95942362884065]acc: 1.0\n", + "Cond:#.##OO#. - Act:2 - effect:.....F.. - Num:4 [fit: 0.356, exp: 15.00, pred: 2310.683, error:338.4881771504716]acc: 1.0\n", + "Cond:##O#O.## - Act:1 - effect:.....OOF - Num:1 [fit: 0.032, exp: 0.00, pred: 2250.791, error:26.220165385352963]acc: None\n", + "Cond:#.#.#F#. - Act:2 - effect:....OOO. - Num:1 [fit: 0.008, exp: 0.00, pred: 1569.734, error:180.49132983358473]acc: None\n", + "Cond:###.FO#. - Act:2 - effect:....OOO. - Num:1 [fit: 0.064, exp: 24.00, pred: 2123.311, error:224.19124949204797]acc: 1.0\n", + "Cond:##...##. - Act:5 - effect:....OOO. - Num:1 [fit: 0.015, exp: 40.00, pred: 1859.105, error:491.8125004143764]acc: 0.9\n", + "Cond:#..#.#.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.000, exp: 40.00, pred: 1909.877, error:1064.166881848293]acc: 0.775\n", + "Cond:..#..O## - Act:2 - effect:....OOO. - Num:1 [fit: 0.004, exp: 11.00, pred: 2219.613, error:6166.76420582545]acc: 0.0\n", + "Cond:....###F - Act:5 - effect:....OOO. - Num:1 [fit: 0.006, exp: 0.00, pred: 1788.304, error:197.97229795523342]acc: None\n", + "Cond:#..#O### - Act:2 - effect:.....F.. - Num:1 [fit: 0.068, exp: 12.00, pred: 2313.958, error:342.17575105373453]acc: 1.0\n", + "Cond:##.#OO#. - Act:6 - effect:.....F.. - Num:1 [fit: 0.036, exp: 0.00, pred: 1869.721, error:101.97639237805804]acc: None\n", + "Cond:##O##.## - Act:5 - effect:.....OOF - Num:1 [fit: 0.001, exp: 26.00, pred: 2361.448, error:4594.049453798257]acc: 0.0\n", + "Cond:####.O#F - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 25.00, pred: 1949.038, error:251.72828242816473]acc: 1.0\n", + "Cond:#.###O## - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 25.00, pred: 1949.038, error:251.72828242816473]acc: 1.0\n", + "Cond:..OO##.F - Act:5 - effect:....OOO. - Num:1 [fit: 0.056, exp: 0.00, pred: 1737.718, error:196.41813799474153]acc: None\n", + "Cond:###..### - Act:7 - effect:....OOO. - Num:1 [fit: 0.019, exp: 19.00, pred: 1950.316, error:251.3069923152742]acc: 1.0\n", + "Cond:##.#..#O - Act:5 - effect:....OOO. - Num:1 [fit: 0.030, exp: 12.00, pred: 2376.955, error:4884.229503844921]acc: 0.0\n", + "Cond:#.###.## - Act:4 - effect:....OOO. - Num:1 [fit: 0.003, exp: 0.00, pred: 2185.354, error:328.51776825812954]acc: None\n", + "Cond:###.FO#. - Act:7 - effect:....OOO. - Num:1 [fit: 0.017, exp: 0.00, pred: 1776.875, error:46.52334666165622]acc: None\n", + "Cond:##.##.#O - Act:5 - effect:....OOO. - Num:1 [fit: 0.018, exp: 10.00, pred: 2372.088, error:5826.305622097383]acc: 0.0\n", + "Cond:.#...O#. - Act:2 - effect:.....OOF - Num:1 [fit: 0.353, exp: 5.00, pred: 2330.482, error:175.80431341343348]acc: 1.0\n", + "Cond:.....O## - Act:2 - effect:.....OOF - Num:1 [fit: 0.353, exp: 5.00, pred: 2330.482, error:175.80431341343348]acc: 1.0\n", + "Cond:#..#OO## - Act:2 - effect:.....F.. - Num:1 [fit: 0.146, exp: 7.00, pred: 2298.921, error:323.82068480048116]acc: 1.0\n", + "Cond:##..F### - Act:2 - effect:....OOO. - Num:1 [fit: 0.049, exp: 11.00, pred: 2132.731, error:227.52245755228046]acc: 1.0\n", + "Cond:.#..F##. - Act:2 - effect:....OOO. - Num:1 [fit: 0.049, exp: 11.00, pred: 2132.731, error:227.52245755228046]acc: 1.0\n", + "Cond:#.O###.# - Act:5 - effect:....OOO. - Num:1 [fit: 0.108, exp: 8.00, pred: 2254.676, error:272.27095288800245]acc: 1.0\n", + "Cond:##..#O#F - Act:2 - effect:....OOO. - Num:1 [fit: 0.058, exp: 0.00, pred: 1645.599, error:203.79339528985747]acc: None\n", + "Cond:..##OO#. - Act:2 - effect:.....F.. - Num:2 [fit: 0.356, exp: 4.00, pred: 2431.642, error:253.66148935526644]acc: 1.0\n", + "Cond:...#.#.. - Act:5 - effect:....OOO. - Num:1 [fit: 0.017, exp: 13.00, pred: 1924.192, error:972.1508243427513]acc: 0.8461538461538461\n", + "Cond:##.#.O#. - Act:2 - effect:.....OOF - Num:1 [fit: 0.071, exp: 1.00, pred: 2482.770, error:0.0]acc: 1.0\n", + "Cond:####O..# - Act:6 - effect:.....OOF - Num:1 [fit: 0.303, exp: 0.00, pred: 2156.341, error:105.24291282610426]acc: None\n", + "Cond:#..OO##. - Act:5 - effect:.....OOF - Num:1 [fit: 0.357, exp: 2.00, pred: 2891.235, error:133.33258544162527]acc: 1.0\n", + "Cond:#..##F#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.273, exp: 5.00, pred: 1836.540, error:169.24220473863255]acc: 1.0\n", + "Cond:..OO#O## - Act:5 - effect:....OOO. - Num:1 [fit: 0.021, exp: 0.00, pred: 2178.741, error:78.1487752894162]acc: None\n" ] } ], "source": [ "for cl in explore_population:\n", - " print(str(cl))" + " print(str(cl))" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Most Numerous rules:\n", + "Cond:#.###.#O - Act:0 - effect:.....OOF - Num:5 [fit: 0.040, exp: 13.00, pred: 909.376, error:3837.661342836094]acc: 0.3076923076923077\n", + "Cond:##.#OO#. - Act:1 - effect:....OOO. - Num:4 [fit: 0.022, exp: 16.00, pred: 1125.296, error:4045.18246462395]acc: 0.0\n", + "Cond:###.F##. - Act:2 - effect:....OOO. - Num:6 [fit: 0.344, exp: 150.00, pred: 2122.975, error:224.5084546745183]acc: 0.9066666666666666\n", + "Cond:##.#OO#. - Act:3 - effect:....OOO. - Num:9 [fit: 0.188, exp: 192.00, pred: 1105.491, error:158.3848377652093]acc: 1.0\n", + "Cond:#O.#.### - Act:4 - effect:OO...... - Num:4 [fit: 0.001, exp: 19.00, pred: 825.848, error:5063.364127774808]acc: 0.15789473684210525\n", + "Cond:#.OO#### - Act:5 - effect:....OOO. - Num:10 [fit: 0.514, exp: 158.00, pred: 2237.917, error:297.4169431603479]acc: 0.9873417721518988\n", + "Cond:#....O#. - Act:6 - effect:....OOO. - Num:11 [fit: 0.101, exp: 443.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:#...F#.# - Act:7 - effect:...OO... - Num:9 [fit: 0.103, exp: 23.00, pred: 1034.493, error:4867.738624074384]acc: 0.4782608695652174\n" + ] + } + ], + "source": [ + "print(\"Most Numerous rules:\")\n", + "for action in range(agent.cfg.number_of_actions):\n", + " action_set = agent.population.generate_action_set(action)\n", + " most_numerous = action_set[0]\n", + " for cl in action_set:\n", + " if cl.numerosity > most_numerous.numerosity:\n", + " most_numerous = cl\n", + " print(most_numerous)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The most numerous rules:\n", + "Cond:#....O#. - Act:6 - effect:....OOO. - Num:11 [fit: 0.101, exp: 443.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n", + "Cond:#.OO#### - Act:5 - effect:....OOO. - Num:10 [fit: 0.514, exp: 158.00, pred: 2237.917, error:297.4169431603479]acc: 0.9873417721518988\n", + "Cond:##.#OO#. - Act:3 - effect:....OOO. - Num:9 [fit: 0.188, exp: 192.00, pred: 1105.491, error:158.3848377652093]acc: 1.0\n", + "Cond:#...F#.# - Act:7 - effect:...OO... - Num:9 [fit: 0.103, exp: 23.00, pred: 1034.493, error:4867.738624074384]acc: 0.4782608695652174\n", + "Cond:#....OO. - Act:6 - effect:....OOO. - Num:8 [fit: 0.127, exp: 0.00, pred: 1224.646, error:60.5299079420778]acc: None\n", + "Cond:#....O## - Act:6 - effect:....OOO. - Num:8 [fit: 0.072, exp: 206.00, pred: 1309.630, error:301.01333544763446]acc: 0.7815533980582524\n", + "Cond:#.##.OOF - Act:7 - effect:....OOO. - Num:6 [fit: 0.116, exp: 488.00, pred: 1948.419, error:251.07661682020802]acc: 1.0\n", + "Cond:###.F##. - Act:2 - effect:....OOO. - Num:6 [fit: 0.344, exp: 150.00, pred: 2122.975, error:224.5084546745183]acc: 0.9066666666666666\n", + "Cond:#..#.O#. - Act:6 - effect:....OOO. - Num:5 [fit: 0.047, exp: 484.00, pred: 1309.630, error:301.0095151762131]acc: 0.9090909090909091\n", + "Cond:.....O#. - Act:6 - effect:....OOO. - Num:5 [fit: 0.045, exp: 464.00, pred: 1309.630, error:301.0095151762131]acc: 1.0\n" + ] + } + ], + "source": [ + "print(\"The most numerous rules:\")\n", + "numerous = sorted(agent.population, key=lambda cl: -1*cl.numerosity)[0:10]\n", + "for cl in numerous:\n", + " print(cl)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The fittest rules:\n", + "Cond:.#...OO. - Act:6 - effect:....OOO. - Num:2 [fit: 2.487, exp: 0.00, pred: 1061.278, error:93.57621525097161]acc: None\n", + "Cond:..#.F..# - Act:3 - effect:...FOO.. - Num:1 [fit: 2.195, exp: 0.00, pred: 2106.470, error:175.87720446349576]acc: None\n", + "Cond:#.#.OO#. - Act:3 - effect:....OOO. - Num:2 [fit: 1.712, exp: 0.00, pred: 1069.779, error:59.62231876636257]acc: None\n", + "Cond:##...O#. - Act:2 - effect:.....OOF - Num:5 [fit: 1.230, exp: 52.00, pred: 2208.265, error:255.38892135914688]acc: 0.5961538461538461\n", + "Cond:##.#OOO. - Act:5 - effect:....OOO. - Num:1 [fit: 1.096, exp: 0.00, pred: 1059.072, error:103.34728876970632]acc: None\n", + "Cond:#...#O.# - Act:1 - effect:....FO.. - Num:3 [fit: 1.096, exp: 10.00, pred: 984.570, error:2782.167280691241]acc: 0.9\n", + "Cond:.#...O.# - Act:5 - effect:....OOO. - Num:1 [fit: 1.040, exp: 0.00, pred: 1053.225, error:158.74627568588951]acc: None\n", + "Cond:..##.FO. - Act:5 - effect:....OOO. - Num:2 [fit: 0.983, exp: 0.00, pred: 1033.312, error:13.311852830669409]acc: None\n", + "Cond:..#O#### - Act:2 - effect:..OO.... - Num:2 [fit: 0.955, exp: 48.00, pred: 894.425, error:2034.5255152647255]acc: 0.6458333333333334\n", + "Cond:#.OO#O#. - Act:5 - effect:....OOO. - Num:1 [fit: 0.790, exp: 0.00, pred: 1310.895, error:102.57409173424277]acc: None\n" + ] + } + ], + "source": [ + "print(\"The fittest rules:\")\n", + "fittest = sorted(agent.population, key=lambda cl: -1 * cl.fitness)[0:10]\n", + "for cl in fittest:\n", + " print(cl)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 7, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -292,27 +1575,27 @@ "ax = df.plot()\n", "ax.set_xlabel(\"trial\")\n", "ax.set_ylabel(\"average_specificity\")\n", - "ax.legend([\"specificity\"])\n" + "ax.legend([\"specificity\"])" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 8, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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W3C8aW+8vraaw4vHBMef3nTqNN76rIb/eGkdx5XmsrG6ifvf2sLFRxdzybGTIt5LUYaSqqoqsrKyKCkp0RjaCMUYQ11dHVVVVZSWlsZ0jbqq4sRljxzj2NXQzuqqRhbOOdBvymG38ZuvHYHb4+XWpz7ljmdWcVhhFv91oabPKslNR0cHeXl5+j4dwYgIeXl5cVmVqjjiJFpw/J9+N1X3CvCpBZn86JyZfLJtP11ewwNfPybsSFdFSTZUaYx84v0bq6sqTqKl476+tpoZ47Moyc/ocezr86ewr6WTeaW5lIY5riiKMhxQiyNOnBFcVTVNHazYWc85c4vCHhcR7jjrUE44JD+RIirKiOL+++9n5syZXH755f2+11//+ld2794d3L7uuuvYsGFDv+872lCLI05cjt7TcRev34MxPd1UiqL0nT/+8Y+8/vrrPQK3Ho8HhyO+j7C//vWvzJkzhwkTrOzGhx9+eMDkHCy8Xi92+9C6uVVxxEmk4Phra/cwrSCD6YVZgyyVoiSen72yng27mwb0nrMmZPOTL83u9fiNN97I1q1bOf/887n22mtpbGxk9+7dbN++nfz8fO6++26uuOIKWltbAfj973/PCSecAMC9997L448/js1mY+HChZSVlVFeXs7ll19OWloaH330EQsXLuRXv/oVZWVlPPXUU9x9990YYzj33HP5n//5HwAyMzO5/fbbefXVV0lLS+Pll1+msPDg9kCffPIJ3/rWt2hvbyctLY1HH32Uww47DK/Xy5133snixYsREa6//npuvfVWli9fzu23305rayspKSksXbqUF154gfLycn7/+98DcN555/Hd736XU089lczMTL797W+zePFifv3rX/PWW2/xyiuv0N7ezgknnMCf/vQnRISKigpuvPFGamtrsdvtPPfcc/z0pz/lK1/5ChdccAEAl19+OZdccgnnn39+n/9u6qqKk5ReLI66FjfLttX16qZSFCV+HnzwQSZMmMDbb7/NHXfcAcCKFSt4+eWXefLJJxk3bhxvvvkmK1eu5JlnnuG2224D4PXXX+ell15i2bJlrF69mu9///t85StfoaysjCeeeIJVq1aRlpYWfJ3du3dz55138tZbb7Fq1SqWL1/OSy+9BEBrayvz589n9erVnHzyyfz5z3/uIeeMGTN47733+PTTT/n5z3/OD3/4QwAeeughtm3bxqeffsqaNWu4/PLL6ezs5JJLLuF3v/sdq1evZsmSJQfJEo7W1lbmzJnDsmXLOOmkk7jllltYvnw569ato729nVdffRWwlMLNN9/M6tWr+fDDDykqKuK6667j0UcfBaCxsZEPP/yQc845p19/F7U44qS3GMcbG/biM1bRn6KMRCJZBoPJ+eefH/yg7erq4pZbbmHVqlXY7XY2b94MwJIlS7jmmmtIT7dqqXJzIw83W758OaeeeioFBVaj0Msvv5z33nuPCy+8EJfLxXnnnQfAMcccw5tvvtnj+sbGRq666iq2bNmCiNDV1RWU48Ybbwy61HJzc1m7di1FRUUce+yxAGRnZ0dds91u5+KLLw5uv/3229x77720tbWxf/9+Zs+ezamnnsquXbu46KKLAKuoD+CUU07h5ptvpqamhhdffJGLL744bhdfdxJqcYjIAhHZJCIVInJXmOMiIvf7j68RkaOjXSsiuSLypohs8f/MSeQauuNy2PAZq2VIKK+v28OUvHRmFUV/EyiK0ncyMg5kJN53330UFhayevVqysvL6ezsBKyitnhSTI0xvR5zOp3Be9ntdjyengXA/+///T9OO+001q1bxyuvvBKsiQgnR2+yORwOfL4DX0pD6ypSU1ODcY2Ojg5uuukmnn/+edauXcv1119PR0dHxDVcccUVPPHEEzz66KNcc801vZ4XKwlTHCJiB/4ALARmAZeJSPdOfguB6f7HDcADMVx7F7DUGDMdWOrfHjRcDutX1tHlZW9TByt31vPyql18WLGPBXPGa867ogwijY2NFBUVYbPZePzxx/F6vQCcffbZPPLII7S1tQGwf/9+ALKysmhubu5xn3nz5vHuu++yb98+vF4vTz31FKecckpcckycOBGwAvABzj77bB588MGgstm/fz8zZsxg9+7dLF++HIDm5mY8Hg8lJSWsWrUKn89HZWUln3zySdjXCiiU/Px8WlpaeP755wHLcikuLg662Nxud3D9V199Nb/97W8BmD27/5ZjIl1VxwEVxpitACLyNHABEJr7dgHwN2Opyo9FZKyIFAElEa69ADjVf/1jwDvAnQlcx0E4/UOZjvjZG3hCrA6HTbjgiImDJYaiKMBNN93ExRdfzHPPPcdpp50WtEYWLFjAqlWrKCsrw+Vycc4553D33Xdz9dVXc+ONNwaD4wGKior4xS9+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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABAdUlEQVR4nO3deXxU9dX48c/JZCUrgZBMEiRhkSTsW0BwARdcquJWl/qoxSrlqdjVqrWttfbXam3VVm1LtUWsj4LWXQuKO1WUsIiyQyAsSVgCgSyE7N/fHzMThzBJJsncmcnkvF+veTEz9965J5MwZ+53O2KMQSmllGotLNABKKWUCk6aIJRSSnmkCUIppZRHmiCUUkp5pAlCKaWUR+GBDsCX+vfvb7KysgIdhlJK9Rhr1qw5ZIxJ8bQtpBJEVlYWq1evDnQYSinVY4jI7ra2aROTUkopjzRBKKWU8kgThFJKKY9Cqg9CKdU1DQ0NFBcXU1tbG+hQlEWio6PJzMwkIiLC62M0QSilKC4uJj4+nqysLEQk0OEoHzPGcPjwYYqLi8nOzvb6OMuamERkgYgcFJENbWwXEXlMRApF5CsRGe+27QIR2ercdrdVMSqlHGpra+nXr58mhxAlIvTr16/TV4hW9kEsBC5oZ/uFwDDnbQ7wNwARsQF/cW7PA64TkTwL41RKgSaHENeV369lCcIYsxwob2eXWcC/jMPnQJKI2IF8oNAYs9MYUw8sdu5riYamZv76USHLt5VZdQqllOqRAjmKKQPY6/a42PlcW897JCJzRGS1iKwuK+v8h3x4mPDk8p0s3bCv08cqpXznscceIzc3l+uvv77br7Vw4UJKS0tbHt9yyy1s2rSp26/b2wSyk9rT9Y5p53mPjDFPAk8CTJw4sdPVj0SE3LQENu+r6uyhSikf+utf/8rSpUtP6kRtbGwkPLxzH1ULFy5k5MiRpKenA/CPf/zDZ3H6S1NTEzabLaAxBPIKohgY6PY4Eyht53nL5NoT2Lq/iqZmra6nVCDMnTuXnTt3cumll/Loo49y3333MWfOHGbOnMmNN97Irl27OOOMMxg/fjzjx49nxYoVLcc+9NBDjBo1ijFjxnD33Xfz0ksvsXr1aq6//nrGjh3L8ePHmT59essyPIsWLWLUqFGMHDmSu+66q+V14uLi+PnPf86YMWOYMmUKBw4cOCnOgoICpk6dyrhx45g6dSpbt24FHB/md9xxB6NGjWL06NE8/vjjAKxatYqpU6cyZswY8vPzqaqqYuHChcybN6/lNS+++GI++uijlhjuvfdeJk+ezGeffcb999/PpEmTGDlyJHPmzMFVAbSwsJBzzz2XMWPGMH78eHbs2MENN9zA66+/3vK6119/PW+88Ua3fi+BvIJ4A5gnIouByUCFMWafiJQBw0QkGygBrgW+ZWUgOfZ4jjc0sfvwMQanxFl5KqWC3q/f3Mim0kqfvmZeegK/umREm9vnz5/P22+/zYcffkj//v257777WLNmDZ988gkxMTHU1NTw7rvvEh0dzfbt27nuuutYvXo1S5cu5bXXXmPlypX06dOH8vJykpOTeeKJJ/jjH//IxIkTTzhPaWkpd911F2vWrKFv377MnDmT1157jcsuu4xjx44xZcoUfvvb33LnnXfy1FNP8Ytf/OKE43Nycli+fDnh4eG899573HPPPbz88ss8+eSTFBUV8cUXXxAeHk55eTn19fVcc801vPDCC0yaNInKykpiYmLafZ+OHTvGyJEjuf/++x3vW14e9957LwA33HADb731FpdccgnXX389d999N5dffjm1tbU0Nzdzyy238OijjzJr1iwqKipYsWIFzzzzTFd+XS0sSxAisgiYDvQXkWLgV0AEgDFmPrAEuAgoBGqA2c5tjSIyD3gHsAELjDEbrYoTIM+eAMCW/VWaIJQKEpdeemnLB2pDQwPz5s1j3bp12Gw2tm3bBsB7773H7Nmz6dOnDwDJycntvuaqVauYPn06KSmOxUuvv/56li9fzmWXXUZkZCQXX3wxABMmTODdd9896fiKigpuuukmtm/fjojQ0NDQEsfcuXNbmsKSk5NZv349drudSZMmAZCQkNDhz2yz2bjyyitbHn/44Yc89NBD1NTUUF5ezogRI5g+fTolJSVcfvnlgGMCHMBZZ53FbbfdxsGDB3nllVe48sorO90015plCcIYc10H2w1wWxvbluBIIH4xdEActjBh875KLhpl99dplQpK7X3T96fY2NiW+48++iipqal8+eWXNDc3t3woGmM6NXzT1UTjSURERMtr2Ww2GhsbT9rnl7/8JTNmzODVV19l165dTJ8+vc042ootPDyc5ubmlsfucxOio6Nb+h1qa2v53ve+x+rVqxk4cCD33XcftbW17f4M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\n", "text/plain": [ "
" ] @@ -328,17 +1611,17 @@ "ax = df.plot()\n", "ax.set_xlabel(\"trial\")\n", "ax.set_ylabel(\"fraction accuracy\")\n", - "ax.legend([\"fraction accuracy\"])\n" + "ax.legend([\"fraction accuracy\"])" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -350,34 +1633,33 @@ } ], "source": [ - "\n", "df = pd.DataFrame(zip([metric[\"population\"] for metric in explore_metrics], [metric[\"numerosity\"] for metric in explore_metrics]))\n", "ax = df.plot()\n", "ax.set_xlabel(\"trial\")\n", "ax.set_ylabel(\"population\")\n", "ax.legend([\"pop\", \"num\"])\n", "\n", - "steps_averaged = []\n" + "steps_averaged = []" ] }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 10, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEGCAYAAABiq/5QAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABE6klEQVR4nO29eXxcZ3X//z6jfR1Zi20t3iTbSWxZdhInXgI0ISRkg0BZU5KGpQ3lWyihhZKWQsPSlj3QNr/Q0BAChBQo0IQkZCUhBCuLk3iR7djWyKska7WWkax1zu+PuVeWZS0jae69szzv12teM3PXM1ejM+ee5zyfI6qKwWAwGJIHn9cGGAwGg8FdjOM3GAyGJMM4foPBYEgyjOM3GAyGJMM4foPBYEgyUr02IBKKi4t1+fLlXpthMBgMccUrr7zSrqolE5fHheNfvnw527dv99oMg8FgiCtE5Mhkyx1P9YhIioi8JiIPW+8LReRJETloPS9w2gaDwWAwnMaNHP8ngX3j3t8GPK2qq4CnrfcGg8FgcAlHHb+IVADXAv89bvH1wH3W6/uAdzhpg8FgMBjOxOkc/3eAvwfyxi1bpKrNAKraLCILJ9tRRG4BbgFYunTpWeuHh4c5fvw4AwMD0bY5psnMzKSiooK0tDSvTTEYDHGKY45fRK4DWlX1FRG5dLb7q+rdwN0AGzduPEtQ6Pjx4+Tl5bF8+XJEZL7mxgWqSkdHB8ePH2fFihVem2MwGOIUJ1M9lwBvF5HDwP8AbxaRnwAtIlIKYD23zuXgAwMDFBUVJY3TBxARioqKku4ux2AwRBfHHL+q/oOqVqjqcuD9wO9U9UbgIeBma7ObgQfneo5kcvo2yfiZDQZDdPFi5u5XgStE5CBwhfXeYDAYokr/0Ag/eeEII6Mhr02JOVxx/Kr6rKpeZ73uUNXLVXWV9dzphg1u8Z3vfIf+/n6vzTAYkp6vP7aff/q/Op472Oa1KTGH0eqJMsbxGwzeU9fYzY9qDwOw81i3t8bEIMbxz4O+vj6uvfZa1q9fT3V1NV/84hdpamrisssu47LLLgPgiSeeYMuWLVxwwQW85z3vIRgMAmEZis9+9rNcfPHFXHzxxdTX1wPwi1/8gurqatavX8+b3vQmzz6bwRCvjIaUz/16N4U5GSwpzGJ3o3H8E4kLrZ6Z+OJv9rC3qSeqx1xTls8/v23ttNs89thjlJWV8cgjjwDQ3d3NvffeyzPPPENxcTHt7e185Stf4amnniInJ4evfe1rfPvb3+YLX/gCAPn5+bz00kv86Ec/4tZbb+Xhhx/mS1/6Eo8//jjl5eV0dXVF9TMZDMnAT188ws7j3Xz3/Rt47kA7vz/QiqqawohxmIh/Hqxbt46nnnqKz372s/zhD3/A7/efsf6FF15g7969XHLJJWzYsIH77ruPI0dOaybdcMMNY8+1tbUAXHLJJXzwgx/k+9//PqOjo+59GIMhAWjtHeDrj+3nkpVFvH19GTUVftqDQzR3mxLo8SRExD9TZO4Uq1ev5pVXXuHRRx/lH/7hH7jyyivPWK+qXHHFFTzwwAOT7j8+ArFff+973+PFF1/kkUceYcOGDezYsYOioiLnPoTBkED8yyP7GBwJ8eXrqxERairCwdiu412UFWR5bF3sYCL+edDU1ER2djY33ngjn/70p3n11VfJy8ujt7cXgM2bN/PHP/5xLH/f39/PgQMHxvb/2c9+Nva8ZcsWAAKBAJs2beJLX/oSxcXFHDt2zOVPZTDEJ88fbOfBHU187NIqKktyATivNJ9Un7DruMnzjychIn6v2L17N5/5zGfw+XykpaVx1113UVtby9VXX01paSnPPPMMP/zhD7nhhhsYHBwE4Ctf+QqrV68GYHBwkE2bNhEKhcbuCj7zmc9w8OBBVJXLL7+c9evXe/b5DIZ4YWB4lM8/WMfyomw+dmnV2PLMtBTOWZxnHP8ERPUsGZyYY+PGjTqxEcu+ffs477zzPLJo/tjNZYqLi2e9b7x/doMh2nz3qYPc8dQBfvThi3nT6jMbTv3Dr3bzyK4mdv7zlUk3wCsir6jqxonLTarHYDDENYfa+7jz2Xretr7sLKcPUFPhp2dghCMdZn6NjXH8HnH48OE5RfsGg+E0qsoXHqwjI8XH56+d/C7YHuDdebzLRctim7h2/PGQpoo2yfiZDYapeHhXM3842M6n33oOC/MzJ91m9aI8MlJ97DZ5/jHi1vFnZmbS0dGRVI7Q1uPPzJz8C24wJBM9A8N86eG9rCv3c+PmZVNul5biY01ZvhngHUfcVvVUVFRw/Phx2tqSS4DJ7sBlMCQ733p8P+3BQe65eSMpvukHbWvK/fzileOMhnTGbZOBuHX8aWlppguVwZCk7DrexY9fOMKfb15GTUXBjNvXVBRwX+0RAm1BVi/Km3H7RCduUz0GgyE5CYuw1VGUm8HfvfWciPZZv8SewWvSPWAcv8FgiDN+8sIRdjd28/nr1pCfmRbRPiuKc8lJT2GXqewBjOM3GAxxRGvPAN98fD9vXFXM22pKI94vxSdUl/tNxG/hmOMXkUwReUlEdorIHhH5orX8dhFpFJEd1uMap2wwGAyJxZcf2cfgaIgvWSJss6Gmws/e5h6GRkwrRicHdweBN6tqUETSgOdF5LfWujtU9ZsOnttgMCQYzx1o4zc7m/jUW1azojhn1vvXVBQwNHKIAy29VJf7Z94hgXEs4tcwQettmvVInqJ7g8EQNQaGR/nCg3WsKM7hry6tnNMxTks0m3SPozl+EUkRkR1AK/Ckqr5orfq4iOwSkR+IyIIp9r1FRLaLyPZkq9U3GAxnctezAQ539PPl66vJSE2Z0zGWFmbjz0ozA7w47PhVdVRVNwAVwMUiUg3cBVQBG4Bm4FtT7Hu3qm5U1Y0lJWcLLxkMhuSgoS3IXc8GuH5DGW9YNXd9K7sxi4n4XarqUdUu4FngKlVtsX4QQsD3gYvdsMFgMMQfqsrnH6wjI83H56YQYZsNNRV+9rf0MjCc3G1NnazqKRGRAut1FvAW4HURGV+D9U6gzikbDAZDfPPQzib+WN/B37/1HBbmzV+jqqaigNGQsre5JwrWxS9OVvWUAveJSArhH5ifq+rDIvJjEdlAeKD3MPBRB20wGAxxSs/AMF9+eB/rK/z82aapRdhmw9gA77EuLlg66fBiUuCY41fVXcD5kyy/yalzGgyGxOGx3SdoDw5y959fGDVhtcX5mZTkZbCrMbnz/GbmrsFgiEm2Bdopzs3g/CUFUTumiFBjZvAax28wGGIPVWVboIMtVUVR75NbU1FAoC1IcHAkqseNJ4zjNxgMMUdDex+tvYNsrSqK+rFrKvyoQl0Sp3uM4zcYDDHHtkAHgCOOf501wJvMrRiN4zcYDDFHbaCdMn8mSwuzo37s4twMyguykrr5unH8BoMhpgiFlBcaOtlSVRz1/L5Nss/gNY7fYDDEFPtbeunsG3IkzWOzrsLP0c5+uvqHHDtHLGMcv8FgiCns/P4WBx3/eqtPb7JG/cbxGwyGmKI20MHyomzKCrIcO4etx787SSt7jOM3GAwxw8hoiBcbOthSNXcVzkjwZ6WxojiHnce6HD1PrGIcv8FgiBn2NPXQOzjiaH7fpqbCbyJ+g8Fg8Bo7v7+50nnHv67cT3P3AK29A46fK9Ywjt9gMMQMtQ0drF6US0lehuPnWm9pACXjRC7j+A0GQ0wwNBLi5UOdbHU4v2+ztiwfn8BO4/gNBoPBG3Ye7+LU8KgraR6A7PRUVi3MY3cSzuA1jt9gMMQEtYEORGBzZaFr51xnzeBVVdfOGQsYx28wGGKCbYF21pblU5Cd7to511f46egborHrlGvnjAWc7LmbKSIvichOEdkjIl+0lheKyJMictB6Tt7+ZwaDAYCB4VFePdLFFpfSPDY11gzeZBvgdTLiHwTerKrrgQ3AVSKyGbgNeFpVVwFPW+8NBkMS8+qRkwyNhlwb2LU5tzSPtBRJugFexxy/hglab9OshwLXA/dZy+8D3uGUDQaDIT7YFuggxSdctMK9/D5ARmoK5y7OZ3djl6vn9RpHc/wikiIiO4BW4ElVfRFYpKrNANbzwin2vUVEtovI9ra2NifNNBgMHrMt0E5NhZ/cjFTXz20P8IZCyTPA66jjV9VRVd0AVAAXi0j1LPa9W1U3qurGkpISx2w0GAzeEhwcYdfxbldkGiZjfYWf3oERjnT2e3J+L3ClqkdVu4BngauAFhEpBbCeW92wwWAwxCYvH+5kJKSu5/dt1pUXALArier5nazqKRGRAut1FvAW4HXgIeBma7ObgQedssFgMMQ+tYEO0lN8XLjMmwK/1YtyyUj1JZU2v5MJtVLgPhFJIfwD83NVfVhEaoGfi8hHgKPAexy0wWAwxDjbAu2cv7SAzLQUT86fmuJjbVl+UkX8jjl+Vd0FnD/J8g7gcqfOazAY4ofu/mH2NPVw6+WrPbWjpqKAn718jNGQkuJzps9vLGFm7hoMBs944VAHqrB1pTcDuzbrl/g5NTxKfWtw5o0TAOP4DQaDZ9QGOshKSxnrgesV9gDvziRJ9xjHbzAYPKM20MHG5QtIT/XWFVUW55CbkZo00g3G8RsMBk9o6x1kf0uvZ2Wc4/H5hOry5BngNY7fYDB4wgsN4TaLWzyauDWR9RUF7GvuZWgk5LUpjjNjVY+IZADvApaP315Vv+ScWQaDIdGpbeggLyOV6rJ8r00BwtINQ6Mh9p/oZV2F32tzHCWSiP9BwsJqI0DfuIfBYDDMmdpAB5sqC0lNiY3Egz3AvCsJBNsiqeOvUNWrHLfEYDAkDU1dpzjU3scHNi312pQxKhZksSA7jV3HuvnAJq+tcZZIfmq3icg6xy1xgOHRECe6B7w2w2AwTKA2EM7vx8LAro2IsK6igF2NiV/ZE4njfwPwiojsF5FdIrJbRHY5bVg0+Nyvd/O2/3zeazMMBsMEahs6WJCdxrmL87w25Qxqyv0caOnl1NCo16Y4SiSpnqsdt8IhlhZm09Y7yKmhUbLSvdEBMRgMZ6Kq1AY62FxZhC/G5BFqKvyMhpS9zT2eica5wYwRv6oeAQqAt1mPAmtZzLOkMBuAYyeTR2fbYIh1jnb209h1yjP9/elYv6QASHyJ5hkdv4h8ErifcKeshcBPROQTThsWDZYV5QBwpMM4foMhVrDz+1tiKL9vsyg/k4V5GQkv0RxJqucjwCZV7QMQka8BtcB/OGlYNFhqRfxHk6izjsEQ62wLdFCSl0FVSY7XpkxKTUWBifgBAcaPdIxay2KeBdlp5Gakcsw4foMhJlBVtgU62FpVhEhsupGaCj8N7X30Dgx7bYpjRBLx3wu8KCK/tt6/A7jHMYuiiIiwpDDbRPwGQ4wQaAvSHhyMyfy+TU2FH1Woa+yJGTmJaBPJ4O63gQ8BncBJ4EOq+h2H7YoaywqzOdJhJhobDLHANju/Xxl7+X2bGnsGbwKne6Z0/CKSbz0XAoeBnwA/Bo5Yy6ZFRJaIyDMisk9E9liDxIjI7SLSKCI7rMc1UfkkU7C0KJtjJ08RCqmTpzEYDBGwrb6D8oIslhRmeW3KlBTmpFOxICuhJ3JNl+r5KXAd8Aow3muK9b5yhmOPAH+nqq+KSB7hSWBPWuvuUNVvztHmWbGkMJuhkRCtvYMs9me6cUqDwTAJoZDywqEOrjhvUczm921qKvwJHfFP6fhV9TrrecVcDqyqzUCz9bpXRPYB5XM51nxYZlX2HOnoM47fYPCQfSd66Oof9rzNYiTUVBTw6O4TnOwbYkFOutfmRJ1I6vifjmTZDMdYTrjx+ovWoo9b8g8/EJFJp8eJyC0isl1Etre1tc3mdGdgSjoNhtigNg7y+zY1lixzoqZ7psvxZ1q5/GIRWSAihdZjOVAW6QlEJBf4JXCrqvYAdwFVwAbCdwTfmmw/Vb1bVTeq6saSkpKIP9BEygqy8AmmpNNg8JhtgQ4qi3Pi4s67utxy/Me6vDXEIabL8X8UuJWwk3913PIe4M5IDi4iaYSd/v2q+isAVW0Zt/77wMOzM3l2pKf6KPVnmYjfYPCQkdEQLx3q5PoNEceMnpKfmUZlSU7CRvzT5fi/C3xXRD6hqrOepSvh0Zt7gH1WSai9vNTK/wO8E6ib7bFny7KibI4Yx28weMbuxm6CgyNxVRdfU+6n1moPmWhEMoGrW0T+fOJCVf3RDPtdAtwE7BaRHdayfwRuEJENhCuDDhO+s3CUpYXZPLWvZeYNDQaDI9j1+5sr48jxVxTwfzuaaOkZYFF+7KenZkMkjv+ica8zgcsJp36mdfyq+jyTSzs8GrF1UWJJYTbtwSH6BkfIyYjkIxsMhmjyQkMH5y7Oozg3w2tTImZsgPd4N1esSSzHH8nM3U+Me/wl4eqcuKpvMpU9BoN3DI6M8vLhzriK9gHWlvnxCexOwHr+uXQ57gdWRdsQJ1lWZBy/weAVO452MTAciml9nsnISk9h9aI8diagRPOMeQ8R+Q2nZ+76gDXAz500KtrYEb8p6TQY3GdboAOfwKY4i/ghnO55al8rqhrzs41nQyQJ7/HSCiPAEVU97pA9juDPSiMvM9VE/AaDB9Q2dLC2zI8/K81rU2ZNTUUBP99+nOMnT4119EsEZnT8qvp7NwxxEhEJl3SaTlwGg6ucGhrltaMn+fAlc1J+8ZzxA7yJ5Pinm7nbKyI9kzx6RaTHTSOjwdLCbJPqMRhcZvuRToZHNa7q98dzzuI80lN87Grs8tqUqDLdBK48Nw1xmiWF2Ty1t5XRkJLiS5xcncEQy9QGOkj1CRctn1HJPSbJSE3h3NI8dh1LrAHeiKp6RGS9iHzcetQ4bZQTLC3MZmg0REvPgNemGAxJw7ZAB+uXFMT1/JmaCj91jd0J1dMjEnXOTwL3Awutx/0i8gmnDYs2ywrDjZ1Nnt+QTKh656x6B4bZ3dgdd2WcE6kpL6B3cIRDCdTJL5KI/yPAJlX9gqp+AdgM/KWzZkUfU9JpcJtnXm+l5vbHOdk35Mn5t9W3U/3Pj9PcfcqT8798uJPRkLIlDss4x1OzJDzAuzuB6vkjcfwCjI57P8rkUgwxTWlBJik+MSWdBtd48VAnPQMj7PRo5ucf6tvpGxrlDwfaPTn/tvoO0lN9XLBs0pYbccPKklwy03ye/R2dIBLHfy/wotUr94vAC4RVN+OKtBQf5QVZRqXT4BoNbUEA9jR5UwRXZ0kKbwt45PgDHVy4dAGZaSmenD9apKb4qC7zJ1fEb0kqfwjotB4fUtXvOGyXIywtzDYRv8E1AmOO332HoarstX5wtgU6XM/1n+wbYm9zT9zn921qKgqoa+pmZDTktSlRIZLB3Spgj6r+O7ATeKOIFDhtmBMsMbX8BpcYGQ2NBRleRPwtPYN09A1x7uI8WnsHaWh3d2DyxUNWm8WEcfx+BoZDHGwNem1KVIgk1fNLYFREVgL/DawAfuqoVQ6xtDCbzr4hegeGvTYlIp7c28Jf//RVTyszDHPj2MlTDI8qK4pzONLRT4/L3zn7LuMv3lgJnNbDd4ttgQ6y01OoqShw9bxOYc/gTZR0TySOP6SqI8CfAt9V1U8Bpc6a5QzxptL5yK4mHtnVTKdHVSGGuROwIsO3rQ+3GtzrctRf19iDCFxVvZgyfya1Luf5twU6uGh5IempcxEAjj2WF+WQl5GaMAO8kfxVhkXkBuDPOd0fN/7Uloi/ks56K0fs9m26Yf40tIf/dm9fH46R3E737GnqZkVRDrkZqWypKuaFhk7XJiC19g5Q3xpMmDQPgM8nrKvwsztBevBG4vg/BGwB/kVVD4nICuAnM+0kIktE5BkR2Scie6yJYIhIoYg8KSIHrWfXar2WxFFDllBIqbeixkCC5BWTiUBrH0U56axcmEdJXobrA7x7mnpYU5YPhPPsnX1D7G/pdeXctVZaKVEGdm3WVfjZ19zD4MjozBvHOJFU9exV1b9R1Qes94dU9asRHHsE+DtVPY/wpK+/FpE1wG3A06q6Cnjaeu8K/qw0CrLT4mL2bmPXKQaGwxUEJuKPPxrag1SV5AKwtiyfPY3uRfwn+4Zo7DrF2rJwXtqOvN3K89cGOsjLTB07f6KwvqKA4VFl/wl3fkCdxLEEnKo2q+qr1uteYB9QDlwP3Gdtdh/wDqdsmIx4Kem0o/0Un4zVgxvih4a2PipLwjIh1WV+6tuCDAy7EynubQ7/yKy1Iv7ygiyWF2WPReJOU9vQwaYVRQknhriuPPxDlggduVwZeRGR5YR79b4ILFLVZgj/OBDW/5lsn1tEZLuIbG9ra4uaLfFS0mk7/ouWLyDQZiL+eKKrf4iOvqEzIv7RkHuRop1Wsh0/hKP+Fxs6HK9DP36ynyMd/QmX5gGoWJBFYU46u451eW3KvJnW8YtIioh8Yz4nEJFcwiWht6pqxPe7qnq3qm5U1Y0lJSXzMeEMlhZmc/zkKUZjXGnvYGsvxbnpbFxWyNHOfoZGEmPiSDJg/1DbEb+d8nBrgHdPUw+l/kyKcjPGlm2pKqZ3cMRxG8by+ysTz/GLCDUJMsA7reNX1VHgQpljs0kRSSPs9O9X1V9Zi1tEpNRaXwq0zuXYc2VZYTYjIaWpyxvhqkipbw3niCtLchgNKUc7TdQfL9gzdiutiH9JYRZ5manUuTTAW9fYfUa0D4wJpdU2OJvuqW3ooCgnndULE6qdxxg15X4OtPTSPzTitSnzIpJUz2vAgyJyk4j8qf2YaSfrx+IeYJ8l+2DzEHCz9fpm4MHZGj0f4qGkU1U52Bpk1aLcsXSBSffEDw1tfaSlCEsWZAHhSHFtWb4rEX//0AgN7X1nDayW5GWwamGuowO8qkptoIPNlUX4Eiy/b1NTUUBI3Z+XEW0icfyFQAfwZuBt1uO6CPa7BLgJeLOI7LAe1wBfBa4QkYPAFdZ714iHks623kF6B0ZYaUX8EHYmhvgg0BZkWVEOqSmn/73Wlvl5vbnH8Rz7vuZeVDkr4odweeXLhzodSxse7uinuXsgoer3J2LP4I33Ad5Imq1/aC4HVtXnmVq++fK5HDMalBVkkRrj8sz2wO6qRXnkZaZRkpcxlj4wxD4NbUFWLsw9Y9nasnwGR0I0tPexepFzaZC99sBu+dmllFuqirmv9gg7j3c50grRVgFNxIFdm4X5mSzOz2R3nM/gjUSkrUJEfi0irSLSIiK/FJEKN4xzghSfULEgtuWZbSEo23lUleSYks44YdgSZ7Pz+zbVliOuc3hgsK6xh4LsNMr8mWet21xZiAiOlXXWBjpYlJ/BiuIcR44fK6yr8LMrziP+SPX4HwLKCNfh/8ZaFrfEeklnfWuQvMxUFuaFqzIqS3IJtPUZsbY44FhnP8OjOjY2Y1NZnENGqs/xPP+e5m6qy/xMVo9RkJ3OmtJ8R/T57fz+1qriSc+dSKyv8NPQ3ue68F40icTxl6jqvao6Yj1+CESvvtIDYn0S18HWXlYuzB37B6oqyaX71LARa4sDGiaUctqkpvg4tzTfUemG4dEQB04EJ83v22ytKuLVI11Rn0x2oCVIR99QQuf3bdZZiqN1cRz1R+L420XkRqumP0VEbiQ82Bu3LCvKpqt/mO5TsfmLXd/ax6pxOeKxAV4j3RDz2GMxVcW5Z62zK3ucunM72BJkaDQ0ptEzGVurihkaDfHqkZNRPbet/hnv/XUjoSYBZvBG4vg/DLwXOAE0A++2lsUtsVzS2dU/RHtw8IzBwZV2SacRa4t5Gtr6KM5Nx599toBtdZmf3oERjnU6M4fEnidQPcnArs1FKwpJ8UnUyzq3BTpYUpg1VjWXyCzISWdpYTa7G7u8NmXOTOn4ReRr1stNqvp2VS1R1YWq+g5VPeKSfY4QyyWdYxU94ybAlBVkkZ7qMxF/HNDQHqRykmgfTpdYOpXu2dvUQ3Z6CiuKph5czc1IpabCH9U8/2hIeaGhg62VxVE7ZqyzrsLPzmOJGfFfY828/Qe3jHGLpTHs+CdW9EC4EmlFUY6J+OOAQFsfVQsnd7znLM4jxSeODfDuaermvNL8GSdPba0qYtfxboKD0Zl9uq+5h56BkYSUaZiK9RV+GrtO0REc9NqUOTGd438MaAdqRKRHRHrHP7tknyPkZaZRmJMek/LM9a1BMtN8lBdknbG8amGOifhjnJN9Q3T2DU0Z8WempbCyJNcR6YZQKNxcfbqBXZstlcWMhJSXD3dG5dzbkii/b7OuvACAXXGq2zOl41fVz6iqH3hEVfNVNW/8s4s2OkKslnQetDR6JkZtlcW5RqwtxrG7bk2s6BnP2nJnpBsOd/TRNzRKdQQa+BcuW0B6ii9q9fzbAh1UleSwMP/suQOJSnV5PiLx24M3kkYs17thiNvEaklnoDV4RkWPTdVCI9YW69h6ShNr+MeztsxPW+8grb0DUT23/WMyXUWPTVZ6CucvLYiK4x8eDfHyoU62ViVPfh/CWYPK4hx2xekM3sTohDwHlhVm09h1imGHtVNmQ9/gCI1dp86a7g+MpQ+MWFvsYouzVSzImnKb0wO80Y369zT1kJYiEctBbKkqoq6pm+7++ZU07zreTd/QaFLU709kfUUBO493x+XEyqR1/EsLsxkNKc1d0Y285oNdA75yEklbO31gNHtil0BbkOUTxNkmYkfke6KcG97T1M3qRXmkp0b2L721qhhVeOHQ/KJ+u35/cxLl923WVYTv3lp64m+Ad1aOX0QWiEiNU8a4SSyWdB5sObuixyYvM42FeRlGpTOGaWgLTpvfB8jPTGNZUXZUI35VZU+EA7s2G5YUkJk2/zz/tkAH55XmU5iTPq/jxCM11gzenXGY7olEpO1ZEckXkUJgJ3CviHx7pv1inaVFsef469uCpKUIy4omnwRTWZJjIv4YZXg0xJGO/mnz+zbR1uY/0TNAZ9/QrJqbp6f6uGh54bwc/8DwKK8cOZlU1TzjWVuWT4pP4nKAN5KI32+1TPxT4F5VvRB4i7NmOc/i/EzSU3wciaHB0oMt4VRB2hSpgqqSXBqMWFtMcqyzn5GQnqXKORlry/wc7eyPmmTInsYzm6tHypaqIva39NLWO7dUxWtHuxgcCSW0DPN0ZKalsHpRXmJG/ECq1SLxvcDDDtvjGrY8cyyVdAbawl23pqLSiLXFLFOJs02G7aCj1cWprqkbETivdHaO367EeWGO7RhrA+34BC6ujL62f7yw3urBG2/BWCSO/0vA40BAVV8WkUrgoLNmucOSGCrpHBge5UhH35guz2RUjQ3wxs5diiHMdOJsEzndfD06KYI9TT2sKM4hJ2PGvkpnUF2WT15G6pz78NY2dLCuooD8zLN1iZKFdRV+uvqHHdNfcopI6vh/oao1qvox632Dqr5rpv1E5AdW85a6cctuF5HGCa0YPWNZUTZHOvpj4tf6cEcfIYWV05Tj2flj05Ql9phOnG0iJXkZLMzLiFrEH56xG3l+3yY1xcfFK+aW5+8fGuG1o11Jm9+3WW8N8O6KM8G2SAZ3K0XkNyLSZjnyB0VkRQTH/iFw1STL71DVDdbj0dkaHE2WFmbTOzASE/LMYxU900T8tlibGeCNPQJtwYjy+zZry/KjIt1wsm+Ixq5TVM8yv2+zpaqIQ+19NHfPLmJ9+fBJRkKatPl9m9WL8khP8cVdR65IUj0/BX4OlBLuwvUL4H9m2klVnwOiIwbiELFU0lnfGsQn0+eIU3xCZXGOKemMQRra+8ZScZFQXe4n0NY374YodnXQXCJ+OJ3nn23UXxvoIC1F2Lh8wZzOmyikp/o4ryyfnce6vDZlVkTi+EVVfzyuA9dPgPnkRj4uIrusVNCU3xoRuUVEtovI9ra2tnmcbmpiSaWzvjXIksJsMtNSpt2ussSItcUaM4mzTcbasnxGQ8rrJ3rndW57nGC2FT025y7OY0F22qz1+WsD7WxYUkB2+uzGFRKRmnI/dY3dhELep4wjJRLH/4yI3CYiy0VkmYj8PfCIiBRatf2z4S6gCthAuKnLt6baUFXvVtWNqrqxpMSZTo+2448Flc76KTR6JlJVYsTaYg1bnG0qOebJiNYA756mHsr8mSyY4wQqn0/YXFlEbaAj4rGu7lPD7G7sZkuS6fNMRU2Fn76h0bHvQTwQieN/H/BR4BngWeBjhDtwvQJsn83JVLVFVUdVNQR8H7h4VtZGmZyMVIpz0z0v6RwZDdHQHqQqAsdfWWLE2mINu8pqNhF/xYIs8jNTqWuc3wBvXVM3a6fpuBUJW6uKaOw6FfGd70uHOgkpSZ/ft1m/pAAgrvL8kVT1rJjmUTmbk1nzAWzeCdRNta1bxEJJ59HOfoZH9YyuW1NhO5f6VuP4Y4VAW5D0FN+04mwTERHWlvnZO4+Iv29whEPtfXNO89hsmWWevzbQQUaqj/OXFszrvIlCVUku2ekpieX4RSRbRP5JRO623q8Skesi2O8BoBY4R0SOi8hHgK+LyG4R2QVcBnxqnvbPm2Ux4Pgn67o1Facbr8fPbWWi09DWx7Ki7GnF2SZjbVk+r5/oZWSOCrGvn+hBde4DuzZVJTmU5GVEnOffFmhn4/IFZKROPx6VLKT4hOoyf1xJNEfyTb0XGAK2Wu+PA1+ZaSdVvUFVS1U1TVUrVPUeVb1JVddZ8wLerqrN87A9KiwtzKap65SnOfP6WTh+I9YWewTaghFp9ExkbXk+gyOhOU/Isyt6qsvnF/GLCFuritgWQZ6/IzjI6yd6k05/fybWVfjZ09QTUzLv0xGJ469S1a8DwwCqegqYvqlnHLGkMJuQQlOXdzPv6luDlPozyY1w5mVVSa6p5Y8RhkdDHO3oj0iqYSJ2pF43R4nmusZuCnPSWRyFzldbq4poDw7O+L168VC4QjsZ9feno6bCz+BIiAMt86vScotIHP+QiGRhlXCKSBUQfwLUUxALJZ31rcGIon2bypIcI9YWI8xGnG0ilcU5ZKb55qzUaUsxi8w/DttSGY7gZ0r3bAu0k5Oewrp5DignGrZEc7wodUbi+G8n3Hh9iYjcDzwNfNZJo9xkWVE4UjvikeMPhXTWjr/KEmvrMGJtnnO63eLsI/7UFB/nLs6fU0nnkBVdRtJqMRKWFGZRXpDFtvqZHH8HF68onFJBNllZXpRNXmYqOxPF8avqE4QlmT8IPABsVNVnHLbLNRbmZZCe6vOspLOp+xSnhkcjquixGRvgNXl+z7F1k+YS8UN4gHdvU8+sJ/8cbO1leFQjaq4eCXae/4VDHVPa0tIzQENbn8nvT4KIUFPhZ3ecaPZEUtXztKp2qOojqvqwqraLyNNuGOcGPp+wZEEWRz2axDWbih4beyDR5Pm9J9AWpDg3A3/W3BQqq8v99A6OcOzk7L5/c9Xgn44tVUV09Q+z78TkqSe73NPk9yenpqKA15t75y3D4QZTOn4RybRm5hZbLRcLrcdywpo9CcOyohzPcvyBOTj+soIsMlJ9RqUzBmho65vTwK7NXJuv72nqJic9heVFcz/3RGyHPlU9/7ZAO/6stFnr/icL6yv8jERBhsMNpov4P0p4du651rP9eBC403nT3GOpVcvvxWDpwZYgRTnps+pZmuITVhixtphgtuJsE1m9KI8Un8w6z7+nqYc1Zfn4fNErsCv1Z1FZnDOl469t6GBzZSEpUTxnIrHOlmiOg3r+KR2/qn5XVVcAn1bVynGzdder6n+6aKPjLCnMJjg4wsl+9+WZ69sik2qYiCnp9B5bnG0uNfw2mWkprFqYOyvphtGQsrd5bhr8M7G5qogXD3WeNansWGc/xzpPJb3+/nSU+TMpzk1n57HYH+CNZGj+hIjkAVgzeH8lIhc4bJereFXSqaocbOmNSJxtIpUlORw7eYrBkdjPJyYq9uzp+aR6IFzPP5tUz+GOPvqHRqNW0TOerVVFBAdH2D1hboF9F7B1pRnYnQoRYV15fAzwRuL4P6+qvSLyBuCtwH2EVTYThmVFtkqnu6mTtuAgPQMjs8rv24yJtcWAsmiyEmi1SznnHvFDOM/fHhyktWcgou1Pa/BH3/FvtiL6ifX82wLtFOemzylISSZqKgqobw3SNzjitSnTEonjt0PKa4G7VPVBYG4asDHKkgVhx+92SWe91XVrNqWcNqcre0ye3ysC7bY4W/a8jjPbAd49Td2kp/jm9L2ZieLcDM5dnHdGA3ZVtfL7RVGZLJbI1FT4CensB+vdJhLH3ygi/wW8F3hURDIi3C9uyEpPoSQvw/VUT33b7Ct6bFYUG7E2rwm09rG8OHveg512yiZS6YY9jT2sXpxLeqoz/4abK4t4+XDnWBqxob2Plp5BU78fAesqwuMusT7AG8k3573A48BVqtoFFAKfcdIoL1jqgUrnwZYgeRmpLMrPmPW+eZlpLMrPGEs3GNynoT04Kw3+qcjLTGN5UXZEUaKqsqepm7WlzkkmbK0qYmA4xI6jXcDptI/R35+ZhXmZlPozY16iOZKZu/2q+itVPWi9b7Zm8yYUywqzXc+X17eGK3rmevtcWZxrIn6PmI8422SsLfOzp3lmZ9HcPcDJ/uF5K3JOx6bKInwSLt8EeCHQQZk/c2wszDA9NRWxL9GcUCmb+bCkMJvmngFXq2QORthucSqqFuYQaA0asTYPOGqJs813YNdmTVk+xzpP0T1DSbF9V7DGgVJOG39WGmvL/GwLhOUbahs62Fxl8vuRUlNRwOGO/hn/ll5iHL/F0sJsVKHxpDvyzF39Q7QHB+eU37epLM6lZ2DEiLV5gD15LnoRvzXAO0PUX9fYjQicVxr9gd3xbK0q4rWjJ9l5vIvOviGT358FNVaef2JJbCxhHL+FfRvrVp7fbr6yatE8HL8Ra/OMwDzF2SZiT8baO0Oef09TD5XFOWSnR9a7Ya5sqSpieFT5z9/Vj703REZNeQEAO2M43eOY4xeRH4hIq4jUjVtWKCJPishB63mBU+efLW5P4hrrulUy98jNiLV5R8M8xdkmUpKXwaL8jBkHePc2dVPtghb+RcsLSfUJT7/eyrKibMoLIu8nnOz4s9NYVpQd09r8Tkb8PwSumrDsNuBpVV1FWNf/NgfPPytK8jLISPW5NsB7sDVIZpqP8lk06J5IuRFr84z5irNNRngG79TOorNviKbuAUcmbk0kJyOV9UsKAFPNMxdqKgpieoDXMcevqs8BnRMWX0945i/W8zucOv9sERFXSzrrW8OlgPOpAfdZYm1mEpf7zLXP7nRUl+VT3xrk1NDkBQb2j4ITGj2TYTv8LSa/P2tqyv00dQ/Q1hubzQrdzvEvshusW88Lp9pQRG4Rke0isr2trc0V45YVuev455Pft6kqyTURv8t09g1xsn94Xqqck7GmLDzr8/Up9PCdlGqYjOs3lPOGlcX8yaoSV86XSJwe4O3y1pApiNnBXVW9W1U3qurGkhJ3vnhLXJJn7hscobHrFCujEDEasTb3sX9oox3xzyTdsKeph/KCLAqy3VFMWbkwl5/8xSb82dEZx0gm1pb7ESFmJ3K57fhbRKQUwHpudfn807K0MJv+oVHHyyPtwdhoRfxGrM1dol3KaVOxIAt/VtqUef49jd2uRfuG+ZGbkcrKklzj+C0eAm62Xt9MuKlLzOBWSWf9HLpuTYXtfEye3z2iJc42ERFhbVn+pBF/3+AIhzr6XMvvG+aPPcAbixMsnSznfACoBc4RkeMi8hHgq8AVInIQuMJ6HzOMlXQ6HD0fbA2S6hOWRaFtXqUp6XSdaImzTcbasnxeP9HL8IRGKPuae1DFUakGQ3SpqfDTHhzi1aMnY875OzYLRFVvmGLV5U6dc77YEZwbEf/y4hzSUub/u5tribyZSVzu0dAeZLUDksgQrtgZGgkRaAty7uLTTv70wK6J+OOFN6wqJjPNx7vuqqWyJIerqxdzdXUpa8vyPZe/cHb6X5yRmZbConzn5ZnrW4Ocuzh6jsO0YXQPW5zt6urFjhx/7ZhEc88Zjr+usZuinPQ5KbkavKGqJJfnPnMZj+9t4be7m/ne7xu485kAFQuyuLp6MVdVl3L+koKo9k2OFOP4J7CsMMfRVM/gyChHOvq4rqY0asesLMnhoR1NqKrnkUSiY4uzRUOOeTIqS3LJTPOxp6mbd19YMbZ8T1OPVSli/r7xxML8TG7avIybNi+js2+IJ/ee4Ld1J/jhtsN8/w+HWJyfyVvXLuKq6lIuXuFeI3vj+CewpDCbP9a3O3b8Q+19hDQ6A7s248XainNNROgkAWtgvsqhFoQpPuG80jMHeIdGQhxs7eVPzjH19PFMYU4677toKe+7aCndp4b53est/Hb3Cf7n5WPcV3uEopx0rly7mKurF7OlqigqqeCpMI5/AksLs/llzwADw6NkpqVE/fjRrOixsZ1QoDVoHL/DNLQ7U8o5nrVl+Tz4WhOhkOLzCQdaehkeVVPKmUD4s9J45/kVvPP8CvoGR3hmfyu/rTvBgzsaeeClo/iz0njLeYu4unqxNVYQXV8UsxO4vMIu6TzukDzzwZYgItGd/FM51obRDPA6jS3Olp/p3KSm6jI/vYMjY2NNbks1GNwlJyOV62rKuPPPLuDVz1/B3TddyOXnLuSJvSf4ix9t59n90Z/uZCL+CSwZU+nsi2pUblPfFmTJguyo/oLbYm12GsLgHIG2vqhLNUzEdvB7mnpYXpzDnqYecjNSWVZoOmAlOplpKVy5djFXrl3M0EiIPwba2bwi+iJ5JuKfgNO1/PUt8+u6NRm2WJuJ+J2noS0YNQ3+qVi9OJdUn4xF+nuaelhTmu9J9YfBO9JTfVx2zkKy0qOfcjaOfwLFuelkp6dwtDP6qZ6R0RCH2p25k6haaMTanMYpcbaJZKSmsHJhLnVNPYyGlL1NPawx+X1DFDGOfwJOyjMf7exnaDTkjOMvzuFoZ3/MibXF2ozF+eCUONtkVJf72dvUzaH2Pk4Nj5qBXUNUMY5/EsIqndFPmzhR0WNTWZJLSJ2Xm5gN9794hK1f/R1HOhIjBeWUONtkrC3Lpz04NDaw50bXLUPyYBz/JCx1SJ75oIOOP9baMAYHR/jm4/tp7h7gr37yKgPDsXUnMhcCbc6Is02GPcD7s5ePkZ7qc+Q7Y0hejOOfhGVF2QwMh2gLRrd7TqA1yOL8TPIcKAVcEWMqnfc+f4iT/cP87RWr2dfcwxcerJt5pxgn0OacONtEzisNS3ocbA1yzqI8RyfzGJIP822ahCUOVfYcjFLXrcnIzUhlcX5mTIi1dZ8a5vt/aOAt5y3iby5fxccvW8nPtx/n5y8f89q0edHgQLvFqcjLTGOFNT/DKHIaoo1x/JMwVtIZxQHeUEgd6dM6nsqSnJhI9dzzhwZ6Bkb42ytWA/CpK1ZzycoiPv9g3bTNxGOZ4dEQRzv7Xcnv29iVPGvMxC1DlDGOfxIqFmQhEl3H39R9iv6hUccifgg7/oa2oKeVNJ19Q9zz/CGuXVc65rhSfMJ3338+C7LT+dhPXqX71LBn9s0VW5zNrYgfTit1mooeQ7Qxjn8SMlJTKM3PjKrjH6vocdBxVJWExdrag862jpyO/3ouwKnhUT51xaozlhfnZnDnBy6gqesUn/7Fzrgr87RnRTs9eWs877qggv93aRU1pqLHEGWM45+CJYXZUc3x245/1SJnGnjAaafk1USu1t4B7tt2mOs3lLNykkYlFy5bwD9ecx5P7m3hv55r8MDCueOGONtEFuVn8vdXnUuqGdg1RBlPvlEiclhEdovIDhHZ7oUNMxHtSVz1rUEKc9IpzEmP2jEnYs8o9Uq64a5nAwyPKp+8fNWU23zokuVcW1PK1x97ndpAh4vWzY9Aa5CSPGfF2QwGt/AylLhMVTeo6kYPbZiSpYXZtPYOcmooOvXnB1uDjtdil/mzyEzzRqytufsU9794lHdfUMHy4qmjYhHha++qYXlxDp944DVaewZctHLuNLT3jamgGgzxjrmHnIKlljzzsZPzj/pVlXoXHH9YrC3Xk4j/P39Xj6ryictXzrhtbkYq37vxQvoGR/j4T187q7F4LBJoCzrWfMVgcBuvHL8CT4jIKyJyy2QbiMgtIrJdRLa3tbW5bF50VTrbgoN0nxqOuirnZHhR0nmss5+fbz/G+y9aGvGs1tWL8vi3P13HS4c7+cbj+x22cH509g3R1T9sIn5DwuCV479EVS8Argb+WkTeNHEDVb1bVTeq6saSEvdbzkWzlt9JjZ6JVBXncMxlsbZ/f/ogIsJfXzZztD+ed5xfzo2bl3L3cw08VnfCIevmj5vibAaDG3ji+FW1yXpuBX4NXOyFHdNRmJNObkZqVB3/qkkqXaJN1cKwWNsRl8TaDrX38avXGrlx0zIW+zNnvf/nr1vD+go/n/nFTg7FaD+BgHH8hgTDdccvIjkikme/Bq4EYk7IRUQslc7oOP7cjFQW5TvfD7ey2N2Szu8+dYD0FB8fu7RqTvtnpKZw5wcuICVF+NhPXonaYHo0aWjrIz3VR/mCLK9NMRiighcR/yLgeRHZCbwEPKKqj3lgx4wsLczicHvfvCcbHWwJD+yKOC/uVemiWNuBll4e3NnEzVuXU5I39x+1igXZ3PG+Dexv6eXzD9bF3OSuQFuQFUU5roizGQxu4LrjV9UGVV1vPdaq6r+4bUOkXLB0AQ3tfdx0z0scm0fkX9/mfEWPTY4l1ubGAO93njpATnoqH31T5byPddk5C/nEZSv531eO87MYE3NraOtzdeKWweA0ppxzGv7yjZV8+R3VvHb0JFfe8Rw/eP4Qo6HZRaPd/cO09Q66UtFjE9bscTbi39PUzaO7T/DhN6xgQZQmpX3yLat546pivvDQHuoaY0PMzRZnM/l9QyJhHP80+HzCTZuX8cTf/gmbKgv50sN7ec/3tnGwpTfiY9S3hbd1s5FGVUkuAYfF2u548gD5mal85A0ronbMFJ/wnfdtoCgnnY/d/wrd/d6LuR3pCIuzmYjfkEgYxx8B5QVZ3PvBi7jjfetpaO/j2n9/nv94+mBEE48OtrhX0WNTWZJDr4Niba8dPclT+1r56J9U4c+KroRBkSXmdqJ7gL/7xQ5Cs7zDijb2ILmb4mwGg9Okem1AvCAivPP8Ct64qoTbH9rDt548wCO7m/nGu9ezrmJq9cT61iAZLleEVI0Ta5vPoOtUfPvJAxTmpPPBrcujfmwIj6187przuP03e/nGE/u57JyFcz5WTkYK5y3OxzfHgdmAi312DQa3MI5/lhTnZvCff3YBb19/gn/6vzquv/N5/vJNlXzqLavJTEs5a/uDreHmK25WhIyv7NlUWRTVY790qJM/HGznc9ecR06Gc1+fm7cu55WjXdz1bIC7ng3M61iL8zO5qnoxV1Uv5qLlhbP6W9g/nkaczZBIGMc/R65cu5hNlUX826P7+K/fN/B43Qm++q4aNk9wtPWtQS5ctsBV22yxtmjX8qsq33piPyV5Gdy4eVlUjz0REeGO967nxk1LGZlHuudE9wCP7znBAy8d5YfbDlOcm84VaxZzzbrFbK4smrGXbUN735jqqcGQKBjHPw/8WWl89V01vG19Gbf9ahfvv/sFPrBpKbddfS55mWn0DY7Q2HWK91+0xFW7bLG2aJd0bgt08OKhTm5/2xqy0s++u4k2qSm+qNyxvOvCCvoGR3h2fxuP1jXz4I5GHnjpKP6sNK5Ys4irqxfzhlXFZKSe/ZkCbUGuWVc6bxsMhljCOP4ocMnKYh6/9U18+4kD/OCPh/jd66386zvXUZwbzq+7WdFjU1mSE9WSSFXlm0/sp8yfyQ2blkbtuG6Rk5HKtTWlXFtTysDwKM8daOOxuhM8vucE//vKcXIzUnnzuQu5unoxl56zkKz0FCPOZkhYjOOPEtnpqfzTdWu4tqaUv//fXXzohy+z2uqv62Sf3amoKsnlt7ubGRwZnTSSnS3P7m/jtaNd/Os710XleF6SmZbClWsXc+XaxQyNhNgWaOe3u0/wxN4TPLSzicw0H5euXjj2g23kmA2JhnH8Ueb8pQt4+G/ewP/3TIA7n6knPcXHsiL3I8aqkpwxsbbV82z3qKp868n9LC3M5j0bK6JkYWyQnurj0nMWcuk5C/mX0WpeOtTJb+tO8Nie8AOc7ZNsMHiBcfwOkJGawqeuWM11NaW0BQdnHEB0gvElnfN1/I/vaaGusYdvvme9J5/FLVJTfGxdWczWlcV88e1refXoSVp6BllSGFmPAYMhXjCO30FWLcpztLn6dKwojo5YWyik3PHkASqLc3jHhrJomBYX+HzCxuWFXpthMDhC4oZvSU60xNoe3t3M/pZebr1iNakJHO0bDMmE+U9OYKoWzk+sbWQ0xHeeOsA5i/K4zpQ0GgwJg0n1JDCVxbk88NJRrvj27+e0/9BoiCMd/XzvxgvnLHlgMBhiD+P4E5j3XbSEzv6heal0vnXtYt66dlEUrTIYDF5jHH8CU13u584/u8BrMwwGQ4zhSY5fRK4Skf0iUi8it3lhg8FgMCQrXjRbTwHuBK4G1gA3iMgat+0wGAyGZMWLiP9ioN7qvTsE/A9wvQd2GAwGQ1LiheMvB8Z30z5uLTsDEblFRLaLyPa2tjbXjDMYDIZExwvHP1ld4FllJ6p6t6puVNWNJSUlLphlMBgMyYEXjv84MF6gvgJo8sAOg8FgSEq8cPwvA6tEZIWIpAPvBx7ywA6DwWBISlyv41fVERH5OPA4kAL8QFX3uG2HwWAwJCsyn1mdbiEibcCROe5eDLRH0ZxoY+ybH8a++WHsmz+xbOMyVT1rkDQuHP98EJHtqrrRazumwtg3P4x988PYN3/iwcaJGHVOg8FgSDKM4zcYDIYkIxkc/91eGzADxr75YeybH8a++RMPNp5Bwuf4DQaDwXAmyRDxGwwGg2EcxvEbDAZDkpEwjn8mjX8J8+/W+l0i4lqHEhFZIiLPiMg+EdkjIp+cZJtLRaRbRHZYjy+4ZZ91/sMists69/ZJ1nt5/c4Zd112iEiPiNw6YRtXr5+I/EBEWkWkbtyyQhF5UkQOWs8LptjX8X4UU9j3DRF53fr7/VpECqbYd9rvgoP23S4ijeP+htdMsa9X1+9n42w7LCI7ptjX8es3b1Q17h+EZwAHgEogHdgJrJmwzTXAbwmLxG0GXnTRvlLgAut1HnBgEvsuBR728BoeBoqnWe/Z9Zvkb32C8MQUz64f8CbgAqBu3LKvA7dZr28DvjaF/dN+Vx2070og1Xr9tcnsi+S74KB9twOfjuDv78n1m7D+W8AXvLp+830kSsQficb/9cCPNMwLQIGIlLphnKo2q+qr1uteYB+TSFHHOJ5dvwlcDgRUda4zuaOCqj4HdE5YfD1wn/X6PuAdk+zqSj+KyexT1SdUdcR6+wJhgURPmOL6RYJn189GRAR4L/BAtM/rFoni+CPR+I+oD4DTiMhy4HzgxUlWbxGRnSLyWxFZ665lKPCEiLwiIrdMsj4mrh9hUb+p/uG8vH4Ai1S1GcI/9sDCSbaJlev4YcJ3cJMx03fBST5upaJ+MEWqLBau3xuBFlU9OMV6L69fRCSK449E4z+iPgBOIiK5wC+BW1W1Z8LqVwmnL9YD/wH8n5u2AZeo6gWEW2L+tYi8acL6WLh+6cDbgV9Mstrr6xcpsXAdPweMAPdPsclM3wWnuAuoAjYAzYTTKRPx/PoBNzB9tO/V9YuYRHH8kWj8e9oHQETSCDv9+1X1VxPXq2qPqgat148CaSJS7JZ9qtpkPbcCvyZ8Sz2eWOijcDXwqqq2TFzh9fWzaLHTX9Zz6yTbeP09vBm4DviAWgnpiUTwXXAEVW1R1VFVDQHfn+K8Xl+/VOBPgZ9NtY1X1282JIrjj0Tj/yHgz63qlM1At31b7jRWTvAeYJ+qfnuKbRZb2yEiFxP+23S4ZF+OiOTZrwkPAtZN2Myz6zeOKSMtL6/fOB4CbrZe3ww8OMk2nvWjEJGrgM8Cb1fV/im2ieS74JR948eM3jnFeb3u5/EW4HVVPT7ZSi+v36zwenQ5Wg/CVScHCI/4f85a9lfAX1mvBbjTWr8b2OiibW8gfDu6C9hhPa6ZYN/HgT2EqxReALa6aF+ldd6dlg0xdf2s82cTduT+ccs8u36Ef4CagWHCUehHgCLgaeCg9VxobVsGPDrdd9Ul++oJ58ft7+D3Jto31XfBJft+bH23dhF25qWxdP2s5T+0v3PjtnX9+s33YSQbDAaDIclIlFSPwWAwGCLEOH6DwWBIMozjNxgMhiTDOH6DwWBIMozjNxgMhiTDOH6Da4hIgYj8vxm22RbBcYLRs8p5LNXJT0fpWKOW6mPZuHkLt1vP9vtnLfVKW0lyobU8w1KYrBeRFy35EESkytourq6rYe4Yx29wkwJgUscvIikAqrrVSQOsmZfxzClV3aDh2aFXisi/ADki8hfAreO2+4C13QYNzyCFcK38SVVdCdxBWKETVQ2o6gb3PoLBa4zjN7jJVwE7uvyGhDX0nxGRnxKeuDMWzYtIrog8LSKvWtrmMyowisjnJaw3/6SIPGBH2VYE/K8i8nvgkyJyuYi8Zh33ByKSYW132JZ5EJGNIvKs9fp2EfmxiPxOwlr7fznunJ8RkZctYbEvjlv+OSvqfgo4Zwp7fygi7x733v7sl4rIcxLWzN8rIt8TkbP+V1X1ceBx4G+AIlW9Y4ZLNF499H+By+27BENyEe/RjyG+uA2otqNLEbmUsI5JtaoemrDtAPBOVe2xnPELIvKQTjHjUEQ2Au8irHyaSli07ZVxmxSo6p+ISCbhmbWXq+oBEfkR8DHgOzPYXkO4D0EO8JqIPAJUA6uszyDAQxIW5OojLCUwlS2RcDGwBjgCPEZYH+Z/J3zmKwj3Ifh3oENEPqmq37VW3ysio4T1ob5iXbcxZUtVHRGRbsKzjdtnaZshzjERv8FrXprE6UPYkf6riOwCniLstBZNc5w3AA+q6ikN9zz4zYT1tqjWOcAhVT1gvb+PcNONmbCP3Q48Q9gxX2k9XiPs3M8l/EPwRuDXqtqvYRXWuWjJvKRhzflRwvIBb5hkm6dU9XNAn6r+N+EfAAinedZZdrwRuMlaHgvKloYYwDh+g9f0TbH8A0AJcKF1h9ACZE5znJlSFvZ5pttuhNP/ExPPNdFBqnWsfxuXS1+pqvdMsf2057NSLukznO/MBdbdj6rePuF9o/XcC/yU0+qQY8qW1liHn7k1QzHEOcbxG9ykl3DryUjwA62qOiwilwHLZtj+eeBtIpIp4b4H106x3evAchFZab2/Cfi99fowcKH1+l0T9rveOnYR4fTKy4Tz6x+2zoeIlFsVNM8B7xSRLEup8W1T2DL+fNcDaePWXWwpUPqA91mfb0ZEJHXcOEUaYQlmWx1yvHrou4HfTZU6MyQ2JsdvcA1V7RCRP0q4gfVvgUem2fx+4DcSbla9g7DDnu7YL4vIQ4RVEY8A24HuSbYbEJEPAb+wot6Xge9Zq78I3CMi/8jZHdJesuxdCnzZqqppEpHzgFprjDQI3Kiqr4rIzyy7jwB/mMLs7wMPishLhNU8x9/91BIeDF9H+Ifk19N9/nFkAI9bTj+FcJrs+9a6e4Afi0g94Uj//REe05BgGHVOQ8IgIrmqGhSRbMLO8ha1eh3P87i3A0FV/eZ8jxXh+S4l3HT8uknWBVU116HzOnZsQ2xhUj2GROJuEdlBeKD1l9Fw+jFIj1UOWxatA9oTuAiPoxiSABPxGwwGQ5JhIn6DwWBIMozjNxgMhiTDOH6DwWBIMozjNxgMhiTDOH6DwWBIMv5/Ha6Fl6bGy6gAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -389,8 +1671,6 @@ } ], "source": [ - "\n", - "\n", "xf = [metric[\"steps_in_trial\"] for metric in explore_metrics]\n", "temp_df = np.array_split(xf, 20)\n", "for i in range(len(temp_df)):\n", @@ -402,30 +1682,6 @@ "ax.set_ylabel(\"steps for solution\")\n", "ax.legend([\"steps\"])\n" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { diff --git a/XCS_Experiments/XNCS_woods_avg.ipynb b/XCS_Experiments/XNCS_woods_avg.ipynb index 065a214..8e3b8b7 100644 --- a/XCS_Experiments/XNCS_woods_avg.ipynb +++ b/XCS_Experiments/XNCS_woods_avg.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 5, "metadata": {}, "outputs": [], "source": [ @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -23,11 +23,11 @@ "text": [ "This is how maze looks like:\n", "\n", - "\u001b[36mX\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m\n", - "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n" + "\u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[37m□\u001b[0m \u001b[36mX\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[33m$\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n", + "\u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[30m■\u001b[0m \u001b[37m□\u001b[0m \u001b[37m□\u001b[0m\n" ] } ], @@ -45,7 +45,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -55,15 +55,20 @@ "cfg = Configuration(number_of_actions=8,\n", " max_population=1800,\n", " learning_rate=0.2,\n", - " mutation_chance=0.08,\n", - " chi=0.8,\n", + " epsilon_0=0.01,\n", + " alpha=0.1,\n", + " gamma=0.71,\n", + " mutation_chance=0.08, # mu\n", + " delta=0.1,\n", " ga_threshold=25,\n", " deletion_threshold=25,\n", - " delta=0.1,\n", - " initial_error=0.01,\n", - " metrics_trial_frequency=50,\n", - " covering_wildcard_chance=0.9,\n", - " user_metrics_collector_fcn=xcs_maze_metrics,\n", + " covering_wildcard_chance = 0.7,\n", + " chi=0.8, # crossover\n", + " metrics_trial_frequency=100,\n", + " initial_prediction =10, # p_i\n", + " initial_error = 0.1, # epsilon_i\n", + " initial_fitness = 10, # f_i\n", + " user_metrics_collector_fcn=xncs_metrics,\n", " lmc=10,\n", " lem=200\n", " )\n" @@ -71,7 +76,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 8, "metadata": { "scrolled": true }, @@ -80,7 +85,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 40, 'reward': [9.481067235992241e-41, 2.133240128098254e-40, 1.9621374957174576e-77, 2.922017516796629e-40, 2.94174852031233e-40, 3.824833107711084e-40, 4.3524600635062645e-40, 200.0], 'perf_time': 0.01856710000000028, 'numerosity': 112, 'population': 106, 'average_specificity': 2.2857142857142856, 'fraction_accuracy': 0.07738095238095237}\n" + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 39, 'reward': 1000.0, 'perf_time': 0.02473699999973178, 'numerosity': 90, 'population': 86, 'average_specificity': 9.311111111111112, 'fraction_accuracy': 0.041666666666666664}\n" ] }, { @@ -94,236 +99,39 @@ "name": "stderr", "output_type": "stream", "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 8, 'reward': [22.071990717464196, 17.587787020206807, 14.60592761340558, 254.31742969984236, 16.222857099384285, 29.62585820199659, 174.6541388542593, 219.65317673865303], 'perf_time': 0.0031069000000001346, 'numerosity': 222, 'population': 125, 'average_specificity': 2.130630630630631, 'fraction_accuracy': 0.01079401686393926}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': [14.408116152816067, 8.512726318526216, 16.340806973841534, 16.56874585722745, 620.2240987084717, 11.377293606474229, 70.80187071593016, 298.02954821782356], 'perf_time': 0.0013203999999999994, 'numerosity': 231, 'population': 127, 'average_specificity': 2.1125541125541125, 'fraction_accuracy': 0.0006392895042614448}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 39, 'reward': [11.790636478803778, 19.12752398910379, 18.718752579719784, 20.368282413412334, 16.025304314067085, 8.483305734106578, 11.660086337113864, 213.74832513080545], 'perf_time': 0.01594680000000004, 'numerosity': 239, 'population': 127, 'average_specificity': 2.083682008368201, 'fraction_accuracy': 0.03632195744134278}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 2, 'reward': [5.845958784543153, 2.1179407954452287, 8.774936625035382, 9.181563757711944, 560.8768678357417, 24.887274420151535, 668.3710115511315, 16.387320116195113], 'perf_time': 0.0007964999999998668, 'numerosity': 243, 'population': 127, 'average_specificity': 2.0699588477366255, 'fraction_accuracy': 0.042638433660729995}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 9, 'reward': [6.327722702090227, 2.1060283095305175, 7.620268658370248, 46.73474846689705, 291.74984451893596, 5.9681264648052395, 12.744843922888794, 4.963217255808942], 'perf_time': 0.0034071999999998326, 'numerosity': 243, 'population': 127, 'average_specificity': 2.0699588477366255, 'fraction_accuracy': 0.05104226744516508}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 2, 'reward': [5.888173080094173, 3.299761866676121, 4.172386515043238, 4.1923948895952945, 14.370309402564112, 6.601756715544234, 4.4376204800262595, 580.1764572332637], 'perf_time': 0.0007774999999998755, 'numerosity': 247, 'population': 127, 'average_specificity': 2.0364372469635628, 'fraction_accuracy': 0.09077918958991367}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 6, 'reward': [22.920449864928376, 3.283466858489415, 3.440506463940982, 3.264870815050361, 3.575670552633571, 4.13537089936556, 3.4813789072421093, 360.27501143775623], 'perf_time': 0.0024391000000001384, 'numerosity': 247, 'population': 127, 'average_specificity': 2.0364372469635628, 'fraction_accuracy': 0.0936792758897281}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 4, 'reward': [13.64499820394293, 2.912294091031812, 3.094023577949356, 3.264870815050361, 0.550808313714016, 4.711894508932932, 3.0051338795125946, 503.034969975133], 'perf_time': 0.0017855000000004395, 'numerosity': 247, 'population': 127, 'average_specificity': 2.0364372469635628, 'fraction_accuracy': 0.09366720974330858}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 2, 'reward': [9.159342452543486, 2.912294091031812, 2.241157273176047, 3.264870815050361, 0.26325415333074964, 3.58348906292563, 3.1324980104654943, 720.5299811910106], 'perf_time': 0.0007774999999998755, 'numerosity': 247, 'population': 127, 'average_specificity': 2.0364372469635628, 'fraction_accuracy': 0.09283840019696718}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 34, 'reward': [0, 0, 0, 0, 200.0, 6.908349921621449e-40, 5.824985011363264e-40, 2.0685057529223626e-40], 'perf_time': 0.011527700000000252, 'numerosity': 87, 'population': 83, 'average_specificity': 2.0, 'fraction_accuracy': 0.10631313131313132}\n", - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 6, 'reward': [0, 0, 14.320739617919294, 157.13982313926502, 596.8809180303122, 26.24211759650743, 5.824985011363264e-40, 25.432684157517485], 'perf_time': 0.002236100000000185, 'numerosity': 122, 'population': 114, 'average_specificity': 2.0, 'fraction_accuracy': 0.04638850732601008}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 1 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 1, 'reward': [0, 0, 0.9628887877491275, 529.9985118942901, 697.8494527228668, 164.86967119573438, 0.06175298977766064, 217.27934576067392], 'perf_time': 0.00039579999999972415, 'numerosity': 122, 'population': 114, 'average_specificity': 2.0, 'fraction_accuracy': 0.03677312271062335}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [189.15491697850888, 0, 12.305073502209941, 227.43235770726102, 507.3272703668849, 96.71453675196639, 0.5945806093789526, 91.05992412834581], 'perf_time': 0.018671699999999625, 'numerosity': 137, 'population': 115, 'average_specificity': 1.897810218978102, 'fraction_accuracy': 0.017427884615387742}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 1, 'reward': [116.95516168925238, 0, 5.8168595127521465, 676.9058135266669, 282.690491631713, 16.887242846391803, 0.5945806093789526, 11.830126470967812], 'perf_time': 0.0003853999999998692, 'numerosity': 139, 'population': 115, 'average_specificity': 1.8776978417266188, 'fraction_accuracy': 0.01917613636363616}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 2, 'reward': [116.95516168925238, 45.48497011691691, 0.1656145467218437, 580.8238522641684, 336.16311587236555, 16.887242846391803, 0.5945806093789526, 383.4603771985479], 'perf_time': 0.0007133000000001388, 'numerosity': 139, 'population': 115, 'average_specificity': 1.8776978417266188, 'fraction_accuracy': 0.01917613636363343}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 7, 'reward': [116.95516168925238, 45.48497011691691, 78.45031888191043, 529.6281960811764, 376.13842867551654, 73.60887612015746, 0.5945806093789526, 78.81879075696968], 'perf_time': 0.0024601999999998014, 'numerosity': 139, 'population': 115, 'average_specificity': 1.8776978417266188, 'fraction_accuracy': 0.01917613636363814}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 3, 'reward': [19.6541821074278, 21.98911777746465, 8.586825302754457, 233.63376949507028, 206.94983873943525, 14.118295603240488, 14.060248410236287, 30.365819161569693], 'perf_time': 0.0010973999999999151, 'numerosity': 159, 'population': 118, 'average_specificity': 1.9622641509433962, 'fraction_accuracy': 1.921077422271615e-16}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 15, 'reward': [13.23652318642678, 13.320640544774903, 2.6535526377534993, 3.780393776878459, 14.637417224153403, 88.52468697371093, 11.828797523839022, 798.9546897715312], 'perf_time': 0.006354400000000204, 'numerosity': 169, 'population': 119, 'average_specificity': 1.8520710059171597, 'fraction_accuracy': 4.019516953395288e-15}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 4, 'reward': [12.545184176827803, 7.378255987729554, 36.503848376943544, 213.2955514657087, 39.194990804073456, 10.148053300519809, 12.070041583632532, 793.5940644863052], 'perf_time': 0.001466699999999932, 'numerosity': 180, 'population': 120, 'average_specificity': 1.788888888888889, 'fraction_accuracy': 2.0163184271724154e-16}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 9, 'reward': [0, 0, 0, 0, 0, 0, 1.1851334044990301e-40, 200.0], 'perf_time': 0.004041100000000242, 'numerosity': 55, 'population': 55, 'average_specificity': 1.9454545454545455, 'fraction_accuracy': 0.1458333333333333}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 2 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 4, 'reward': [0.0023107224875290595, 1.3794650020818784, 0.5102752668456102, 2.1332401280982545e-40, 59.97038592762018, 5.400957465147075, 10.04633678426003, 618.2898015158187], 'perf_time': 0.00183689999999892, 'numerosity': 130, 'population': 120, 'average_specificity': 2.146153846153846, 'fraction_accuracy': 0.045106456043997975}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 4, 'reward': [0.0023107224875290595, 8.546116684174894, 0.5102752668456102, 18.04013966694435, 36.77191260911946, 8.235633565155812, 5.179888848185465, 575.1954877800946], 'perf_time': 0.0018273999999998125, 'numerosity': 138, 'population': 121, 'average_specificity': 2.1739130434782608, 'fraction_accuracy': 0.03892773892780144}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 7, 'reward': [0.0023107224875290595, 8.546116684174894, 10.96212439545333, 10.951938087346369, 66.71141478460453, 3.6686830712206993, 3.9809146621737046, 318.0870944627734], 'perf_time': 0.003152699999999342, 'numerosity': 138, 'population': 121, 'average_specificity': 2.1739130434782608, 'fraction_accuracy': 0.03972902097909611}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 2, 'reward': [0.0023107224875290595, 42.86159322949514, 27.12912133458119, 5.443676071634025, 544.8988991346602, 2.1784072979971496, 4.703279145523968, 108.46814849619474], 'perf_time': 0.0007717000000013741, 'numerosity': 146, 'population': 122, 'average_specificity': 2.1232876712328768, 'fraction_accuracy': 0.020833333333384035}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 3, 'reward': [0.41107778962928465, 20.832700039963584, 27.12912133458119, 8.932482479546684, 471.7047476461445, 23.064756835404694, 217.2329561244382, 600.090100343675], 'perf_time': 0.0013719000000005366, 'numerosity': 146, 'population': 122, 'average_specificity': 2.1232876712328768, 'fraction_accuracy': 0.008333333333337061}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 4, 'reward': [2.62117710906641, 16.904630312480055, 27.12912133458119, 8.932482479546684, 516.8846399899201, 16.467782401514594, 217.2329561244382, 680.7445329884267], 'perf_time': 0.00152640000000126, 'numerosity': 146, 'population': 122, 'average_specificity': 2.1232876712328768, 'fraction_accuracy': 0.008928571428583104}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 2, 'reward': [6.613016269110865, 16.405847221382906, 27.12912133458119, 8.932482479546684, 88.37428398351264, 23.110061794913594, 378.3024394814083, 683.1699914410128], 'perf_time': 0.000822400000000556, 'numerosity': 146, 'population': 122, 'average_specificity': 2.1232876712328768, 'fraction_accuracy': 0.00892857142861492}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 6, 'reward': [9.634075262831553, 19.13285948364396, 44.70972537377457, 14.765985855009086, 52.91563709739739, 19.93771841542184, 378.3024394814083, 817.9910950566882], 'perf_time': 0.0027246999999999133, 'numerosity': 152, 'population': 124, 'average_specificity': 2.1315789473684212, 'fraction_accuracy': 0.022817460317461485}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 9, 'reward': [9.634075262831553, 16.400621718715172, 22.70671243831817, 23.323893827452917, 61.77890305898637, 19.68561830000248, 312.83693400175787, 506.2060883415203], 'perf_time': 0.003835099999999869, 'numerosity': 152, 'population': 124, 'average_specificity': 2.1315789473684212, 'fraction_accuracy': 0.022817460317462318}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 16, 'reward': [0, 0, 0, 0, 0, 2.1332401280982545e-40, 4.10530211318464e-40, 200.0], 'perf_time': 0.005111899999999281, 'numerosity': 61, 'population': 61, 'average_specificity': 2.1147540983606556, 'fraction_accuracy': 0.13988095238095238}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 3 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [14.039104801014563, 9.683317018780638, 5.727363432319022, 6.155606815361731, 990.0354275183099, 5.934116304126983, 2.997850582308485, 7.080043617498435], 'perf_time': 0.018660799999999256, 'numerosity': 163, 'population': 125, 'average_specificity': 1.834355828220859, 'fraction_accuracy': 0.06913919413918448}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 2, 'reward': [13.409999228020018, 11.727140507531798, 14.165081813748383, 8.554468353934855, 704.3363629995565, 13.13780791843058, 12.925424447413143, 166.36668098556538], 'perf_time': 0.0007783999999997349, 'numerosity': 171, 'population': 125, 'average_specificity': 1.894736842105263, 'fraction_accuracy': 0.04441964285713895}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 3, 'reward': [12.860697440591162, 11.727140507531798, 14.165081813748383, 11.027420402801598, 746.8563081643429, 23.241359529690264, 4.268159453508158, 5.924059350027797], 'perf_time': 0.001318700000000561, 'numerosity': 171, 'population': 125, 'average_specificity': 1.894736842105263, 'fraction_accuracy': 0.04510645604396179}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 2, 'reward': [24.609323931465973, 11.727140507531798, 32.95341252309025, 20.682295058725508, 588.0927390384065, 13.137012423741416, 10.947938676636388, 58.71825732396747], 'perf_time': 0.0008996000000003335, 'numerosity': 177, 'population': 125, 'average_specificity': 1.8361581920903955, 'fraction_accuracy': 0.028104707792205048}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 3, 'reward': [9.586427172441955, 14.689312063010616, 20.992062199046423, 13.738489935078661, 551.5482630450974, 15.681904394386653, 10.554183791560739, 41.6500128647788], 'perf_time': 0.0013210000000007938, 'numerosity': 185, 'population': 126, 'average_specificity': 1.9081081081081082, 'fraction_accuracy': 0.031316773504274975}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 4, 'reward': [13.339047796350961, 14.689312063010616, 8.425402849510583, 10.589012060646285, 592.2022876394261, 15.681904394386653, 9.232145957322254, 68.03426963187661], 'perf_time': 0.0015330999999996209, 'numerosity': 185, 'population': 126, 'average_specificity': 1.9081081081081082, 'fraction_accuracy': 0.031316773504274864}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 1, 'reward': [13.339047796350961, 14.689312063010616, 6.876171594185341, 10.34854970649316, 672.069826563226, 15.681904394386653, 9.060943503141601, 143.84940439743846], 'perf_time': 0.00040710000000032665, 'numerosity': 185, 'population': 126, 'average_specificity': 1.9081081081081082, 'fraction_accuracy': 0.03131677350427277}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 8, 'reward': [13.339047796350961, 14.689312063010616, 21.67643321742649, 23.05791135383275, 453.9317832525011, 12.628501403846391, 8.891196093592086, 8.259221530453669], 'perf_time': 0.003020699999998655, 'numerosity': 185, 'population': 126, 'average_specificity': 1.9081081081081082, 'fraction_accuracy': 0.03131677350427724}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 7, 'reward': [13.339047796350961, 14.689312063010616, 11.40844056342997, 20.0386043727439, 389.3173106729925, 12.628501403846391, 8.883909885523426, 4.341023711868907], 'perf_time': 0.0030857999999991392, 'numerosity': 185, 'population': 126, 'average_specificity': 1.9081081081081082, 'fraction_accuracy': 0.03305288461540121}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 10, 'reward': [0, 0, 0, 0, 0, 0, 2.133240128098254e-40, 200.0], 'perf_time': 0.00354089999999907, 'numerosity': 47, 'population': 47, 'average_specificity': 2.1702127659574466, 'fraction_accuracy': 0.18125}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 4 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 8, 'reward': [82.19655377294949, 78.13309657162972, 0, 3.799173477599655, 166.09216900253207, 20.87536085772607, 8.883598040058615, 682.1121480733271], 'perf_time': 0.003196699999998387, 'numerosity': 147, 'population': 122, 'average_specificity': 2.707482993197279, 'fraction_accuracy': 0.05208333333332696}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': [13.629905623645694, 12.978526157035065, 37.436739781098254, 19.409102184518932, 947.2300794618349, 9.16925462019261, 4.036120809810008, 212.9524996193984], 'perf_time': 0.001332099999999059, 'numerosity': 159, 'population': 124, 'average_specificity': 2.59748427672956, 'fraction_accuracy': 0.031250000000019}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 3, 'reward': [15.52724291418671, 12.959331381826944, 37.436739781098254, 16.853165947875162, 836.2927959077374, 8.809857039129865, 10.94447136185202, 281.2455791107684], 'perf_time': 0.001345900000000455, 'numerosity': 165, 'population': 124, 'average_specificity': 2.581818181818182, 'fraction_accuracy': 0.04261363636363772}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 1, 'reward': [12.421830651759766, 13.269198847397071, 37.436739781098254, 16.853165947875162, 992.8614663873989, 7.490806492018365, 27.293601219973137, 176.17372963699853], 'perf_time': 0.00048519999999996344, 'numerosity': 165, 'population': 124, 'average_specificity': 2.581818181818182, 'fraction_accuracy': 0.04166666666679343}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 4, 'reward': [21.785853852923726, 47.08800333316623, 37.436739781098254, 16.853165947875162, 966.6879202012489, 38.47990384271043, 49.70749671304317, 360.0185772364459], 'perf_time': 0.001567500000000166, 'numerosity': 165, 'population': 124, 'average_specificity': 2.581818181818182, 'fraction_accuracy': 2.3024758115238313e-14}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 1, 'reward': [21.785853852923726, 35.779700953730476, 37.436739781098254, 16.853165947875162, 941.7751448137667, 59.583739587353975, 22.70866216397901, 26.679172550989062], 'perf_time': 0.0006810000000001537, 'numerosity': 165, 'population': 124, 'average_specificity': 2.581818181818182, 'fraction_accuracy': 9.050217040070132e-14}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 2, 'reward': [27.649233484999527, 65.91659960889639, 37.436739781098254, 16.853165947875162, 932.64900145019, 59.24195056016493, 19.41481356341438, 17.099692815220898], 'perf_time': 0.0008815000000002016, 'numerosity': 165, 'population': 124, 'average_specificity': 2.581818181818182, 'fraction_accuracy': 9.060563242804852e-14}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 4, 'reward': [24.109796178725574, 72.66815970565473, 34.17696737879422, 16.853165947875162, 717.2880405069582, 59.242025921432514, 16.08352569372126, 16.765498357934497], 'perf_time': 0.0018127000000003335, 'numerosity': 165, 'population': 124, 'average_specificity': 2.581818181818182, 'fraction_accuracy': 9.066308701337927e-14}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 5, 'reward': [24.109796178725574, 89.68113794314303, 28.46307620740588, 16.853165947875162, 778.2774245336368, 60.52114854251378, 22.216873457905116, 33.640209390293705], 'perf_time': 0.002015300000000053, 'numerosity': 165, 'population': 124, 'average_specificity': 2.581818181818182, 'fraction_accuracy': 8.173993151092131e-14}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 7, 'reward': [0, 0, 0, 0, 0, 0, 1.1851334044990301e-40, 200.0], 'perf_time': 0.002273100000000028, 'numerosity': 39, 'population': 39, 'average_specificity': 2.358974358974359, 'fraction_accuracy': 0.20625}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 5 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [38.74623193995688, 14.686290116829676, 43.58639764370451, 78.16821075598438, 17.569806747329334, 33.10967500813126, 30.274798154876986, 11.683148868198735], 'perf_time': 0.01977989999999963, 'numerosity': 202, 'population': 131, 'average_specificity': 2.1782178217821784, 'fraction_accuracy': 0.05931776556768069}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [38.99178343900125, 16.843452275570368, 37.54092517554028, 80.6898055997486, 17.942325147531545, 40.66843957284197, 26.462848302701516, 187.22464142121703], 'perf_time': 0.019926000000001665, 'numerosity': 212, 'population': 132, 'average_specificity': 2.1367924528301887, 'fraction_accuracy': 0.03044871794874163}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [162.5597799306274, 54.53648562460454, 28.26608878773437, 32.73978663931784, 7.953637859694729, 34.871756924784506, 93.89219262612006, 108.72787918788248], 'perf_time': 0.021417899999999435, 'numerosity': 218, 'population': 132, 'average_specificity': 2.165137614678899, 'fraction_accuracy': 0.021780303030338066}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 3, 'reward': [7.880747278663781, 4.917459309265735, 39.716473151081686, 1059.4401961788153, 16.39527275753807, 58.598529273065594, 43.87821007637144, 67.04407850311081], 'perf_time': 0.0012119000000012647, 'numerosity': 226, 'population': 132, 'average_specificity': 2.1106194690265485, 'fraction_accuracy': 0.010416666666685108}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 4, 'reward': [10.900281521974748, 33.26847771867332, 34.47447138091652, 1111.0945557671316, 18.984664825849595, 65.76444670124137, 35.10263495469512, 34.89447912985195], 'perf_time': 0.0017313000000029888, 'numerosity': 226, 'population': 132, 'average_specificity': 2.1106194690265485, 'fraction_accuracy': 0.011363636363648219}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 3, 'reward': [12.685284264779453, 55.076075795638815, 42.07498778381921, 995.1182552327083, 19.17112683783225, 65.76444670124137, 35.10263495469512, 21.00703894937045], 'perf_time': 0.001375900000002872, 'numerosity': 226, 'population': 132, 'average_specificity': 2.1106194690265485, 'fraction_accuracy': 0.011363636363648002}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 3, 'reward': [30.456918344690173, 20.837470170447403, 35.44019759864358, 1096.3128556872282, 16.941392693888297, 65.76444670124137, 35.10263495469512, 47.974571704278745], 'perf_time': 0.0012806999999988022, 'numerosity': 226, 'population': 132, 'average_specificity': 2.1106194690265485, 'fraction_accuracy': 0.011363636363648247}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 3, 'reward': [14.947459864322362, 4.420917733897655, 41.79691927404207, 995.755849653005, 18.12496473228025, 60.776333530690586, 31.274661891992388, 151.03838346732266], 'perf_time': 0.0012316000000005545, 'numerosity': 228, 'population': 132, 'average_specificity': 2.0964912280701755, 'fraction_accuracy': 0.011363636363649534}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 3, 'reward': [6.78231617945228, 15.903533760210053, 38.35604400498138, 989.3868270088527, 19.77347011885188, 48.07117372755802, 31.274661891992388, 142.76110178670837], 'perf_time': 0.001235499999999945, 'numerosity': 228, 'population': 132, 'average_specificity': 2.0964912280701755, 'fraction_accuracy': 0.01250000000001356}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 6, 'reward': [0, 0, 0, 0, 0, 0, 1.1851334044990301e-40, 200.0], 'perf_time': 0.0018294000000018684, 'numerosity': 32, 'population': 32, 'average_specificity': 2.0625, 'fraction_accuracy': 0.25}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 6 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 3, 'reward': [14.58856067858623, 0.3734265535721589, 0.5883914484364798, 5.742408849996218, 25.756489271365734, 1036.2060801652299, 2.133240128098254e-40, 16.812853121527546], 'perf_time': 0.0016220000000011225, 'numerosity': 134, 'population': 118, 'average_specificity': 1.8208955223880596, 'fraction_accuracy': 0.06794871794875668}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 1, 'reward': [8.358348111138636, 0.3734265535721589, 3.466621911429017, 5.742408849996218, 48.61853924322013, 1043.704281691633, 2.133240128098254e-40, 66.13029797307924], 'perf_time': 0.00047430000000048267, 'numerosity': 134, 'population': 118, 'average_specificity': 1.8208955223880596, 'fraction_accuracy': 0.0793123543124078}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 2, 'reward': [1.876690339149665, 0.3734265535721589, 22.158347020499875, 5.742408849996218, 25.718429396149336, 1050.5264227333091, 6.111300540354717e-10, 84.10954224371703], 'perf_time': 0.000879499999999922, 'numerosity': 134, 'population': 118, 'average_specificity': 1.8208955223880596, 'fraction_accuracy': 0.0679487179487463}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 4, 'reward': [8.74594577076916, 10.884098800013629, 25.889768443569437, 204.65755251390584, 48.76903375572345, 1053.063213985157, 6.111300540354717e-10, 45.06305163550296], 'perf_time': 0.0016804000000014696, 'numerosity': 134, 'population': 118, 'average_specificity': 1.8208955223880596, 'fraction_accuracy': 0.06726190476192442}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 7, 'reward': [24.986693987890142, 49.26630136542465, 27.18174134130933, 134.62747798103027, 36.514864636382576, 1071.3973384051615, 8.075851545671995, 59.39735582711603], 'perf_time': 0.0027048999999976786, 'numerosity': 134, 'population': 118, 'average_specificity': 1.8208955223880596, 'fraction_accuracy': 0.0685439560440993}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 3, 'reward': [23.97567197142644, 44.31293331314717, 19.165714117885184, 134.62747798103027, 53.52168791769506, 820.3321753395735, 8.075851545671995, 82.6511554687095], 'perf_time': 0.0010886999999968339, 'numerosity': 134, 'population': 118, 'average_specificity': 1.8208955223880596, 'fraction_accuracy': 0.026877289377284737}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 2, 'reward': [23.97567197142644, 40.84718479117312, 8.66620522904385, 134.62747798103027, 39.66964544473876, 778.953532151191, 8.075851545671995, 15.181207117578712], 'perf_time': 0.0007601000000008185, 'numerosity': 134, 'population': 118, 'average_specificity': 1.8208955223880596, 'fraction_accuracy': 0.02747252747252323}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 5, 'reward': [21.297692013632176, 40.84718479117312, 5.2537762852928385, 97.63510686010918, 26.99217914541423, 615.4196310161351, 14.536532781720688, 20.513549701491574], 'perf_time': 0.002010999999999541, 'numerosity': 134, 'population': 118, 'average_specificity': 1.8208955223880596, 'fraction_accuracy': 0.027472527472524818}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 4, 'reward': [23.724979036667914, 40.84718479117312, 20.683514804132844, 129.46331455027487, 18.400111214144626, 605.3573923048056, 14.536532781720688, 23.255033681216762], 'perf_time': 0.001657399999999143, 'numerosity': 134, 'population': 118, 'average_specificity': 1.8208955223880596, 'fraction_accuracy': 0.027472527472523118}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 11, 'reward': [0, 0, 0, 0, 0, 1.2019622988429165e-40, 1.1851334044990301e-40, 200.0], 'perf_time': 0.003836499999998466, 'numerosity': 54, 'population': 54, 'average_specificity': 1.8518518518518519, 'fraction_accuracy': 0.15595238095238093}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 7 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 7, 'reward': [7.050817170479077, 51.35742910891106, 1.4913217599317374, 16.334769247718167, 20.599747807030507, 11.1900075582631, 8.895505844283834, 444.23381747284975], 'perf_time': 0.002558199999999289, 'numerosity': 163, 'population': 122, 'average_specificity': 1.98159509202454, 'fraction_accuracy': 0.03357371794880558}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 3, 'reward': [6.82455884371202, 17.764536870675897, 17.07827215716629, 38.96505036732738, 21.68762484856501, 29.56183492338043, 33.838649451651875, 822.3659905726058], 'perf_time': 0.0012720000000001619, 'numerosity': 173, 'population': 122, 'average_specificity': 2.0115606936416186, 'fraction_accuracy': 0.024553571428661346}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 6, 'reward': [6.765968867137655, 15.678716810438932, 17.07827215716629, 90.95285765124949, 18.877447212862887, 66.40951418053483, 13.847286689946706, 904.8713908484843], 'perf_time': 0.002508800000001088, 'numerosity': 173, 'population': 122, 'average_specificity': 2.0115606936416186, 'fraction_accuracy': 0.024553571428682433}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 6, 'reward': [33.492209311173696, 9.51029557727736, 17.07827215716629, 18.268962032879042, 149.87981263268912, 23.996099986079457, 25.652759559788716, 1017.4697291854428], 'perf_time': 0.002245600000001957, 'numerosity': 173, 'population': 122, 'average_specificity': 2.0115606936416186, 'fraction_accuracy': 0.02455357142857056}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 1, 'reward': [9.368592436683663, 13.831023046231033, 20.091600139204814, 40.4027668847029, 26.12451277789618, 28.591539308219126, 34.28769679787054, 974.8115928842437], 'perf_time': 0.00041849999999854504, 'numerosity': 173, 'population': 122, 'average_specificity': 2.0115606936416186, 'fraction_accuracy': 0.024553571428571015}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 6, 'reward': [26.137869341588203, 20.13799180448773, 23.276635809608308, 19.82736890364005, 17.776057118452496, 70.19044192321975, 23.58406099656664, 830.4410728834522], 'perf_time': 0.0022418999999977984, 'numerosity': 195, 'population': 124, 'average_specificity': 2.005128205128205, 'fraction_accuracy': 0.015624999999999865}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 5, 'reward': [8.983373880832094, 17.472541601793342, 24.381646837161213, 8.799377599013194, 18.820994343570003, 40.65102324228965, 21.17885880876394, 829.7315394337685], 'perf_time': 0.002108500000002067, 'numerosity': 195, 'population': 124, 'average_specificity': 2.005128205128205, 'fraction_accuracy': 0.015624999999999856}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 2, 'reward': [14.367194638576123, 10.907132218443131, 24.381646837161213, 8.65858334515027, 19.881123781844558, 33.31181625153338, 20.979053398628743, 958.7819686529933], 'perf_time': 0.0007812000000022579, 'numerosity': 195, 'population': 124, 'average_specificity': 2.005128205128205, 'fraction_accuracy': 0.015624999999999972}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 2, 'reward': [18.145099849717667, 18.642524961854743, 24.381646837161213, 9.639976946474915, 43.90306364131999, 58.38599223032743, 28.700727406697723, 949.7985245285388], 'perf_time': 0.0007714999999990368, 'numerosity': 195, 'population': 124, 'average_specificity': 2.005128205128205, 'fraction_accuracy': 0.015624999999999315}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 1, 'reward': [0, 0, 0, 0, 0, 0, 0, 200.0], 'perf_time': 0.00032359999999798106, 'numerosity': 8, 'population': 8, 'average_specificity': 1.875, 'fraction_accuracy': 1.0}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 8 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 8, 'reward': [18.736529781786118, 11.913396486934719, 0, 30.717723542466242, 691.8752086670685, 3.2838565158669533, 3.409343821860514, 15.866770144617814], 'perf_time': 0.0033151000000017916, 'numerosity': 137, 'population': 120, 'average_specificity': 1.8394160583941606, 'fraction_accuracy': 0.03392857142887427}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 5, 'reward': [18.736529781786118, 16.510509303595338, 0, 28.49348462583757, 679.9134284951851, 101.20833245542056, 2.2410418904252403, 38.88134870622733], 'perf_time': 0.0021411000000028935, 'numerosity': 137, 'population': 120, 'average_specificity': 1.8394160583941606, 'fraction_accuracy': 0.03340773809554084}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 14, 'reward': [20.785810468226348, 17.960973453988828, 12.031974695997713, 51.59400425727998, 325.98890542311676, 58.33629559076577, 27.28619405888806, 140.45447486604405], 'perf_time': 0.005685999999997193, 'numerosity': 149, 'population': 120, 'average_specificity': 1.7986577181208054, 'fraction_accuracy': 0.027678571428873738}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 4, 'reward': [20.785810468226348, 5.292012834415812, 12.031974695997713, 38.37695596435788, 507.45490268563003, 9.298944606269961, 20.20512736327192, 0.9116576992423248], 'perf_time': 0.001492899999998798, 'numerosity': 152, 'population': 121, 'average_specificity': 1.7763157894736843, 'fraction_accuracy': 0.018750000000372035}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 2, 'reward': [20.785810468226348, 5.292012834415812, 30.019007897227475, 29.185793432202914, 654.7444486784883, 5.886516281826171, 52.18544557569314, 23.70319221987824], 'perf_time': 0.0007818000000021641, 'numerosity': 152, 'population': 121, 'average_specificity': 1.7763157894736843, 'fraction_accuracy': 0.01875000000037812}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 4, 'reward': [20.785810468226348, 5.292012834415812, 30.019007897227475, 32.70722443576763, 547.9974196380173, 18.94509769221444, 65.36361286953561, 42.04015696072348], 'perf_time': 0.0015065999999990254, 'numerosity': 152, 'population': 121, 'average_specificity': 1.7763157894736843, 'fraction_accuracy': 0.01794871794909643}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 3, 'reward': [20.785810468226348, 5.292012834415812, 21.519214650100544, 32.90134617971628, 622.8212886882997, 49.234168798494515, 25.53620464575449, 13.536341846156748], 'perf_time': 0.001130799999998544, 'numerosity': 156, 'population': 121, 'average_specificity': 1.7692307692307692, 'fraction_accuracy': 0.009615384615763759}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 8, 'reward': [20.785810468226348, 5.292012834415812, 21.519214650100544, 51.157512263027634, 436.1372813211557, 43.739464105191665, 28.70978905942192, 6.090935493641851], 'perf_time': 0.002938099999997945, 'numerosity': 156, 'population': 121, 'average_specificity': 1.7692307692307692, 'fraction_accuracy': 0.010416666667038128}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 3, 'reward': [20.785810468226348, 5.292012834415812, 21.519214650100544, 33.19776873674919, 700.8153124077123, 45.711726843832274, 55.515935125717746, 35.89652922586922], 'perf_time': 0.001122300000002241, 'numerosity': 156, 'population': 121, 'average_specificity': 1.7692307692307692, 'fraction_accuracy': 0.010416666667043186}\n", - "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 3, 'reward': [0, 0, 0, 0, 0, 0, 0, 200.0], 'perf_time': 0.0012460000000018567, 'numerosity': 24, 'population': 24, 'average_specificity': 2.0, 'fraction_accuracy': 0.3333333333333333}\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Executing 9 experiment\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 50, 'reward': [49.64988272360829, 6.910458938486178, 20.506485151779593, 44.693719724810784, 205.27147317118784, 36.7701543572808, 6.776176815378881, 12.293634247552266], 'perf_time': 0.018922199999998668, 'numerosity': 159, 'population': 118, 'average_specificity': 1.7547169811320755, 'fraction_accuracy': 0.03878205128203787}\n", - "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 50, 'reward': [138.1836512482537, 18.47780861030674, 14.822914691212842, 12.178831288191606, 18.095849567103222, 13.215662141814317, 46.83409656394794, 2.1072664981003806], 'perf_time': 0.018791100000001393, 'numerosity': 192, 'population': 122, 'average_specificity': 2.1197916666666665, 'fraction_accuracy': 0.02747252747259621}\n", - "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': [35.30733909029365, 22.723277947671765, 33.540814257910625, 28.238916349071093, 4.6207679133983, 38.09001244759268, 14.587293413118699, 37.30413351784412], 'perf_time': 0.019743000000005395, 'numerosity': 204, 'population': 124, 'average_specificity': 2.1470588235294117, 'fraction_accuracy': 0.03184523809543155}\n", - "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 5, 'reward': [38.179443950906936, 22.55400409493644, 29.603342548043884, 49.32222329032125, 10.62145920925237, 617.0352971705537, 6.837231933599023, 74.16134866692934], 'perf_time': 0.0018693999999968014, 'numerosity': 206, 'population': 124, 'average_specificity': 2.1262135922330097, 'fraction_accuracy': 0.0317307692308559}\n", - "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 5, 'reward': [38.173476791948396, 20.041833787799597, 15.617922508696738, 28.37808369201675, 10.960880724571172, 659.1589380039866, 8.686270418586819, 30.007653260058127], 'perf_time': 0.0018815999999972632, 'numerosity': 206, 'population': 124, 'average_specificity': 2.1262135922330097, 'fraction_accuracy': 0.03333333333333956}\n", - "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 5, 'reward': [36.35198802169208, 20.041833787799597, 18.17047698618772, 29.738781459381904, 8.856403533804082, 685.4444910216769, 6.497511918959849, 26.15536210082226], 'perf_time': 0.001930699999995511, 'numerosity': 206, 'population': 124, 'average_specificity': 2.1262135922330097, 'fraction_accuracy': 0.033333333333398524}\n", - "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 6, 'reward': [70.20934835153803, 20.041833787799597, 18.17047698618772, 66.60825801303548, 43.022475226553944, 551.698140107593, 20.915991364002057, 38.95988614104239], 'perf_time': 0.002253000000003169, 'numerosity': 206, 'population': 124, 'average_specificity': 2.1262135922330097, 'fraction_accuracy': 0.03428030303040189}\n", - "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 5, 'reward': [32.052564229716204, 13.524090570952175, 18.17047698618772, 28.61488446970534, 35.67324531893883, 552.8673839475117, 17.103521773041372, 41.66610323155069], 'perf_time': 0.0018868000000011875, 'numerosity': 206, 'population': 124, 'average_specificity': 2.1262135922330097, 'fraction_accuracy': 0.03566919191932198}\n", - "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 1, 'reward': [121.75353860561464, 16.691972920245803, 17.389943955018218, 41.50731135117474, 35.67324531893883, 727.6134674308554, 19.096749205706338, 74.4946967886544], 'perf_time': 0.0004731999999947334, 'numerosity': 206, 'population': 124, 'average_specificity': 2.1262135922330097, 'fraction_accuracy': 0.034722222222383164}\n" + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 18, 'reward': 1003.2398142073862, 'perf_time': 0.15925530000004073, 'numerosity': 1411, 'population': 791, 'average_specificity': 17.42806520198441, 'fraction_accuracy': 0.016666666666666666}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 6, 'reward': 1128.3696637361093, 'perf_time': 0.09762419999970007, 'numerosity': 1800, 'population': 1021, 'average_specificity': 15.462777777777777, 'fraction_accuracy': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 24, 'reward': 1000.6925982767643, 'perf_time': 0.3459408999997322, 'numerosity': 1800, 'population': 1150, 'average_specificity': 17.066111111111113, 'fraction_accuracy': 0.008333333333333333}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 6, 'reward': 1128.1003257966674, 'perf_time': 0.15353270000014163, 'numerosity': 1800, 'population': 1133, 'average_specificity': 18.805, 'fraction_accuracy': 0.0}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 2, 'reward': 1684.8606407941643, 'perf_time': 0.0306470000000445, 'numerosity': 1800, 'population': 1185, 'average_specificity': 19.858333333333334, 'fraction_accuracy': 0.135}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 11, 'reward': 1023.1210432116683, 'perf_time': 0.17080499999974563, 'numerosity': 1800, 'population': 1212, 'average_specificity': 17.901666666666667, 'fraction_accuracy': 0.125}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 21, 'reward': 1000.7612725903338, 'perf_time': 0.32511850000037157, 'numerosity': 1800, 'population': 1252, 'average_specificity': 20.461111111111112, 'fraction_accuracy': 0.1482919254658385}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 12, 'reward': 1028.0693780024117, 'perf_time': 0.17464179999979024, 'numerosity': 1800, 'population': 1245, 'average_specificity': 21.549444444444443, 'fraction_accuracy': 0.125}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 9, 'reward': 1069.0131524571857, 'perf_time': 0.11505570000008447, 'numerosity': 1800, 'population': 1268, 'average_specificity': 17.72, 'fraction_accuracy': 0.026041666666666668}\n", + "INFO:lcs.agents.Agent:{'trial': 0, 'steps_in_trial': 2, 'reward': 1504.100104488066, 'perf_time': 0.01864179999984117, 'numerosity': 1800, 'population': 1320, 'average_specificity': 18.363333333333333, 'fraction_accuracy': 0.1431818181818182}\n", + "INFO:lcs.agents.Agent:{'trial': 100, 'steps_in_trial': 5, 'reward': 1271.391525386314, 'perf_time': 0.06938970000010158, 'numerosity': 1800, 'population': 1331, 'average_specificity': 19.087777777777777, 'fraction_accuracy': 0.3760321100917431}\n", + "INFO:lcs.agents.Agent:{'trial': 200, 'steps_in_trial': 2, 'reward': 1684.523501144618, 'perf_time': 0.019588800000292395, 'numerosity': 1800, 'population': 1336, 'average_specificity': 19.194444444444443, 'fraction_accuracy': 0.30544354838709675}\n", + "INFO:lcs.agents.Agent:{'trial': 300, 'steps_in_trial': 50, 'reward': 1.6756096877070914e-12, 'perf_time': 0.6417199999996228, 'numerosity': 1800, 'population': 1350, 'average_specificity': 20.960555555555555, 'fraction_accuracy': 0.28409090909090906}\n", + "INFO:lcs.agents.Agent:{'trial': 400, 'steps_in_trial': 50, 'reward': 1.3360875076982224e-12, 'perf_time': 0.6339357000001655, 'numerosity': 1800, 'population': 1330, 'average_specificity': 19.726111111111113, 'fraction_accuracy': 0.26973684210526316}\n", + "INFO:lcs.agents.Agent:{'trial': 500, 'steps_in_trial': 1, 'reward': 1867.265115990726, 'perf_time': 0.00963499999988926, 'numerosity': 1800, 'population': 1329, 'average_specificity': 20.177777777777777, 'fraction_accuracy': 0.3787878787878788}\n", + "INFO:lcs.agents.Agent:{'trial': 600, 'steps_in_trial': 1, 'reward': 2460.657864708448, 'perf_time': 0.011019800000212854, 'numerosity': 1800, 'population': 1345, 'average_specificity': 20.835555555555555, 'fraction_accuracy': 0.3538812785388128}\n", + "INFO:lcs.agents.Agent:{'trial': 700, 'steps_in_trial': 3, 'reward': 1672.367205235479, 'perf_time': 0.03802749999977095, 'numerosity': 1800, 'population': 1360, 'average_specificity': 20.52, 'fraction_accuracy': 0.27781329923273657}\n", + "INFO:lcs.agents.Agent:{'trial': 800, 'steps_in_trial': 1, 'reward': 1800.1126140573117, 'perf_time': 0.020959200000106648, 'numerosity': 1800, 'population': 1350, 'average_specificity': 19.385555555555555, 'fraction_accuracy': 0.2811866125760649}\n", + "INFO:lcs.agents.Agent:{'trial': 900, 'steps_in_trial': 1, 'reward': 2399.910796806107, 'perf_time': 0.008633800000097835, 'numerosity': 1800, 'population': 1358, 'average_specificity': 19.255555555555556, 'fraction_accuracy': 0.30245535714285715}\n" ] } ], "source": [ - "\n", "df = avg_experiment(maze=maze,\n", " cfg=cfg,\n", - " number_of_tests=10,\n", - " trials=1000)\n" + " number_of_tests=1,\n", + " explore_trials=1000,\n", + " exploit_trials=1000)\n" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -348,6 +156,7 @@ " \n", " \n", " steps_in_trial\n", + " reward\n", " perf_time\n", " numerosity\n", " population\n", @@ -362,243 +171,264 @@ " \n", " \n", " \n", + " \n", " \n", " \n", " \n", " \n", " 0\n", - " 13.7\n", - " 0.005230\n", - " 51.9\n", - " 50.9\n", - " 2.066446\n", - " 0.259619\n", + " 39\n", + " 1.000000e+03\n", + " 0.024737\n", + " 90\n", + " 86\n", + " 9.311111\n", + " 0.041667\n", " \n", " \n", - " 50\n", - " 22.8\n", - " 0.010397\n", - " 142.3\n", - " 120.6\n", - " 2.081385\n", - " 0.053213\n", + " 100\n", + " 18\n", + " 1.003240e+03\n", + " 0.159255\n", + " 1411\n", + " 791\n", + " 17.428065\n", + " 0.016667\n", " \n", " \n", - " 100\n", - " 19.4\n", - " 0.007523\n", - " 157.9\n", - " 121.5\n", - " 2.039346\n", - " 0.045706\n", + " 200\n", + " 6\n", + " 1.128370e+03\n", + " 0.097624\n", + " 1800\n", + " 1021\n", + " 15.462778\n", + " 0.000000\n", " \n", " \n", - " 150\n", - " 20.0\n", - " 0.007923\n", - " 165.4\n", - " 122.2\n", - " 2.076295\n", - " 0.035817\n", + " 300\n", + " 24\n", + " 1.000693e+03\n", + " 0.345941\n", + " 1800\n", + " 1150\n", + " 17.066111\n", + " 0.008333\n", " \n", " \n", - " 200\n", - " 12.2\n", - " 0.004826\n", - " 166.9\n", - " 122.5\n", - " 2.070714\n", - " 0.034720\n", + " 400\n", + " 6\n", + " 1.128100e+03\n", + " 0.153533\n", + " 1800\n", + " 1133\n", + " 18.805000\n", + " 0.000000\n", " \n", " \n", - " 250\n", - " 13.9\n", - " 0.005737\n", - " 168.5\n", - " 122.7\n", - " 2.076916\n", - " 0.039040\n", + " 500\n", + " 2\n", + " 1.684861e+03\n", + " 0.030647\n", + " 1800\n", + " 1185\n", + " 19.858333\n", + " 0.135000\n", " \n", " \n", - " 300\n", - " 22.4\n", - " 0.009067\n", - " 172.8\n", - " 122.8\n", - " 2.057527\n", - " 0.035501\n", + " 600\n", + " 11\n", + " 1.023121e+03\n", + " 0.170805\n", + " 1800\n", + " 1212\n", + " 17.901667\n", + " 0.125000\n", " \n", " \n", - " 350\n", - " 5.3\n", - " 0.002161\n", - " 175.3\n", - " 123.0\n", - " 2.041395\n", - " 0.030666\n", + " 700\n", + " 21\n", + " 1.000761e+03\n", + " 0.325119\n", + " 1800\n", + " 1252\n", + " 20.461111\n", + " 0.148292\n", " \n", " \n", - " 400\n", - " 3.0\n", - " 0.001184\n", - " 176.1\n", - " 123.0\n", - " 2.033453\n", - " 0.030513\n", + " 800\n", + " 12\n", + " 1.028069e+03\n", + " 0.174642\n", + " 1800\n", + " 1245\n", + " 21.549444\n", + " 0.125000\n", " \n", " \n", - " 450\n", - " 7.8\n", - " 0.003106\n", - " 176.1\n", - " 123.0\n", - " 2.033453\n", - " 0.032513\n", + " 900\n", + " 9\n", + " 1.069013e+03\n", + " 0.115056\n", + " 1800\n", + " 1268\n", + " 17.720000\n", + " 0.026042\n", " \n", " \n", - " 500\n", - " 4.0\n", - " 0.001590\n", - " 176.9\n", - " 123.1\n", - " 2.040648\n", - " 0.026641\n", + " 1000\n", + " 2\n", + " 1.504100e+03\n", + " 0.018642\n", + " 1800\n", + " 1320\n", + " 18.363333\n", + " 0.143182\n", " \n", " \n", - " 550\n", - " 3.4\n", - " 0.001455\n", - " 176.9\n", - " 123.1\n", - " 2.040648\n", - " 0.025052\n", + " 1100\n", + " 5\n", + " 1.271392e+03\n", + " 0.069390\n", + " 1800\n", + " 1331\n", + " 19.087778\n", + " 0.376032\n", " \n", " \n", - " 600\n", - " 3.9\n", - " 0.001512\n", - " 179.5\n", - " 123.3\n", - " 2.036652\n", - " 0.025535\n", + " 1200\n", + " 2\n", + " 1.684524e+03\n", + " 0.019589\n", + " 1800\n", + " 1336\n", + " 19.194444\n", + " 0.305444\n", " \n", " \n", - " 650\n", - " 3.4\n", - " 0.001368\n", - " 179.5\n", - " 123.3\n", - " 2.036652\n", - " 0.028255\n", + " 1300\n", + " 50\n", + " 1.675610e-12\n", + " 0.641720\n", + " 1800\n", + " 1350\n", + " 20.960556\n", + " 0.284091\n", " \n", " \n", - " 700\n", - " 3.3\n", - " 0.001318\n", - " 181.9\n", - " 123.6\n", - " 2.044400\n", - " 0.023228\n", + " 1400\n", + " 50\n", + " 1.336088e-12\n", + " 0.633936\n", + " 1800\n", + " 1330\n", + " 19.726111\n", + " 0.269737\n", " \n", " \n", - " 750\n", - " 4.7\n", - " 0.001836\n", - " 182.7\n", - " 123.6\n", - " 2.037064\n", - " 0.028790\n", + " 1500\n", + " 1\n", + " 1.867265e+03\n", + " 0.009635\n", + " 1800\n", + " 1329\n", + " 20.177778\n", + " 0.378788\n", " \n", " \n", - " 800\n", - " 6.0\n", - " 0.002455\n", - " 183.7\n", - " 123.9\n", - " 2.032797\n", - " 0.024835\n", + " 1600\n", + " 1\n", + " 2.460658e+03\n", + " 0.011020\n", + " 1800\n", + " 1345\n", + " 20.835556\n", + " 0.353881\n", " \n", " \n", - " 850\n", - " 4.1\n", - " 0.001654\n", - " 183.7\n", - " 123.9\n", - " 2.032797\n", - " 0.024593\n", + " 1700\n", + " 3\n", + " 1.672367e+03\n", + " 0.038027\n", + " 1800\n", + " 1360\n", + " 20.520000\n", + " 0.277813\n", " \n", " \n", - " 900\n", - " 4.0\n", - " 0.001644\n", - " 184.8\n", - " 124.0\n", - " 2.026479\n", - " 0.024945\n", + " 1800\n", + " 1\n", + " 1.800113e+03\n", + " 0.020959\n", + " 1800\n", + " 1350\n", + " 19.385556\n", + " 0.281187\n", " \n", " \n", - " 950\n", - " 2.9\n", - " 0.001219\n", - " 185.8\n", - " 124.0\n", - " 2.021963\n", - " 0.025245\n", + " 1900\n", + " 1\n", + " 2.399911e+03\n", + " 0.008634\n", + " 1800\n", + " 1358\n", + " 19.255556\n", + " 0.302455\n", " \n", " \n", "\n", "" ], "text/plain": [ - " steps_in_trial perf_time numerosity population average_specificity \\\n", - "trial \n", - "0 13.7 0.005230 51.9 50.9 2.066446 \n", - "50 22.8 0.010397 142.3 120.6 2.081385 \n", - "100 19.4 0.007523 157.9 121.5 2.039346 \n", - "150 20.0 0.007923 165.4 122.2 2.076295 \n", - "200 12.2 0.004826 166.9 122.5 2.070714 \n", - "250 13.9 0.005737 168.5 122.7 2.076916 \n", - "300 22.4 0.009067 172.8 122.8 2.057527 \n", - "350 5.3 0.002161 175.3 123.0 2.041395 \n", - "400 3.0 0.001184 176.1 123.0 2.033453 \n", - "450 7.8 0.003106 176.1 123.0 2.033453 \n", - "500 4.0 0.001590 176.9 123.1 2.040648 \n", - "550 3.4 0.001455 176.9 123.1 2.040648 \n", - "600 3.9 0.001512 179.5 123.3 2.036652 \n", - "650 3.4 0.001368 179.5 123.3 2.036652 \n", - "700 3.3 0.001318 181.9 123.6 2.044400 \n", - "750 4.7 0.001836 182.7 123.6 2.037064 \n", - "800 6.0 0.002455 183.7 123.9 2.032797 \n", - "850 4.1 0.001654 183.7 123.9 2.032797 \n", - "900 4.0 0.001644 184.8 124.0 2.026479 \n", - "950 2.9 0.001219 185.8 124.0 2.021963 \n", + " steps_in_trial reward perf_time numerosity population \\\n", + "trial \n", + "0 39 1.000000e+03 0.024737 90 86 \n", + "100 18 1.003240e+03 0.159255 1411 791 \n", + "200 6 1.128370e+03 0.097624 1800 1021 \n", + "300 24 1.000693e+03 0.345941 1800 1150 \n", + "400 6 1.128100e+03 0.153533 1800 1133 \n", + "500 2 1.684861e+03 0.030647 1800 1185 \n", + "600 11 1.023121e+03 0.170805 1800 1212 \n", + "700 21 1.000761e+03 0.325119 1800 1252 \n", + "800 12 1.028069e+03 0.174642 1800 1245 \n", + "900 9 1.069013e+03 0.115056 1800 1268 \n", + "1000 2 1.504100e+03 0.018642 1800 1320 \n", + "1100 5 1.271392e+03 0.069390 1800 1331 \n", + "1200 2 1.684524e+03 0.019589 1800 1336 \n", + "1300 50 1.675610e-12 0.641720 1800 1350 \n", + "1400 50 1.336088e-12 0.633936 1800 1330 \n", + "1500 1 1.867265e+03 0.009635 1800 1329 \n", + "1600 1 2.460658e+03 0.011020 1800 1345 \n", + "1700 3 1.672367e+03 0.038027 1800 1360 \n", + "1800 1 1.800113e+03 0.020959 1800 1350 \n", + "1900 1 2.399911e+03 0.008634 1800 1358 \n", "\n", - " fraction_accuracy \n", - "trial \n", - "0 0.259619 \n", - "50 0.053213 \n", - "100 0.045706 \n", - "150 0.035817 \n", - "200 0.034720 \n", - "250 0.039040 \n", - "300 0.035501 \n", - "350 0.030666 \n", - "400 0.030513 \n", - "450 0.032513 \n", - "500 0.026641 \n", - "550 0.025052 \n", - "600 0.025535 \n", - "650 0.028255 \n", - "700 0.023228 \n", - "750 0.028790 \n", - "800 0.024835 \n", - "850 0.024593 \n", - "900 0.024945 \n", - "950 0.025245 " + " average_specificity fraction_accuracy \n", + "trial \n", + "0 9.311111 0.041667 \n", + "100 17.428065 0.016667 \n", + "200 15.462778 0.000000 \n", + "300 17.066111 0.008333 \n", + "400 18.805000 0.000000 \n", + "500 19.858333 0.135000 \n", + "600 17.901667 0.125000 \n", + "700 20.461111 0.148292 \n", + "800 21.549444 0.125000 \n", + "900 17.720000 0.026042 \n", + "1000 18.363333 0.143182 \n", + "1100 19.087778 0.376032 \n", + "1200 19.194444 0.305444 \n", + "1300 20.960556 0.284091 \n", + "1400 19.726111 0.269737 \n", + "1500 20.177778 0.378788 \n", + "1600 20.835556 0.353881 \n", + "1700 20.520000 0.277813 \n", + "1800 19.385556 0.281187 \n", + "1900 19.255556 0.302455 " ] }, "metadata": {}, - "output_type": "execute_result" + "output_type": "display_data" } ], "source": [ @@ -607,22 +437,22 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 6, + "execution_count": 10, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYkAAAEGCAYAAACQO2mwAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA7jElEQVR4nO3deXiU5dX48e/JvickgZCEJYCssm9BUFvFqqAV11brVvurVsWqfW3du9pa21oVX/e9vC6ta6WIuFIVFTCgsssSlgQCBJJAIHtyfn/MDA4hk2SSWTKT87muuZKZZ5nzjDgnz33f575FVTHGGGNaEhHsAIwxxnRdliSMMcZ4ZEnCGGOMR5YkjDHGeGRJwhhjjEdRwQ7AlzIzMzUvLy/YYRhjTEhZvnz5XlXt2dK2sEoSeXl5FBQUBDsMY4wJKSKyzdM2a24yxhjjkSUJY4wxHlmSMMYY41FY9UkYY8JHfX09xcXF1NTUBDuUsBEXF0efPn2Ijo5u9zGWJIwxXVJxcTHJycnk5eUhIsEOJ+SpKvv27aO4uJgBAwa0+zhrbjLGdEk1NTVkZGRYgvARESEjI8PrOzNLEsaYLssShG915PO0JOEj//l6J3sOWNupMSa8WJLwgU17DvLzl77kxWXbgx2KMSYEzJw5k4qKCgAefPBBhg8fzsUXX8y8efO45557Wj126tSpAGzdupUXX3zR36Fax7UvLFxdAsCO8uogR2KMCQULFiw4/PsjjzzC22+/fbgz+ayzzmr12M8++wz4Nkn86Ec/8l+g+PlOQkT6isgiEVknImtE5IYW9hEReVBENonIShEZ77btF87jVovISyIS5894O2rhml0AlOy35iZjwsWhQ4c444wzGDNmDCNHjuRf//oXeXl53HLLLUyePJnJkyezadMmAEpLSznvvPOYNGkSkyZN4tNPPwXg4MGDXHHFFYwaNYrRo0fz2muvAY4phPbu3cvVV19NYWEhZ511Fvfffz/PPfcc1113HQC7d+/mnHPOYcyYMYwZM+ZwckhKSgLg1ltv5ZNPPmHs2LHcf//9nHDCCXz11VeH4582bRorV67s9Ofg7zuJBuAmVV0hIsnAchF5T1XXuu0zAxjsfOQDjwL5IpILXA+MUNVqEXkZuBB4zs8xe6WorIrVOw4gAjsr7E7CGH/4/X/WsHbnAZ+ec0ROCr/9/rEety9cuJCcnBzeeustAPbv388tt9xCSkoKy5YtY+7cudx4443Mnz+fG264gV/84hccf/zxbN++ndNOO41169Zx1113kZqayqpVqwAoLy8/4j0ee+wxFi5cyKJFi8jMzOS55547vO3666/nO9/5Dm+88QaNjY0cPHjwiGPvuece7r33XubPnw9Aeno6zz33HA888AAbNmygtraW0aNHd/pz8uudhKqWqOoK5++VwDogt9lus4C56rAESBORbOe2KCBeRKKABGCnP+PtiHecdxGnDM9i5/5qbM1wY8LDqFGjeP/997nlllv45JNPSE1NBeCiiy46/PPzzz8H4P333+e6665j7NixnHXWWRw4cIDKykref/99Zs+efficPXr0aPf7f/jhh1xzzTUAREZGHn5/Ty644ALmz59PfX09zzzzDD/+8Y+9uVyPAtYnISJ5wDhgabNNuUCR2/NiIFdVC0TkXmA7UA28q6rvtnDeq4CrAPr16+eHyFv39updjMhOYcrADN5bu5uKqnp6JMYEPA5jwllrf/H7y5AhQ1i+fDkLFizgtttu49RTTwWOHEbq+r2pqYnPP/+c+Pj4I86hqgEbxpuQkMD3vvc93nzzTV5++WWfzYgdkNFNIpIEvAbcqKrN7xlb+gRVRHrguMsYAOQAiSJyyVE7qj6hqhNVdWLPni1Oh+43ew7UsHxbOaeP7E1OqqO7ZIc1ORkTFnbu3ElCQgKXXHIJv/zlL1mxYgUA//rXvw7/PO644wA49dRTeeihhw4f6+obaP568+am1kyfPp1HH30UgMbGRg4cOPKrMzk5mcrKyiNe++lPf8r111/PpEmTSE9Pb/d7tcbvSUJEonEkiBdU9fUWdikG+ro974OjWekUYIuqlqpqPfA6MNXf8XrD1dQ0Y2RvstMcf0FY57Ux4WHVqlVMnjyZsWPH8qc//Yk777wTgNraWvLz85kzZw73338/4BjGWlBQwOjRoxkxYgSPPfYYAHfeeSfl5eWMHDmSMWPGsGjRona//5w5c1i0aBGjRo1iwoQJrFmz5ojto0ePJioqijFjxhyOY8KECaSkpHDFFVf44iNwUFW/PXDcJcwFHmhlnzOAt537TgGWOV/PB9bg6IsQ4B/Az1t7vwkTJmgg/ejJz/WkexdpU1OT7j5Qrf1vma//+GxLQGMwJlytXbs22CEcpX///lpaWhrsMDzasWOHDh48WBsbGz3u09LnChSoh+9Vf99JTAMuBU4Wka+cj5kicrWIXO3cZwFQCGwCngSudSavpcCrwApgFY67nif8HG+7lR+qY0lhGTNG9kZEyEyMJTpSrLnJGBMUc+fOJT8/nz/96U9ERPjuq92vHdequpiW+xzc91FgtodtvwV+64fQOu29dbtpbFJOP9YxECsiQuidGkdJhTU3GROutm7dGuwQPLrsssu47LLLfH5em5ajgxau3kVuWjwjc1MOv5aTGk/JfruTMMZX1IaU+1RHPk9LEh1QWVPP4o17Od3Z1OSSkxbPTruTMMYn4uLi2LdvnyUKH1HnehJxcd5NXGFzN3XAh+v3UNfYxIyRvY94PTs1jl0HamhsUiIjbIpjYzqjT58+FBcXU1paGuxQwoZrZTpvWJLogHfW7KJncizj+x1ZPZmTFk9jk1JaWUvv1C45zZRfqCqP/Hczxx+TyZi+acEOx4SJ6Ohor1ZQM/5hzU1eqq5rZNH6Uk47NouIZncLOWnds6Du8Y8L+ds73/DEx4XBDsUY42OWJLz08cZSqusbD49qcped6iqoC3ySeH7JNtbv8u0EaO3x2ea9/HXheqIihKVbrP3YmHBjScJLC1fvIi0hmvyBR5e857iqrgPceX2otoE7/72aS55aRlFZVcDed9f+Gq5/6UsGZCZy28zh7D1Yx+bSg20faIwJGZYkvFDX0MT763ZzyvAsoiOP/uhS4qJIjIkMeHNTUbkjMew9WMtPnvuC/dX1fn/PuoYmrn1hOVV1jTx+6QROGd4LgM8Ly/z+3saYwLEk4YXPNu+lsqbhqFFNLiJCdlrgayW273MkiVtnDGPrvkNc+8Jy6hqa/Pqedy9Yx4rtFfz1/NEc0yuZfukJZKfGsbRwn1/f1xgTWJYkvLBw9S4SYyKZdkymx31y0uIDPslfkXPZ1Asm9OHP547m0037uOONVX7rH3jzqx0899lWfjJtAGeOzgEcCTJ/QDpLCsusX8KYMGJJop0am5R31+7m5OFZxEVHetwvJzUu4CvUFZVVkRgTSXpiDOdP6MP10wfzyvJiHl60yefvtWF3Jbe+topJeT24beawI7ZNGZjB3oO1FO495PP3NcYEhyWJdlq2pYyyQ3WcfmzLTU0u2anx7D1YR21DY4AicySJvukJh6u/f3HKYM4Zl8u9727gza92+Ox9Kmvqufr/lpMYG8VDPxp/VL9M/sAMAJZYk5MxYcOSRDu9s2YXsVERfHdo6wsbuWoldgWwyamo3JEkXESEe84bxeQB6fzqlZV8sbXzncmqys2vrmRbWRUP/WgcWSlHFwvmZSSQlRLLEuu8NiZsWJJoh6YmZeHqXZw4pCeJsa0XqbuGwQZqhJOqUlRWTd8eCUe8HhsVyROXTqBPj3iunFvAlk42AT31yRbeXr2LW04fyhTnHUNzjn6JDJYWWr2EMeHCkkQ7fF1cwa4DNR5HNbnLdk7HEahaib0H66iub6RvevxR29ISYnj2iklEiHDFs8soO1TXofdYWriPexauZ8bI3lx5wsBW950yMIM9lbWdTkrGmK7BkkQ7LFy9i6gIYfqwrDb3PVxQF6BhsK4aiX7pCS1u75+RyJOXTWDn/hqumltATb13fSV7DtQw+8Uv6Z+RwF/PH93mou5TnEWGS7dYk5Mx4cCSRBtUlYVrdjH1mExSE6Lb3D8u2jHKaGeA+iRcFdZ9PSQJgAn907n/B2Mp2FbOr15dSVNT+5qC6hubmP3iCg7VNvDYJRNIjmv7+gdkJtIzOdY6r40JE5Yk2rCupJJt+6raHNXkLjuAw2BdSaJPj6Obm9ydMTqbW04fxn++3snf3/umXee+5+31fLG1nHvOG8WQrOR2HSMiTBmYwRLrlzAmLFiSaMPCNbsQgVOPbbupySUnLT5gfRJFZdVkJsWSENP2rO9Xf2cgF03uy8OLNvPyF0Wt7jt/5U6eXryFH0/NY9bYXK9iyh+Qzu4DtWzbF7h5pIwx/mFJog0LV5cwKS+dzKTYdh+TkxrHzgD1SWwvq2qx07olIsIfZo3khMGZ3P7GKhZv3Nvifpv2VHLLqysZ3y+N22cO9zqmKVYvYUzYsCTRis2lB9mw+2C7RjW5y06Lp7Kmgcoa/0+0V1ReddTw19ZER0bw8MXjGdQziWueX86G3ZVHbD9U28DVz68gPiaSRy6eQEyU9/9EBvVMJDMp1jqvjQkDliRasXD1LgBO86I/AtxHOPm3yam+sYmS/TUeRzZ5khIXzTNXTCIuJpIrnv2CPZWOOFWVm19bSWHpQR68aFyHV9cTEfIHplu/hDFhwJJEK95Zs4sxfdMOf+m3V47zy9XfndclFY71tNvb3OQuNy2eZy6fRNmhOn76jwKq6hp49tOtvLWyhF+dNoypgzxPYtgeUwZmULK/hu0BXN/CGON7liQ8KC6vYmXxfq9GNblkO5PKTj93XrtqJFob/tqaUX1S+d+LxrF6x34ue3oZdy9Yx6kjsrj6O60XzLXHlAHOegmbosOYkObXJCEifUVkkYisE5E1InJDC/uIiDwoIptEZKWIjHe+PlREvnJ7HBCRG/0Zr7t31uwG8Lo/AiArOZYI8X9B3eEaCS/6JJo7ZUQWvzlzBAXbyumbnsC9PxjTZsFcexzTK4mMxBjrvDYmxLU9brJzGoCbVHWFiCQDy0XkPVVd67bPDGCw85EPPArkq+o3wFgAEYkEdgBv+DnewxauLmFY72TyMhO9PjYqMoKslDi/30lsL6siMkIOTwXSUT+eNoCslDhG5qaS0o6CufZw9Uss3eJYX8IXiccYE3h+vZNQ1RJVXeH8vRJYBzQfdD8LmKsOS4A0Ecluts90YLOqbvNnvC57Kmso2FbO6R24i3AJREFdUXk1uWnxRLWwlKq3ZozK7nCzlSdTBmawo6Ka4vLArq9hjPGdgPVJiEgeMA5Y2mxTLuBe2VXM0YnkQuAlD+e9SkQKRKSgtLTUJ7G+u2Y3qjBjZPNc1X45AVjGtMiLGolgyB9g9RLGhLqAJAkRSQJeA25U1QPNN7dwyOFxkyISA5wFvNLSuVX1CVWdqKoTe/Zsfa2H9npnzS4GZCYyJCupw+fISYtn5/4avw4BLSrzrkYi0Ab3SiI9McbWlzAmhPk9SYhINI4E8YKqvt7CLsVAX7fnfYCdbs9nACtUdbf/ovxWRVUdn2/ex+kje3eqHT07NY66hib2dXB67rYcqm1g36E6nzcR+VJEhGvda7uTMCZU+Xt0kwBPA+tU9T4Pu80DLnOOcpoC7FfVErftF+Ghqckf3lu7m4Ym7dDQV3fZqc6COj91Xnd2+Gug5A9IZ0dF9eGRWMaY0OLvO4lpwKXAyW5DWWeKyNUicrVznwVAIbAJeBK41nWwiCQA3wNaugPxi3fW7CInNY7RfVI7dZ5cV62En/olisoc5/W22jrQpgxy9EvYFB3GhCa/DoFV1cW03Ofgvo8Csz1sqwJaXivTDw7WNvDxxr1cnN+v00M2s9P8W3X9bY1E1+24BhjSK5m0hGiWFu7j/Al9gh2OMcZLVnHtZtH6PdQ1NHVqVJNLRmIMMVERfpu/aXtZFQkxjgWOurLD/RJbrF/CmFBkScLNwtW7yEyKYUL/Hp0+l4g4pgz3051EcXkV/dITQqJILX9ABkVl1ewI0EJMxhjfsSThVFPfyKJv9nDqsb2JjPDNF292arwfm5uq6dOFh7+6c60vsdRGORkTcixJOH28oZSqusZOj2pyl50W55fmJlX1arGhYBvWO5nU+GgbCmtMCLIk4bRwzS5S4qI4bpDv+slz0+LZfaCGhsYmn50TYN+hOqrrG7v8yCaXiAhh8oB0G+FkTAiyJAHUNTTx/trdnDIii2gfzIPkkp0aT5PC7span50TfDP7a6BNGZjBtn1Vfp+qxBjjW5YkgAM19ZwwpCdnjcnx6Xldw2BLfNwv4VrIp6sX0rnLt/UljAlJliSAzKRYHv7ReL47tJdPz/ttQZ1v+yVcs6qGSp8EwPDsFFLioqxfwpgQY0nCj7L9tIzp9n1VZCbFkBDj7+VAfCfS2S9hScKY0NLuJCEi6f4MJBwlx0WTHBvl8+amovKqkGpqcpkyMIOt+6rY5acCQ2OM73lzJ7FURF5xzr3U9Su4ugjXlOG+VFTetacI98S1vsRSq742JmR4kySGAE/gmLBvk4jcLSJD/BNW+HDUSvjuTqKhsYmdFTUh1R/hMiInheTYKFtfwpgQ0u4k4Vxe9D1VvQj4KXA5sExEPhKR4/wWYYhzVF377k6iZH8NjU0aMjUS7lz9ElZ5bUzo8KZPIkNEbhCRAuCXwM+BTOAm4EU/xRfyctPiKDtUR019o0/OF4o1Eu7yB6ZTuPcQew5Yv4QxocCb5qbPgRTgbFU9Q1VfV9UGVS0AHvNPeKHv8OJDPuqXCMUaCXeueZyWWPW1MSHBmyRxp6reparFrhdE5AIAVf2LzyMLE75eV6KovIrICDk8vDbUjMhOISnW6iWMCRXeJIlbW3jtNl8FEq4OF9T5KkmUVZOTFkeUD6cPCaSoyAgm5fWwfgljQkSb1VgiMgOYCeSKyINum1KABn8FFi56O//i92VzUyh2WrvLH5jBom9K2VNZQ6/k0LwjMqa7aM+fozuBAqAGWO72mAec5r/QwkNsVCSZSTE+u5MoDtEaCXeufoll1i9hTJfX5p2Eqn4NfC0iL6iq3Tl0gK8K6g7VNrD3YF3Idlq7jMxJITEmkiWF+zhztG8nVTTG+FZ7mpteVtUfAF+KiDbfrqqj/RJZGMlOjaOw9FCnz/PtxH6hnSSiIiOYmJduRXXGhID2zBB3g/Pnmf4MJJxlp8azeONeVLVTa1J/WyMRetXWzU0ZmMFfFq5n78FaMpNigx2OMcaDNvskVLXEbd/dqrpNVbcBewCbw6kdctPiOVTXyIGazrXWhXqNhLv8gba+hDGhwJtxlK8A7utwNjpfM204vPhQJ+dwKiqvIiEmkozEGF+EFVSjclNJiIm0yf6M6eK8SRJRqlrneuL8vdVvKxHpKyKLRGSdiKwRkRta2EdE5EER2SQiK0VkvNu2NBF5VUTWO88RknNEuaquOzvCqaismr49EjrVZNVVREdGMKF/DyuqM6aL8yZJlIrIWa4nIjIL2NvGMQ3ATao6HJgCzBaREc32mQEMdj6uAh512zYHWKiqw4AxwDov4u0yvi2o69wIp6KyqpCc/dWTKQMz2LD7IPsO+nYNcGOM73iTJK4GbheR7SJSBNwC/Ky1A1S1RFVXOH+vxPEln9tst1nAXOcss0uANBHJFpEU4ETgaefxdapa4UW8XUbP5FiiIqRTzU2qGrKLDXli9RLGdH3eTBW+WVWnACOAEao6VVU3tfd4EckDxgFLm23KBYrcnhc7XxsIlALPisiXIvKUiCS2cN6rRKRARApKS0vbG05ARUYIWSlxnbqTKDtUR1VdY8gX0rkb3SeV+OhIa3IypgtrT53EJar6vIj8T7PXAVDV+9pxjiTgNeBGVT3QfHMLh6gztvHAz1V1qYjMwTF/1K+P2FH1CRyLITFx4sSj6ji6ipy0uE71SbhGNoX6lBzuoiMjmJjXg6V2J2FMl9WeOwnXt1Kyh0erRCQaR4J4QVVfb2GXYqCv2/M+OKYCKQaKVdV15/EqjqQRkrJT4zs1f1NRmBTSNZc/IJ31uyopO1TX9s7GmIBrTzHdIOfPtarq1ZBX51rYTwPrWrnjmAdcJyL/BPKB/a7aDBEpEpGhqvoNMB1Y6837dyXZaXG8vbqapiYlIsL70UmuQro+YVBI5869X+L0kb2DHI0xprn23EnMdN4NdGRa8Gk41sQ+WUS+cj5misjVInK1c58FQCGwCXgSuNbt+J8DL4jISmAscHcHYugSctPiqW9U9h7q2EieorIqMpNiSIxtT14PHaP7pBEXHWH9EsZ0Ue35xlmIY6hrooi49ycIjqWvUzwdqKqLaaMqW1UVmO1h21fAxHbE2OUdXqGuomPTYxeVV9EnjDqtXWKirF7CmK6sPdNy/EpVU4G3VDXF7ZHcWoIwR3KtJNfRzuvtZeE1/NXdlAEZfLO7kooq65cwpqvxZgjsLH8GEu4OF9R1oPO6obGJnRU19AujQjp3+QMzUMVGORnTBbWZJERksfNnpYgcaP7T/yGGh7SEaOKiIyjpwJ1Eyf4aGps0rGok3I3pm0psVASfb7YmJ2O6mvY0Nx3v/Jns3sxkzU3eERFyUuPZ2YGq66IwrJFwFxsVydRBGXywfjeOLipjTFfR7uYmEZkiIsluz5NEJN8/YYWn7LSOVV0XlYfPFOGeTB+eRVFZNZtLDwY7FGOMG2/mbnoUcP8/uIojJ+MzbchJje/Q/E1FZdVERsjhzu9wdPKwXgC8v25PkCMxxrjzJkmIurUFqGoT7RtCa5yy0+LZU1lLXUNT2zu72V5WRU5aHFGR3vznCi05afEMz07hQ0sSxnQp3nzrFIrI9SIS7XzcgKMIzrRTTmocqrD7gHdNTkXlVWHbae3ulOG9KNhWRrlN0WFMl+HtVOFTgR045lXKx7H+g2mnHOcwWG/ncCoq6x5J4uRhvWhS+GhD15zN15juqN3NRaq6B7jQj7GEvZwOLGNaVdfA3oN19MsI/yQxpk8amUkxfLB+D2ePa77siDEmGLwZ3TRERD4QkdXO56NF5E7/hRZ+XFNz7PCiVqLYOftruE3s15KICOGkob347zd7qG/0rt/GGOMf3jQ3PYljkr96AFVdid1ZeCUxNorU+GhKvBgGu31f+A9/dTd9eC8qaxoo2Foe7FCMMXiXJBJUdVmz1xp8GUx3kJ0a51Vzk6tGIlwL6Zo7fnBPYiIj+GDd7mCHYozBuySxV0QG4Vg1DhE5HyjxS1RhLCctnh1e3EkUlVUTHx1JRmKMH6PqOpJio8gfmM6H620orDFdgTdJYjbwODBMRHYAN+IY8WS8kJPm3Z3E9rIq+qUnHF4utjs4ZXgWhXsPUWjV18YEnTezwBaq6ilAT2CYqh6vqtv8F1p4yk6Np6Kqnqq69rXUFZdX0TdMZ3/1xFV9bXcTxgSfN6ObMkTkQeAT4L8iMkdEMvwXWnhyDYNtzxxOqkpRWXguNtSavukJDM1K5gOrvjYm6LxpbvonUAqcB5zv/P1f/ggqnOW4VqhrR5NT2aE6DtU1dptOa3cnD+/FF1vL2F9dH+xQjOnWvEkS6ap6l6pucT7+CKT5Ka6wdbjquh13EkXOGonuMvzV3fRhvWhoUj626mtjgsqbJLFIRC4UkQjn4wfAW/4KLFxlpcQh0r6COtc6Et2tTwJgXL8e9EiItn4JY4LMmyTxM+BFoBaow9H89D+2Qp13YqIi6JkU267mpu2uJNHN+iQAIp3V14u+2UODVV8bEzTejG5KVtUIVY1W1Sjn78m2Qp33stPi2zXJX3F5FRmJMSTGds8Z2acPz6Kiqp4viyqCHYox3ZY3o5umiUii8/dLROQ+Eennv9DCV05qXLuam7aXVXXL/giXE4ZkEhUhvG/V18YEjbcr01WJyBjgZmAb8H9+iSrM5aTFU1JR0+Z6zkVl1d06SaTERTN5QLotRGRMEHmTJBqcK9PNAuao6hwgubUDRKSviCwSkXUissa5UFHzfUREHhSRTSKyUkTGu23bKiKrROQrESnwItYuLTs1jur6xlaHdzY0NrGzopq+3WD219ZMH57Fxj0HD090aIwJLG+SRKWI3AZcArwlIpFAdBvHNAA3qepwYAowW0RGNNtnBjDY+biKo9fNPklVx6rqRC9i7dJcw2Bba3Iq2V9DQ5N2yxoJd9Od1dcfrLcmJ2OCwZsk8UMcI5v+n6ruAnKBv7V2gKqWqOoK5++VwDrnce5mAXPVYQmQJiLZXsQVctpTK+Ga/bU7NzcB5GUmMqhnog2FNSZIvBndtEtV71PVT5zPt6vqXNd2Efm8teNFJA8YByxttikXKHJ7Xsy3iUSBd0VkuYiEzVKpOaltr1BXXOYspOuGw1+bmz48iyWF+6isseprYwLNmzuJtsR52iAiScBrwI2q2rymoqXpTV09utNUdTyOJqnZInJiC+e+SkQKRKSgtDQ0qnMzk2KJjpRWpwzfXlZFZISQnebxY+02pg/rRX2jsnjj3mCHYky348sk0eJQHRGJxpEgXlDV11vYpRjo6/a8D7ATQFVdP/cAbwCTj3pT1SdUdaKqTuzZs2fnriBAIiKE3m0sPlRUXkV2ahzRkb78TxSaJvTvQUpcFB9Yk5MxAefXbyBxLILwNLBOVe/zsNs84DLnKKcpwH5VLRGRRBFJdp4nETgVWO3PeAMpOzW+9T6JsipranKKiozgu0N7sWj9HhqbWh82bIzxLV8miZaajaYBlwInO4exfiUiM0XkahFxLVi0ACgENuFYR/ta5+tZwGIR+RpYBrylqgt9GG9QtVVQt72sutuPbHI3fXgv9h2q4+viimCHYky34tV8DyLSHxisqu+LSDwQ5Ry1BI5kcARVXUzLycN9H8Wx6l3z1wuBMd7EF0py0uLZfaCExiYlMuLIj6i6rpG9B2u75cR+nnx3SC8iI4QP1u1mfL8ewQ7HmG7Dm2k5rgRexbGEKTj6Dv7t2q6qYdMUFAjZafE0NCl7D9Yetc2Gvx4tNSGaif172EJExgSYt2tcTwMOAKjqRqCXP4LqDlzDYFtqcvp2inBLEu6mD+/F+l2V7Zr3yhjjG94kiVpVrXM9EZEoPIxoMm1rraCuqBtPEd6ak4dlAfChTfhnTMB4kyQ+EpHbgXgR+R7wCvAf/4QV/lpbxnR7WTXx0ZFkJsUEOqwubVDPRPIyEmworDEB5E2SuBXHutarcCxAtAC40x9BdQcp8VEkxESys6U7ifIq+qbH4xhBbFxEhJOHZfHZ5n1U1TUEOxxjugVvpuVoUtUnVfUCVT3f+bs1N3WQiJCTFs9OD30S1tTUslOG96Kuocmqr40JEG9GN61yTuXt/vhERO4XkQx/BhmusluoulZVR5KwTusWTcxLJzk2yib8MyZAvKmTeBtoxLHONcCFzp8HgOeA7/surO4hJzWe9bsqj3itvKqeQ3WNliQ8iImK4MShPflg/R6ampSICGuSM8afvEkS01R1mtvzVSLyqapOE5FLfB1Yd5CTFk9pZS21DY3ERkUC345ssmprz6YP68VbK0tYvXM/o/ukBTscY8KaNx3XSSKS73oiIpOBJOdT60XsANcMr7v3f1tQt/1wjYRVW3vy3aG9iBB43wrrjPE7b5LET4GnRGSLiGwFngKudE6+92d/BBfuXMNgd7r1SxyutraOa4/SE2MY368HH9pqdcb4nTejm75Q1VHAWGCsqo5W1WWqekhVX/ZbhGHMdSfhPsKpqKyKjMQYEmO9mlar2zl5eC9W7zjArv2eZ9I1xnSeV7PAisgZOGokrheR34jIb/wTVvfwbUHdt190RWXV9LH+iDadMtxZfW2jnMLCV0UVrCtpvh6Z6Qq8GQL7GI51rn+OY2bXC4D+foqrW4iPiaRHQvSRdxLlVfTtYf0RbRncK4k+PeKtySkMlOyv5uInl3DRk0sorTx6wksTXN7cSUxV1cuAclX9PXAcR64oZzogO/XbgrrGJmVHua0j0R4iwvRhvVi8aS819Y3BDsd0wu/nraWhSamqbeR389YEOxzTjDdJwtUmUiUiOUA9MMD3IXUvOWnxh5ubSvZX09CkViPRTtOHZ1FT38Rnm636OlS9v3Y3C9fs4oZTBnPDKYN5a1UJb68qCXZYxo03SeI/IpIG/A1YAWwFXvJDTN1KTlrc4TuJojLHTxvZ1D75A9NJjIm0NSZCVFVdA7+dt4YhWUlcecJArjpxICNzU/j1m2soP1TX9glMQLQrSYhIBPCBqlao6ms4+iKGqap1XHdSdmo8B2oaOFjbYIV0XoqNiuSEwT35cP0ebBqx0PPA+xvZUVHN3eeMIjoygujICP563hgqquq4a/7aYIdnnNqVJFS1Cfi72/NaVd3vt6i6kRznMNiSimqKyquIkG+Hxpq2nTy8FyX7a1hrI2NCytqdB3h68RYunNSXiXnph18fkZPCtScdw+tf7rBBCV2EN81N74rIeWLzV/uUa/GhnftrKCqrIictnuhIr0Ymd2snDe2FCNbkFEKampQ7/r2KtPhobp0x7Kjt1510DEOzkrn99dUcqKkPQoTGnTffRv+DY6GhOhE5ICKVImJ/vnVSduq3BXXbbYpwr/VMjmVMnzRbiCiEvLhsO19ur+COM4aTlnD0wloxURH89fzR7Kms4c8L1gUhQuPOm4rrZFWNUNVoVU1xPk/xZ3DdQVZKHBHiam6qtjmbOmD6sF58XVRhY+xDwJ7KGv6ycD1TB2Vwzrhcj/uN6ZvGlScO5KVlRbZ2SJB5U0wnInKJiPza+byvc5I/0wnRkRH0So5j895DlFbWWqd1B0x3Vl8vsruJLu+P89dRW9/EXWePbHPlxV+cMoSBmYnc+vpKDtXaHKLB4k1z0yM4Cuh+5Hx+EHjY5xF1Q9lpcXyxpQzAaiQ6YHh2MnkZCTy1uJD6xqZgh2M8+HhDKfO+3sm1Jw1iUM+kNvePi47kr+ePZkdFNX9755sARGha4k2SyFfV2TiL6lS1HDi6QdF4LSctnj3OppI+1ifhNRHhjjNGsGH3QZ79dEuwwzEtqKlv5M5/r2ZgZiLXfHdQu4+bmJfO5cfl8dxnW1nm/EPKBJY3U43Wi0gkoAAi0hNo9c82EekLzAV6O/d9QlXnNNtHgDnATKAK+LGqrnDbHgkUADtU9Uwv4g0ZOanfDnm15qaO+d6ILKYP68UD72/k+2NyyE4Nnb6duoYmLntmaae/BE8elsV9PxxDSly0jyLznYc+3MT2sipevDL/8AJb7XXz6UP5YP1ubnltJW/fcAJx0d4dbzrHmyTxIPAG0EtE/gScD9zZxjENwE2qukJEkoHlIvKeqrpXyswABjsf+cCjzp8uNwDrgLDtJHd9ocVHR5KZZDdnHfW7s47llPs+4o/z1/HwxeODHU67/e+HG1lSWMZlx/UnNb5jX/CVNQ08v2Qb5zz8KU9fPom8zEQfR9lxm/ZU8vjHmzl3XC5TB2V6fXxCTBT3nDuai59ayn3vbeD2mcP9EKXxpN1JQlVfEJHlwHQcs8Ceraqtjk9T1RKgxPl7pYisA3IB9yQxC5irjpLZJSKSJiLZqloiIn2AM4A/4RiCG5ZctRJ90+Pb7MwznvVNT2D2Scdw33sb+OGGUk4c0jPYIbVpVfF+HvnvZs4dn8sfZo3s1LlOO7Y317ywnFkPf8qjF49n6jHefyH7mqpy+xurSYiJ4vYzOv7lPu2YTC6a3I+nPilkxsjejOvXw4dRmtZ4M7ppDpCuqg+r6kNtJYgWjs8DxgFLm23KBYrcnhc7XwN4ALiZVpq1ROQqESkQkYLS0lJvQuoyXFXXViPReVedOJABmYn8dt4aahu69uywtQ2N3PTKV2QmxfDbM4/t9PmOG5TBvNnH0ys5lsueWcbzS7b5IMrOeWV5Mcu2lHHbjGFkJsV26ly3zRxGVkocN7+6ssv/tw0n3nRcrwDuFJFNIvI3EZnY3gNFJAl4DbhRVZsX4LX0p7OKyJnAHlVd3tq5VfUJVZ2oqhN79uz6fzm2xNXcZCObOi8uOpLfn3UsW/Ye4omPCoMdTqse/GAjG3Yf5M/njiI1wTf9CP0yEnj92qmcMDiTO/+9mt+8uZqGII34KjtUx58XrGNi/x78YGLnVxVIiYvm7nNGsXHPQR76cJMPIjTt4U0x3T9UdSYwGdgA/EVENrZ1nIhE40gQL6jq6y3sUsyR61L0AXYC04CznOtp/xM4WUSeb2+8oSQzKYZZY3M49disYIcSFk4c0pOZo3rz0KJNhydN7GpWFlfw2EeFnD+hDycP8+1/9+S4aJ66fBJXnjCAuZ9v48fPfsH+qsBPb/Gnt9ZRWdPA3eeOIiLCN82oJw3rxbnjc3nkv5tZvcOmjwuEjkwSdAwwDMgD1re2o3Pk0tPAOlW9z8Nu84DLnMV6U4D9qlqiqrepah9VzQMuBD5U1Us6EG+XJyLMuXBchzr1TMt+feYIIiOE3/+n6y1iU9vQyE0vf03PpFh+feYIv7xHZIRjWPBfzx/N0i37OPuRT9m056Bf3qsln2/ex2srirnyxIEMyUr26bl/c+YIeiTEcPOrK60uJgC86ZNw3Tn8AVgNTFDV77dx2DTgUhx3AV85HzNF5GoRudq5zwKgENgEPAlc6/VVGNNMdmo8N54ymPfX7eG9tV1rNtEH3t/Ixj0H+fN5ozo8mqm9fjCxLy9dOYUD1fWc88infLzB//12tQ2N3PHvVfRNj+f6kwf7/PxpCTH88eyRrC05wOMfbfb5+c2RvLmT2AJMBX4LbAZGi8iJrR2gqotVVVR1tKqOdT4WqOpjqvqYcx9V1dmqOkhVR6lqQQvn+W+41kgY/7li2gCGZCXxu3lrqK7rGh2dXxVV8PhHm/nBxD6cNLRXQN5zYl46/549jdy0eH787DKe/XSLX9ffePyjQgpLD/GHWSOJj/FPTcPpI3tz5uhsHvxgExt2V/rlPYyDN0miEfgQWAj8HngH+J0fYjLGJ6IjI/jDrJHsqKjm4UXB7+isqW/kl698TVZKHHf6qZnJk77pCbx2zVSmD8/i9/9Zy+1vrKKuwfdNNVv2HuKhRZs4Y3S235Pg7886lqS4KH716koam2zRKX/xJklcD0wCtqnqSTiGs4bmmFPTbUwZ6Jht9ImPCyksDVybfEvuf38Dm/Yc5J7zRgelKjoxNorHL5nAtd8dxEvLirj06aWU+XCZUFXl1/9eTWxkBL8NQBLMSIrld2cdy9dFFTyz2KZj8RdvkkSNqtYAiEisqq4HhvonLGN857aZw4iNiuC389YEbZnTFdvLefLjQi6c1JfvBLHILyJCuPn0YTzww7F8WVTB2Q9/6rPmmnlf72Txpr386vSh9EoJzOqK3x+dzfdGZHHvu9+wZe+hgLxnd+NNkigWkTTg38B7IvImjqGqxnRpvZLj+OVpQ/lk414WrNoV8PevqW/kV698Te+UOO7oRNWxL509Lpd/XjWFqrpGzn3ks04vFbq/qp675q9lTJ9ULs7v76Mo2yYi/PHskcRGRXDN88vZfaAmYO/dXUhH/rISke8AqcBCVfXd/WonTZw4UQsKjur3NobGJuWshxaz92AtH9z0XZJivZm2rHPuXrCOJz4uZO5PJne5qUJ2VlRz5dwC1pYc4ITBPYnuYD3DjopqNuyuZN51xzMyN9XHUbZt8ca9/Oz/CkhLiOG5KyYx2MfDbsOdiCxX1RYLpDuUJLoqSxKmNSu2l3PuI59x5QkDuOOMwHQcL99WzvmPfcaFk/rx53NHBeQ9vVVV18Bd89eyqpPFaRdM6MvlU/N8E1QHrN6xnyue+4La+kaeunwSkwekBy2WUGNJwhinW19bySvLi1lw/QkM7e3fvzZr6huZOecTahuaWHjjCSR3wSm8w01RWRWXP7uM4vJqHvjhWGaOyg52SCGhtSTRkYprY0LWzacPIzkuil+/udrvndh/f/cbCvce4i/njbYEESB90xN47eqpjMpNZfaLK3jaRj11miUJ062kJ8Zw6+nDWLaljDe+3OG39ynYWsZTi7dwcX4/jh9s060EUo/EGF74aT6njsjirvlr+eP8tTRZHUWHWZIw3c4PJvZlXL807l6wjv3Vvp/4rrqukV+9upKc1HhuswVygiIuOpJHLp7Aj6fm8dTiLVz/zy9tevEOsiRhup2ICOGuWSMpO1TH39/9xufnd43Z/9v5owM6isocKTJC+O33R3DbjGHMX1nCZU8vC8psuKHOkoTplkbmpnLplP48v2SbT6ecXraljGc+3cKlU/p3iZXhujsR4WffGcScC8eyYns5Fzz+GTsrqoMdVkixJGG6rf85dSjpibHc8e/VPmmzrq5r5OZXv6ZPj3hunTHMBxEaX5k1Npd//GQyJRU1nPPIp6wrab72mfHEkoTptlLjo7njjGF8XVTBP78oavuANvz1nfVs3VfFX88bQ6I1M3U5Uwdl8so1xyEIP3jscz7btDfYIYUESxKmWzt7bC75A9L5y8L17KioprKmvkOPxRv38uynW7n8uP4cNygj2JdlPBjWO4XXr51Kdloclz+7jDe/8t8It3BhxXSm29uwu5KZcz6hoZNNTv3SE1h44wkkxNhdRFe3v7qeq+YWsHRLGbfOGMbPThyIYyHN7qm1Yjr712y6vSFZybzw0/xOT0tx2rG9LUGEiNT4aOb+v8nc9PLX3PP2ekoqqvnN948l0kdrcYcT+xdtDJA/MIP8gdZM1J3ERkXy4IXjyE6N48lPtrBg9S5iIjveAn/ysF78YdaxYXdHYknCGNNtRUQId5wxgqG9U/h8874On6e8qo7/W7KN/hkJ/PSEgT6MMPgsSRhjur3zJ/Th/Al9Ony8qnL188u55+31jOuXxoT+4TMDrY1uMsaYThIR/nr+GHLS4rnuxS/Zd7A22CH5jCUJY4zxgdT4aB65eDz7DtVx47++ojFMJhW0JGGMMT4yMjeV333/WD7ZuJeHPtwU7HB8wpKEMcb40EWT+3LOuFwe+GADizeGflW3X5OEiPQVkUUisk5E1ojIDS3sIyLyoIhsEpGVIjLe+XqciCwTka+dx/7en7EaY4wviAh/Omckg3slccM/v2TX/ppgh9Qp/r6TaABuUtXhwBRgtog0X1x4BjDY+bgKeNT5ei1wsqqOAcYCp4vIFD/Ha4wxnZYQE8UjF4+nur6Rn7+0gvrGpmCH1GF+TRKqWqKqK5y/VwLrgNxmu80C5qrDEiBNRLKdzw8694l2PsKjJ8gYE/aO6ZXMn88dxRdby7n3Hd+vWxIoAeuTEJE8YBywtNmmXMB9Cs5i52uISKSIfAXsAd5T1ebHIiJXiUiBiBSUlpb6I3RjjOmQWWNzuWRKPx7/uJD31u4OdjgdEpAkISJJwGvAjarafCL3lmrYFUBVG1V1LNAHmCwiI4/aUfUJVZ2oqhN79uzp48iNMaZzfn3mCEblpnLTy19RVFYV7HC85vckISLROBLEC6r6egu7FAN93Z73AXa676CqFcB/gdP9E6UxxvhHbFQkj1w8HoBrX1hBTX1orbXt79FNAjwNrFPV+zzsNg+4zDnKaQqwX1VLRKSniKQ5zxMPnAKs92e8xhjjD33TE/j7D8ayasd+/vjW2mCH4xV/z900DbgUWOXsWwC4HegHoKqPAQuAmcAmoAq4wrlfNvAPEYnEkcxeVtX5fo7XGGP84nsjsvjZdwby+EeFTMpLZ9bY5mN4uia/JglVXUzLfQ7u+ygwu4XXV+Lo6DbGmLDwq1OH8uW2Cm57fRXH5qRwTK/kYIfUJqu4NsaYAImKjOB/fzSOhJhIrnl+BVV1DcEOqU2WJIwxJoCyUuKYc+E4NpUe5I43VtPVl5C2JGGMMQE27ZhMfnHKEN74cgcvLStq+4AgsiRhjDFBcN1Jx3DikJ787j9rWN3J9dX9yZKEMcYEQUSE8MAPx5KRGMO1L6xgf3V9sENqkSUJY4wJkvTEGB760Xh2VlRz/UtfdslCO0sSxhgTRBP69+CPZ4/kow2l/OS5LzhY27VGPFmSMMaYILtwcj/u/+EYlm4p45KnllJRVRfskA6zJGGMMV3AOeP68OjF41m78wA/fHwJew50jcWKLEkYY0wXceqxvXn2ikkUlVdxweOfd4lZYy1JGGNMFzLtmExe+Gk+FVX1XPDY52zaUxnUeCxJGGNMFzOuXw/+9bMpNKpywWOfs6o4eHUUliSMMaYLGtY7hVd+dhwJMVFc9OQSlhbuC0ocliSMMaaLystM5NVrjiMrJZbLnlnGovV7Ah6DJQljjOnCslPjeflnxzE4K4kr5xbwn693tn2QD1mSMMaYLi4jKZYXr5zC+H49uP6fX/LSsu0Be29LEsYYEwJS4qL5x08m850hPbnt9VU88fHmgLyvJQljjAkR8TGRPHHpRM4cnc3dC9Zz7zvf+H09Cn+vcW2MMcaHYqIimHPhOJLjonho0SYO1NTzu+8fS0REqytFd5glCWOMCTGREcLd54wiOS6aJz4upLKmgb+dP5qoSN83DlmSMMaYECQi3DZjGKnx0fztnW84WNvAoxeP93misCRhjDEhSkSYfdIxJMdFsaO8mkg/NDlZkjDGmBB32XF5fju3jW4yxhjjkV+ThIj0FZFFIrJORNaIyA0t7CMi8qCIbBKRlSIyvr3HGmOM8S9/Nzc1ADep6goRSQaWi8h7qrrWbZ8ZwGDnIx941PmzPccaY4zxI7/eSahqiaqucP5eCawDcpvtNguYqw5LgDQRyW7nscYYY/woYH0SIpIHjAOWNtuUCxS5PS+mWTJo5VhE5CoRKRCRgtLSUl+GbIwx3V5AkoSIJAGvATeq6oHmm1s45HCdeRvHoqpPqOpEVZ3Ys2dPX4ZtjDHdnt+ThIhE4/iSf0FVX29hl2Kgr9vzPsDOdh5rjDHGj/w9ukmAp4F1qnqfh93mAZc5RzlNAfarakk7jzXGGONH4s8ZBEXkeOATYBXQ5Hz5dqAfgKo+5kwGDwGnA1XAFapa4OlYVV3QyvuVAts6EXImsLcTx4c6u367frv+7qm/qrbYXu/XJBFqRKRAVScGO45gseu367fr777X74lVXBtjjPHIkoQxxhiPLEkc6YlgBxBkdv3dm12/OYr1SRhjjPHI7iSMMcZ4ZEnCGGOMR5YkABE5XUS+cU5Xfmuw4/EHT1Ovi0i6iLwnIhudP3u4HXOb8zP5RkROC170viMikSLypYjMdz7vNtcvImki8qqIrHf+Ozium13/L5z/9leLyEsiEtedrr+jun2SEJFI4GEcU5aPAC4SkRHBjcovXFOvDwemALOd13kr8IGqDgY+cD7Hue1C4FgchY6POD+rUHcDjhmFXbrT9c8BFqrqMGAMjs+hW1y/iOQC1wMTVXUkEInj+rrF9XdGt08SwGRgk6oWqmod8E8c05eHlVamXp8F/MO52z+As52/zwL+qaq1qroF2ITjswpZItIHOAN4yu3lbnH9IpICnIhjqhtUtU5VK+gm1+8UBcSLSBSQgGOOuO50/R1iSaIdU5WHm2ZTr2epagk4EgnQy7lbOH4uDwA38+00L9B9rn8gUAo862xue0pEEukm16+qO4B7ge1ACY454t6lm1x/Z1iSaGOq8nDT1tTr7ru28FrIfi4iciawR1WXt/eQFl4L2evH8Vf0eOBRVR0HHMLZtOJBWF2/s69hFjAAyAESReSS1g5p4bWQvf7OsCTRylTl4cbD1Ou7RSTbuT0b2ON8Pdw+l2nAWSKyFUeT4ski8jzd5/qLgWJVdS3c9SqOpNFdrv8UYIuqlqpqPfA6MJXuc/0dZkkCvgAGi8gAEYnB0Vk1L8gx+VwrU6/PAy53/n458Kbb6xeKSKyIDMCxBvmyQMXra6p6m6r2UdU8HP+NP1TVS+g+178LKBKRoc6XpgNr6SbXj6OZaYqIJDj/X5iOo1+uu1x/h0UFO4BgU9UGEbkOeAfHiIdnVHVNkMPyh2nApcAqEfnK+drtwD3AyyLy/3D8j3QBgKquEZGXcXyRNACzVbUx4FH7X3e6/p8DLzj/GCoErsDxh2LYX7+qLhWRV4EVOK7nSxzTcCTRDa6/M2xaDmOMMR5Zc5MxxhiPLEkYY4zxyJKEMcYYjyxJGGOM8ciShDHGGI8sSRjTSc7ZVa9tZftn7TjHQd9GZYxvWJIwpvPSgKOShGvWUFWdGuiAjPGVbl9MZ4wP3AMMchYp1gMHcUwiNxYYISIHVTXJOW/Wm0APIBq4U1XfbPmUxnQNVkxnTCc5Z9Wdr6ojReS7wFvASOcU07gliSggQVUPiEgmsAQYrKrq2idIl2CMR3YnYYzvLXMliGYEuFtETsQxXXkukAXsCmRwxnjDkoQxvnfIw+sXAz2BCapa75yRNi5gURnTAdZxbUznVQLJ7dgvFceaFvUichLQ379hGdN5didhTCep6j4R+VREVgPVwG4Pu74A/EdECoCvgPUBCtGYDrOOa2OMMR5Zc5MxxhiPLEkYY4zxyJKEMcYYjyxJGGOM8ciShDHGGI8sSRhjjPHIkoQxxhiP/j+orZFt3USQNwAAAABJRU5ErkJggg==\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -645,22 +475,22 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 7, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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m4ceeggIWiK1tbU8+uijALS3t3ef/+c//3m+//3vAzBpUt+DPpud1KcDa9x9nbt3AA8A83vu4O7L3H1XavVFoDaL9exXLBoExE7dySSSl6644gruueceZs6cyTvvvNPdujj33HO58MILmTFjBieffDK33HILEPyiXLx4cXcndZfhw4fz3e9+l7lz53Z38M6fPz/t90zn2muv5Rvf+AazZ8/uDikIbqMdNWoUU6dOZdq0afz85z+nrKyMBx98kKuvvppp06Zxzjnn0NbWxuzZsxk7dixTpkzhmmuuYfr06Wm/18CBA/nSl77ElClTuOiii7ovVQHce++93HbbbUydOpVZs2axdetWAIYOHcqECRO47LLLMv/hHoAdqLnSpw82+zvgXHe/PLW+EDjD3a/az/7XAON77L8e2AU48BN379266DpuEbAIYNSoUae+995+n32xX395v5Hzb/8Tdyw8lXmThh3y8SLHurfeeosJEybkugzpo9bWVqZMmcIrr7zCgAED9nk/3b+zma3c31WabLYg0l0YTJtGZjYX+CJ7+yMAZrv7dIJLVFea2cfTHevud7j7DHef0dXxdKhqui4xqQUhIseop59+mvHjx3P11VenDYfDkc1O6jrguB7rtcDm3juZ2VTgTuA8d6/v2u7um1Ov283sEYJLVs9lo9DqqjJAfRAicuw6++yz2bhx4xH9zGy2IJYD48xsrJmVAZcAHxq1YWajgF8CC939nR7bK80s2rUMzAP+kq1CS8MhBleWKSCkqGXrcrPkh8P5981aC8Ld42Z2FfBbgttc73L3N81scer9JcANQDXwo9TtYF23sw4FHkltKwF+7u6/yVatENzJpE5qKVbl5eXU19dryu8C1fU8iK7bgzOV1XEQ7v4E8ESvbUt6LF8OXJ7muHXAtGzW1ltNVC0IKV61tbXU1dWxY4dmNS5UXU+UOxQaSZ0Sq4qwcuOug+8oUoBKS0sP6UljUhw0WV9KLDVhn67DiogEFBApsWiEts4kLR2Jg+8sIlIEFBApXaOp1Q8hIhJQQKTUaD4mEZEPUUCkqAUhIvJhCoiUrhldNRZCRCSggEgZVFFGOGRqQYiIpCggUkIho1rTbYiIdFNA9BCLRjSjq4hIigKih1hU8zGJiHRRQPQQq4roEpOISIoCooeaVAsimdR0GyIiCogeYlUROhNO457OXJci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\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAA+BElEQVR4nO3deXiU5bn48e+dfSEkhIQQSEJYhRAWQ9jBpQqCraK1VhS11VrKcWmtP1vpcqy17enmqdVqS63HpR5Fq1blWBXFKsiikLAoOwlLEsKSPYTsmef3x0ziCJNkQubNbPfnunJl5p13ufMOzD3PLsYYlFJKqTOFeDsApZRSvkkThFJKKZc0QSillHJJE4RSSimXNEEopZRyKczbAXhSUlKSyczM9HYYSinlN/Lz88uNMcmuXguoBJGZmUleXp63w1BKKb8hIkc6e02rmJRSSrmkCUIppZRLmiCUUkq5FFBtEK60tLRQUlJCY2Ojt0NRFomKiiItLY3w8HBvh6JUQAn4BFFSUkJcXByZmZmIiLfDUR5mjKGiooKSkhKGDx/u7XCUCigBX8XU2NjIwIEDNTkEKBFh4MCBWkJUygIBnyAATQ4BTt9fpawRFAlCKRW49hyr5YO9J70dRkDSBNEHHn30UcaNG8eSJUt6fa5nnnmG0tLSjue33XYbu3fv7vV5lf8yxmCzBe+6Lj957TNueWYLP3tjJy1tNm+HE1ACvpHaF/z5z3/m7bffPqsRtbW1lbCwnr0FzzzzDNnZ2QwZMgSAJ5980mNx9pW2tjZCQ0O9HUbAuOcfOzjV2MqT38j1dih9rrq+me3F1YxIjuXZTUfYd+IUf14yhcTYCG+HFhC0BGGxZcuWcfDgQa688koefvhhHnjgAZYuXcr8+fO5+eabOXz4MHPnziUnJ4ecnBw2btzYcezvfvc7JkyYwKRJk1i+fDmvvPIKeXl5LFmyhMmTJ9PQ0MBFF13UMb3IypUrmTBhAtnZ2dx3330d5+nXrx8/+clPmDRpEjNmzODEiRNnxbl582ZmzZrF+eefz6xZs9i3bx9g/zC/9957mTBhAhMnTuRPf/oTAFu2bGHWrFlMmjSJadOmcerUKZ555hnuvPPOjnN+5Stf4cMPP+yI4f7772f69Ols2rSJBx98kKlTp5Kdnc3SpUtpX9mwoKCASy+9lEmTJpGTk0NhYSE33XQTb7zxRsd5lyxZwqpVqzz0Dvm//CNVrNlzgj3Har0dSp9bX1COzcDvvzaJP3x9EluLqrnysfXsLg2+e2GFoCpB/Pz/dnn8H07WkP787Irxnb6+YsUK3nnnHT744AOSkpJ44IEHyM/PZ/369URHR1NfX897771HVFQUBw4c4PrrrycvL4+3336b119/nU8++YSYmBgqKytJTEzkscce46GHHiI394vfFktLS7nvvvvIz89nwIABzJ8/n9dff52rrrqK06dPM2PGDH71q1/xwx/+kL/97W/89Kc//cLxY8eOZd26dYSFhbFmzRp+/OMf8+qrr/LEE09w6NAhtm3bRlhYGJWVlTQ3N3Pdddfx0ksvMXXqVGpra4mOju7yPp0+fZrs7GwefPBB+33LyuL+++8H4KabbuLNN9/kiiuuYMmSJSxfvpyrr76axsZGbDYbt912Gw8//DCLFi2ipqaGjRs38uyzz57L2xVwWttslFY3APD0hkP87muTvBxR31q7r4z46HAmpycwZdgARib34zvP5XPNXzby0LWT+PLEVG+H6Ne0BOEFV155ZccHaktLC9/+9reZMGEC1157bUd7wpo1a7jllluIiYkBIDExsctzbtmyhYsuuojk5GTCwsJYsmQJ69atAyAiIoKvfOUrAEyZMoXDhw+fdXxNTQ3XXnst2dnZfP/732fXrl0dcSxbtqyjKiwxMZF9+/aRmprK1KlTAejfv3+3VWWhoaFcc801Hc8/+OADpk+fzoQJE/j3v//Nrl27OHXqFEePHuXqq68G7APgYmJiuPDCCykoKODkyZOsXLmSa665psdVc4HqWE0jrTZDYmwEr28vpaKuydsh9RljDGv3lzF3dBKhIfaebJPSE1h112zGpcZxxwtbeWj1vqBun+mtoPpf1tU3/b4UGxvb8fjhhx8mJSWFHTt2YLPZiIqKAuz/+HvSfbO9isaV8PDwjnOFhobS2tp61j7/+Z//ycUXX8xrr73G4cOHueiiizqNo7PYwsLCsNk+byR0HpsQFRXV0e7Q2NjI7bffTl5eHunp6TzwwAM0NjZ2+TfcdNNNPP/887z44os89dRTne4XbIor6wG4+9LR3P/GLlZuLuLOL432clR9Y+/xU5w81cSFY744U/WguChWLp3B/a/v4rEPCth7vJaHr5tMXJSOtO8pLUF4WU1NDampqYSEhPDc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\n", "text/plain": [ "
" ] @@ -680,22 +510,22 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 8, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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1q3jqquuYvXq1RQXF/PYY4/tc/tVq1bxm9/8hiVLlvDtb3+bvLw8li9fzkknncR9990HwIIFC/jJT37CsmXLWLhwIV/96lej+7/77rs899xz/OAHP+CLX/wit912GytXruToo4/mu9/9LgC33nory5cvZ+XKldx55517fP7JJ5/Mueeey+23386KFSuYOXMmRUVFrFixAoC7776byy67bPi+oDhJ6SuFmkCQmdbT80hJQaQv+/pFH0/Tp0/n2GOPBeD4449nw4YN+9z+9NNPp6CggIKCAoqKivj0pz8NwNFHH83KlStpbm7m5Zdf5oILdt/+vb29Pfr6ggsuID09ncbGRgKBAKeeeioAl156aXSfOXPmcPHFF3P++edz/vnn7/cYvvzlL3P33Xdzxx138PDDD7NkyZID+AYSI6WvFGoaYpJC6SGJDUZE9pCdvfsOiOnp6XR1dZGRkUEoFALYq/997PZpaWnR5bS0NLq6ugiFQhQXF7NixYroY+3atdF98vPz9xvT008/zVVXXcWyZcs4/vjj99v+8LnPfY5nnnmGp556iuOPP57S0tL9H3iCJSQpmFmxmT1qZm+b2VozO8nMxpvZn81sXeS5JN5xVAfCYxS6CqdAVl68P05EhqiysjJaJ//oo48e0L6FhYVMnz6d3/72t0B4xO+bb76513ZFRUWUlJTwt7/9DYD777+fU089lVAoxObNmzn99NP5/ve/TyAQoLm5eY99CwoK2LVrV3Q5JyeHs846iyuvvJLLL7/8gOJNlERdKfwI+KO7Hw4cA6wFbgCed/dZwPOR5biqaQgyy7aQrpHMImPC9ddfz89//nNOPvlk6urqDnj/Bx54gF/96lccc8wxzJ49myeffLLP7e69917+5V/+hTlz5rBixQq+853v0N3dzSWXXMLRRx/N3Llzue666yguLt5jv/nz53P77bczd+5c3nvvPQAuvvhizIyPf/zjBxxvIpi7j+wHmhUCbwIzPObDzewd4DR332pmBwMvuvs+z9ZVVVW+dOnSQcdyzW+Wcdu7Z5P7oSvg7FsH/T4iyWbt2rUcccQRiQ4jKSxcuJDGxka+973vJeTz+/q3NLNl7l7V1/aJaGieAdQCd5vZMcAy4OvARHffChBJDBPiHUiwfjO5tGuMgojExWc+8xnee+89/vKXvyQ6lAFLRFLIAI4Drnb318zsRxxAVZGZLQAWAFRUVAwpkJzG8OWdJsITkXh4/PHHEx3CAUtEm0I1UO3ur0WWHyWcJLZHqo2IPO/oa2d3v8vdq9y9qry8fNBBdHSFKA1uDC+oO6qICJCApODu24DNZtbz8/yjwBpgMXBppOxSoO8WoGGytTHIDNtCR0Yh5A8+uYiIJJNEDV67GnjAzLKA94HLCSeoR8zsS8Am4IJ97D9kPWMU2opnkqUpgkVEgAQlBXdfAfTV8v3RkYqhOhDk1LQarGxsdBMTERkJKTuiua6ulokWIHeSut2JpJLTTjuNoXRlH6gf//jHHHHEEVx88cWDfo+RijVWys591LX9HQAyJqjnkYgMTM9UGwPxs5/9jGeeeWaf90c+kPcbKaMrmhGUGVgfflGmpCCyT8/cANveGt73POjofQ4Y7W/q7NzcXE477bQhTZ8N8Otf/5prrrmGpqYmFi1axLx582hpaeHqq6/mrbfeoquri3//93/nvPPO45577uHpp5+mra2NlpaWvcYc3HHHHSxatAgIT4B37bXX8pWvfIX333+fc889lyuuuILrrrsuun3v9/vOd77DwoULeeqppwD42te+RlVV1V4zqj777LPcdNNNtLe3M3PmTO6++27GjRvHDTfcwOLFi8nIyODjH/84CxcuHNI/TcomhYLmD+gig4ySaYkORUT6sG7dOh588EF++ctfcuGFF/LYY49xySWX7HOfVatWsXz5ctra2jjkkEO47bbbWL58Oddddx333Xcf1157LQAtLS28/PLLvPTSS1xxxRWsWrWKW265hTPOOINFixYRCASYN28eH/vYxwB45ZVXWLlyZTSp9Fi2bBl33303r732Gu7Ohz70IU499VTuvPNO/vjHP/LCCy9QVla2V5yx7/fiiy/u97uoq6vj5ptv5rnnniM/P5/bbruNO+64g6997Ws8/vjjvP3225gZgUBgQN/tvqRkUgiFnAntmwjkTaEsPTPR4YiMbgmaAuZAp86G/U+f3eOiiy4C4JRTTqGpqYlAIMCzzz7L4sWLo7+029ra2LRpEwBnnnnmXgkB4H/+53/4zGc+E51h9bOf/Sx/+9vfmDt37j7j7O/9+vPqq6+yZs0aPvzhDwPQ0dHBSSedRGFhITk5OXz5y1/mU5/6FOecc86A37M/KZkUapvbmc4WWgtVdSQyWvWeOjsYDAIMafrsHtarG7qZ4e489thjHHbYnueF1157rd9ptQc7d1zs+8UeD+x9TD2fc+aZZ/Lggw/utW7JkiU8//zzPPTQQ/z0pz8d8pQaKdn7qLq+iUrbRqhUcx6JjDVDmT67x8MPPwyEf+kXFRVRVFTEWWedxU9+8pPoiX758uX7fZ9TTjmFJ554gtbWVlpaWnj88cf5yEc+ckCxTJs2jTVr1tDe3k5jYyPPP//8XtuceOKJ/P3vf2f9+nBbaGtrK++++y7Nzc00NjbyyU9+kh/+8IfRu7wNRUpeKczO2UmmdTNxxpxEhyIiB+j666/nwgsv5P777+eMM84Y1HuUlJRw8sknRxuaAf7t3/6Na6+9ljlz5uDuVFZWRht/+3Pcccdx2WWXMW/ePCDc0Ly/qqPepk6dyoUXXsicOXOYNWtWn/uXl5dzzz33cNFFF0XvFnfzzTdTUFDAeeedR1tbG+7Of/7nfx7QZ/dlxKfOHk6Dnjq79l144WY49V9hYmJuNSgymmnq7OQxFqbOTrzyQ+HC+xIdhYjIqJOSbQoiItI3JQUR6dNYrlqWsMH8GyopiMhecnJyqK+vV2IYw9yd+vp6cnJyDmi/1GxTEJF9mjJlCtXV1dTW1iY6FBmCnJwcpkyZckD7KCmIyF4yMzP3OZGbJC9VH4mISJSSgoiIRCkpiIhI1Jge0WxmtcDGIbxFGVA3TOGMRTp+Hb+OPzVNc/fyvlaM6aQwVGa2tL+h3qlAx6/j1/Gn7vH3R9VHIiISpaQgIiJRqZ4U7kp0AAmm409tOn7ZS0q3KYiIyJ5S/UpBRERiKCmIiEhUSiYFM/uEmb1jZuvN7IZExxMPZjbVzF4ws7VmttrMvh4pH29mfzazdZHnkph9box8J++Y2VmJi374mFm6mS03s6ciyylz/GZWbGaPmtnbkf8HJ6XY8V8X+b+/ysweNLOcVDr+wUq5pGBm6cB/AWcDRwIXmdmRiY0qLrqAb7r7EcCJwFWR47wBeN7dZwHPR5aJrJsPzAY+Afws8l2NdV8H1sYsp9Lx/wj4o7sfDhxD+HtIieM3s8nANUCVux8FpBM+vpQ4/qFIuaQAzAPWu/v77t4BPAScl+CYhp27b3X3NyKvdxE+IUwmfKz3Rja7Fzg/8vo84CF3b3f3D4D1hL+rMcvMpgCfAv47pjgljt/MCoFTgF8BuHuHuwdIkeOPyAByzSwDyAO2kFrHPyipmBQmA5tjlqsjZUnLzCqBucBrwER33wrhxAFMiGyWjN/LD4FvAaGYslQ5/hlALXB3pPrsv80snxQ5fnevARYCm4CtQKO7P0uKHP9QpGJSsD7KkrZfrpmNAx4DrnX3pn1t2kfZmP1ezOwcYIe7LxvoLn2UjdnjJ/wr+Tjg5+4+F2ghUlXSj6Q6/khbwXnAdGASkG9ml+xrlz7KxuzxD0UqJoVqYGrM8hTCl5VJx8wyCSeEB9z9d5Hi7WZ2cGT9wcCOSHmyfS8fBs41sw2EqwjPMLNfkzrHXw1Uu/trkeVHCSeJVDn+jwEfuHutu3cCvwNOJnWOf9BSMSm8Dswys+lmlkW4cWlxgmMadmZmhOuT17r7HTGrFgOXRl5fCjwZUz7fzLLNbDowC1gyUvEON3e/0d2nuHsl4X/jv7j7JaTO8W8DNpvZYZGijwJrSJHjJ1xtdKKZ5UX+Fj5KuF0tVY5/0FLudpzu3mVmXwP+RLhHwiJ3X53gsOLhw8AXgLfMbEWk7H8DtwKPmNmXCP/hXADg7qvN7BHCJ44u4Cp37x7xqOMvlY7/auCByI+f94HLCf8QTPrjd/fXzOxR4A3Cx7Oc8LQW40iB4x8KTXMhIiJRqVh9JCIi/VBSEBGRKCUFERGJUlIQEZEoJQUREYlSUhA5QJHZR7+6j/UvD+A9moc3KpHhoaQgcuCKgb2SQs+smu5+8kgHJDJcUm7wmsgwuBWYGRkU2Ak0E5507VjgSDNrdvdxkXmnngRKgEzg/7j7k32/pcjooMFrIgcoMuvsU+5+lJmdBjwNHBWZcpmYpJAB5Ll7k5mVAa8Cs9zde7ZJ0CGI9EtXCiJDt6QnIfRiwH+Y2SmEp++eDEwEto1kcCIHQklBZOha+im/GCgHjnf3zsiMrTkjFpXIIKihWeTA7QIKBrBdEeF7OnSa2enAtPiGJTJ0ulIQOUDuXm9mfzezVUAQ2N7Ppg8AvzezpcAK4O0RClFk0NTQLCIiUao+EhGRKCUFERGJUlIQEZEoJQUREYlSUhARkSglBRERiVJSEBGRqP8Pv2QP6nywH3oAAAAASUVORK5CYII=\n", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYsAAAEGCAYAAACUzrmNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAuyklEQVR4nO3deXhV1b3/8feXJBCGJIwyI4hoRUWUXK/zUOtcBW21WG/VWn/UVmtta5+rP1vb3ur92Yq2j+2jXr1F1Dq2XoY63KLWWq0DggRkUBnVSBICSAIJCST5/v7Y+4RDcpKcJGfIST6v59nP3medvff5sqPne/Zae61l7o6IiEhreqU7ABER6fqULEREpE1KFiIi0iYlCxERaZOShYiItCk73QEky9ChQ338+PHpDkNEJKMsXbp0q7sPa1rebZPF+PHjWbJkSbrDEBHJKGb2caxyVUOJiEiblCxERKRNShYiItImJQsREWmTkoWIiLRJyUJERNqkZCEiIm3qtv0sMtUba7eyeOO2dIchIhnse2dMIicrsfcCShZdyN76Bm54ahnbq/Zglu5oRCRTfff0g8nJSuw5lSy6kNfXlrO9ag//fUUhX5o8PN3hiIg0UptFFzJ/2WYG9svhlEOaDcsiIpJWSUsWZjbHzLaY2cqosqfNrChcNplZUVg+3sx2R733QNQx08zsfTNbZ2b3mnXPCppdtXUsWl3K+UeOpHe2criIdC3JrIaaC/weeDRS4O5fi2yb2d1ARdT+6919aozz3A/MAt4GXgDOAV5MfLjptWhVKTV7G7jo6NHpDkVEpJmk/YR1938A22O9F94dXAo82do5zGwkkO/ub7m7EySeGQkOtUuYX7SZMYP6Mu3AQekORUSkmXTVd5wMlLn72qiyCWa2zMxeM7OTw7LRQHHUPsVhWUxmNsvMlpjZkvLy8sRHnSRbdtbwxtpyZkwdTTetZRORDJeuZHEZ+99VlADj3P1o4IfAE2aWD8T65vSWTuruD7p7obsXDhuWOY3Ezy0vocFhxtGj0h2KiEhMKX901syygYuBaZEyd68FasPtpWa2HjiE4E5iTNThY4DNqYs2NeYXfcYRo/M5+IC8dIciIhJTOu4svgR84O6N1UtmNszMssLtg4BJwAZ3LwF2mtlxYTvHFcCCNMScNBvKd7GiuIIZU9WwLSJdVzIfnX0SeAs41MyKzexb4Vszad6wfQqwwsyWA38GrnX3SOP4d4D/BtYB6+lmT0LNL9qMGVxwlKqgRKTrSlo1lLtf1kL5VTHKngWebWH/JcARCQ2ui3B35i/7jBMnDmV4fm66wxERaZF6f6XRsk938Mn2aqZP1V2FiHRtShZpNH/ZZ/TJ7sU5R4xIdygiIq1SskiTvfUNPLeihC9NHk5ebk66wxERaZWSRZq8sXYr26v26CkoEckIShZpMm/ZZwzsl8OpGmFWRDKAkkUaaIRZEck0+qZKA40wKyKZRskiDTTCrIhkGiWLFCvfWasRZkUk4yhZpNhflm/WCLMiknGULFJsQdFnHD5KI8yKSGZRskihDeW7WF5coYZtEck4ShYppBFmRSRTKVmkiLuzoEgjzIpIZlKySJFln+7g420aYVZEMpOSRYos0AizIpLBlCxSYG99A3/RCLMiksGULFJAI8yKSKZTskgBjTArIplOySLJqmrreGl1mUaYFZGMlrRvLzObY2ZbzGxlVNnPzewzMysKl/Oi3rvFzNaZ2YdmdnZU+TQzez98717LsAGVFq0uZffeenXEE5GMlsyfunOBc2KU/8bdp4bLCwBmNhmYCRweHnOfmWWF+98PzAImhUusc3ZZ85ZphFkRyXxJSxbu/g9ge5y7Tweecvdad98IrAOONbORQL67v+XuDjwKzEhKwEkQGWF2+tRRGmFWRDJaOirRrzezFWE1VeTn9mjg06h9isOy0eF20/KYzGyWmS0xsyXl5eWJjrvdGkeY1VNQIpLhUp0s7gcmAlOBEuDusDzWz25vpTwmd3/Q3QvdvXDYsPQ/eRQZYXbScI0wKyKZLaXJwt3L3L3e3RuAh4Bjw7eKgbFRu44BNoflY2KUd3kaYVZEupOUJouwDSLiIiDypNRCYKaZ9TGzCQQN2YvdvQTYaWbHhU9BXQEsSGXMHaURZkWkO8lO1onN7EngNGComRUDPwNOM7OpBFVJm4BvA7j7KjN7BlgN1AHXuXt9eKrvEDxZ1Rd4MVy6tMgIsydMHKIRZkWkW0hasnD3y2IU/6GV/e8A7ohRvgQ4IoGhJV1khNnrTz843aGIiCSEuhQngUaYFZHuRskiwfbWN/CcRpgVkW5GySLB3li7lW0aYVZEuhkliwSbX6QRZkWk+1GySLBln+zgxIOHaoRZEelW9I2WQO5OaWUNowf2TXcoIiIJpWSRQDuq97KnrkF9K0Sk21GySKCynTUAjFCyEJFuRskigUorwmRR0CfNkYiIJFbSenD3RGWVQbJQNZRIN7enCipLoPIz2BmuKzcHZbWVkFsA/QZD30HQN1zHep3dzh+We2uC89fuhJqKYLsmfN24XQln3Q4JnkNHySKBSitqATggT8lCeoA9VbCzNPiyjF431MGgCTBkIgw+CAYeCFkZ8lXjDrs/DxPA5jAJRCWDSGKoqWh+bO5AyB8FffJh2zoo/hyqt0PD3pY/L6dfVPIYFKxz+u2fDGp37ksC9Xva/jfk9IPTboE+Azp8GWLJkL9gZiitrGHogN56bFYy255q2FUalQDKmieEXWXBl1dT2blgWbC3al9Zr+wgYQyZCIMnhusJwfbAcdArq/l5kvlvq/wMKor3rSNL5PXe6iYHGQw4IEgEgybAgScG243LaMgbCb37Nf889yCp7v4cdm8P1tXbo17v2L9sy5rg7qFPXrAMGA5DJkFufliWH9y19Alf5+aHZfn7yrKSM3KEkkUClVXW6K5CUsc9+NVZvTX4sqneBlVbg1+kdbuDL53Ieu/uGGXVUBd5r2bfe7F+vWb1gbwRwZfi8Mlw8Bn7Xg8YHqzzRgRfZAC7tsD29bB9A2xbH2xv2wCb/tkkkeTAoPFRieQgyBsVJBDrBVhQnWK9opamr8MywvK6muYJILLsjjHT84DhUDAGhn0BDv5S8OUfSQL5o4J/V0e/gM2CX/h9BsDAsW3v34UpWSRQaUUNIwqULKQT9u4OqjCqt4Vf/tv2bVdvDdfbg6RQva31Kg6A7L6QkxuuwyU7N1j3H9a8LKdv8Os08uU/YESw7juofXXgecOD5cAT9i93D+5MYiWSDa8FySqR+hRAweggGYyeFqwjSyQZtLfdoIdSskigssoajho7MN1hSKZxh08XQ9HjsGpe7OqdvoOg31DoNySo0hl1NPQPXzcuQ4NG09yCfQkgwY2cnWYG+SODZfxJ+7/X0BBUc+0qAzy4Lt4QtY5aiC5rsp3VO0gQ+aOD6hlJCCWLBKmtq2db1R71sZD4VRTD8qeg6Ing13VOP5g8HSadFVSN9BsSJITcgZnTQNwZvXqFdwEahLMr6gH/BabGlsrgSSj1sZBW7amGD54P7iI2/B1wOPAkOPlHMPnCoApIpAtSskgQ9bGQFrnDp+8ECWLlPNizM3gK6NR/h6NmBk8GiXRxShYJUloZ6b2tZCGhHZ/Cikg10wbI6Q+Hz4CjLgsev+ylR6wlcyhZJEhZpBpKdxY92+7P4aNFwV3Exn8ADuNPhlN+DIddmPCOUiKpkrRkYWZzgC8DW9z9iLDsLuACYA+wHvimu+8ws/HAGuDD8PC33f3a8JhpwFygL/AC8H1392TF3VFllTX0ye5FQV9NpdojVG+H8g+CTlTlHwbb5R+ET/IQPLF02i1w1NeCfgQiGS6ZdxZzgd8Dj0aVvQTc4u51ZvYr4Bbg38P31rv71BjnuR+YBbxNkCzOAV5MUswdFuljYV3tUcWexB3KVgWPX/buD73DzlC984J1Rx4lrdoaOylUle/bJ6c/DDs06NA17FAY8y8w9jhVM0m3krRk4e7/CO8YossWRb18G/hqa+cws5FAvru/Fb5+FJhBV0wWlTVq3E6HmkrY+BqsXQRrX4adm1ve17KiEkj0Oi9Y9+4flNXuChPDmqDjW0TvvCAZTDobDvhC0ON32BeC5/mVGKSbS2ebxdXA01GvJ5jZMqAS+Im7vw6MBoqj9ikOy2Iys1kEdyGMGzcu4QG3pqyyhqPGDEzpZ/ZI7sEX+dpFwfLJW8HAdX3y4aDTgj4Kww4NxuPZsyv44t+zKxgWI9brPVXB3cOenfvey84NksCh5wXrA6KSgu4cpYdKS7Iws1uBOuDxsKgEGOfu28I2ivlmdjgQ6//MFtsr3P1B4EGAwsLClLVruDulFTWcNVl9LJJiT1XQWBy5e6j4JCg/4HA4/rogQYz916QNoCYiaUgWZnYlQcP3GZGGanevBWrD7aVmth44hOBOYkzU4WOAVuoZ0qNi915qNZ1q4rgHYwZF7h4+/mcwuF1O/+Du4eQfwqQzg/F9RCQlUposzOwcggbtU929Oqp8GLDd3evN7CBgErDB3beb2U4zOw54B7gC+F0qY46H+lh00p7qoGG6dDmULIeNr8PnG4P3hh4Kx84KksO44zXom0iaJPPR2SeB04ChZlYM/Izg6ac+wEvhU0ORR2RPAf7DzOqAeuBad4+MJfwd9j06+yJdsXE7Mp2q7izaVlMBpe8HSaFkRbDe+mE4OBzBRDBj/iWsXjpTj52KdBHJfBrqshjFf2hh32eBZ1t4bwlwRAJDSzgN9dGCqq1hUgiX0hVBT+aIvJEw8qhgTKQRU4LtgjFqRBbpgtSDOwEi06n2+GSxqxze/xNsej1IDpWf7Xtv4IFBMph6ebAeMSWY70BEMoKSRQKUVtYwpH8PnU61bg+s/Wsw/tHaRcFjrEMmBZPejDwqTAxHBvMxiEjGUrJIgC09rUOee3DnsPxJWPFMMFXlgBFBO8NRXw/6JYhIt6JkkQCllT1kOtVdW4LkUPQEbFkVzEj2hfODqqWDTu8ZE/SI9FD6vzsByiprmNJVem9/+L9BQ3LB2GDOhIFjIW9Ux7/I62rho/+FoieDaiavh9GFcP49cMTFql4S6SHi/gYxsyxgePQx7v5JMoLKJHvqGti6q4tMp/rPe+GlnzYvt6xgqIqBYQIpGLv/dsGY/fsvuENJUXAH8f6fgmG3B4yAE74HU78eDKchIj1KXMnCzL5H0E+iDAgfiMeBKUmKK2Ns2Rl5bDaNncXc4ZX/gDfugcMvggvuDaqMKj4JJuDZ8QlUfBpsb3w9GGwv0q8BAIO8EfuSyJY1sGU1ZPWJqmY6TdVMIj1YvP/3fx841N23tblnD9PYxyJdbRYN9fD8j2DpwzDtqqB6qFcW5ObD0INjH1O/Fyo3759EdnwSJJfP3oP+w+DLvwkSj6qZRIT4k8WnQEUyA8lUkT4WaamGqtsD874Nq/4HTvohnHFbfB3asnJg0IHBIiISh3iTxQbg72b2POGAfwDufk9SosogjeNCpTpZ7KmGZ74B616GM/8DTvx+aj9fRHqUeJPFJ+HSO1wkVFZZQ+/sXgzsl8LhsXd/Dk98DYrfDdonpl2Zus8WkR4prmTh7r8AMLO84KXvSmpUGaS0ooYR+SmcTnVnGfzx4mACoK8+DIfPSM3nikiPFtf4FGZ2RDiL3UpglZktDScn6vFKK2tSVwX1+SaYczZs3wiXP6NEISIpE+9gRg8CP3T3A939QOBHwEPJCytzlFXWpOZJqC1rYM45QRXUFQtg4heT/5kiIqF42yz6u/urkRfu/ncz65+kmDKGu1NWWcOIZPexKF4Cj3816PfwzRdh+OTkfp6ISBNxPw1lZj8FHgtf/xuwMTkhZY7K3XXU7E3ydKrrX4WnLocBw+Ab82HwhOR9lohIC+KthroaGAb8DzAv3P5msoLKFEmfTnX1Qnji0mC2uKv/qkQhImkT79NQnwM3JDmWjJPUPhbvPQZ/uSEYtO/yZ9STWkTSqtVkYWa/dfcbzewvBGNB7cfdL0xaZBmgrCJJ06m++TtY9JOgEftrf4TePb55SETSrK07i0gbxez2ntjM5gBfBra4+xFh2WDgaWA8sAm4NLxrwcxuAb4F1AM3uPtfw/JpwFygL/AC8H13b5a40iFyZ3FAIhu4X7sLXr0dJs+Aix+CbPWBFJH0a7XNwt2XhptT3f216AWY2sa55wLnNCm7GXjF3ScBr4SvMbPJwEzg8PCY+8Ih0QHuB2YBk8Kl6TnTprSyhsH9e9MnO6vtneNRshz+/p9wxFfhq3OUKESky4i3gTvWeBJXtXaAu/8D2N6keDrwSLj9CDAjqvwpd691943AOuBYMxsJ5Lv7W+HdxKNRx6RdWUUCp1NtaAhGj+07GM6fHYwcKyLSRbTVZnEZ8HVggpktjHorD+jIcOXD3b0EwN1LzOyAsHw08HbUfsVh2d5wu2l5l1CayD4WRY8HYz3NuF+N2SLS5bTVZvEmUAIMBe6OKt8JrEhgHLEGVvJWymOfxGwWQZUV48aNS0xkrQimUy3o/Imqt8PLP4Oxx8GUmZ0/n4hIgrWaLNz9Y+Bj4PgEfV6ZmY0M7ypGAlvC8mJgbNR+Y4DNYfmYGOUtxfsgwdAkFBYWJrURPDKdakKqof72S9i9A86/G3rFWzMoIpI68Q4keJyZvWtmu8xsj5nVm1llBz5vIfvaP64EFkSVzzSzPmY2gaAhe3FYZbUz/HwDrog6Jq0i06l2uo/FZ0thycPwr9+GEUckIDIRkcSLd7iP3xM8rfQnoJDgS7uFOTsDZvYkcBow1MyKCebwvhN4xsy+RTA/xiUA7r7KzJ4BVgN1wHXuXh+e6jvse3T2xXBJu4RMpxqZEnXAAXDazQmKTEQk8eJNFrj7OjPLCr/EHzazN9vY/7IW3jqjhf3vAO6IUb4E6HI/ucsqEzCd6nuPwOZlcPF/Q24C2j5ERJIk3mRRbWa9gSIz+zVBo3eP7lZcWtHJaqiqrfDyL2D8yXDkVxMYmYhI4sXbmvoNIAu4HqgiaIz+SrKCygSdnk715Z/Dnl1w3l2Qqln2REQ6KN6BBD8ON3cDv0heOJmjtLKG4fl9Ojad6qeLYdljcML34IDDEh+ciEiCtdUp731a6dfg7lMSHlGGiMy93W4N9fD8DyFvFJyqRm0RyQxt3Vl8OSVRZKCyyhqOGN2BRul3/wCl78Mlc6HPgITHJSKSDPF0ypMm3J3Syhq+dNjw9h24awv87XY46LRgVFkRkQwRV5uFme1kX3VUbyAHqHL3/GQF1pVFplNt9wx5L90Ge6vhvNlq1BaRjBJvA3de9GszmwEcm4yAMkFkHot2DfXx8Zuw/Ek46YcwdFKSIhMRSY4ODUTk7vOBLyY2lMzR7rm36/cGPbULxsIpNyUxMhGR5Ii3GuriqJe9CIb86BKz1aVDWXs75C1+ELashq89rilSRSQjxduD+4Ko7TqCKVGnJzyaDNGu6VQrS+DV/wcHnwlfOD/JkYmIJEe8bRbfTHYgmaSsPdOpLvoJ1O+B836tRm0RyVjxDlF+kJn9xczKzWyLmS0ws4OSHVxXVVYZ53SqG/8BK/8MJ90Ig3vs5RKRbiDeBu4ngGeAkcAogqHKn0xWUF1dZKiPVtXtgedvgoEHwkk/SE1gIiJJEm+yMHd/zN3rwuWP9OAG7tKK2rYbt9+5H7Z+GAwUmNM3NYGJiCRJvA3cr5rZzcBTBEnia8DzZjYYwN23Jym+LmdvfQPbqmpbr4aq+Az+/is49Dw45OzUBScikiTxJouvhetvNym/miB59JgK+S07a3Fvo4/FX28Br4dz7kxdYCIiSRTv01ATkh1Ipmhz0qN1r8DqBXD6T2DQgSmMTEQkeeLtlJdDMBf2KWHR34H/cve9SYqryypra6iPV/8zePLpxBtSGJWISHLF28B9PzANuC9cpoVlPU7jnUWsaqi6WihZDpOnQ3YcHfZERDJEvG0W/+LuR0W9/puZLe/IB5rZocDTUUUHAbcBA4H/A5SH5f/X3V8Ij7kF+BZQD9zg7n/tyGcnQmQ61UGxplPdshoa9sLIqSmPS0QkmeJNFvVmNtHd10PQSY/gi7vd3P1DYGp4nizgM2Ae8E3gN+4+O3p/M5sMzAQOJ+jj8bKZHeLuHfr8zmp1OtXNRcF65FHN3xMRyWDxJosfEzw+uyF8PZ7gy72zzgDWu/vHrcxlPR14yt1rgY1mto5gePS3EvD57dbqdKolyyG3AAaNT2lMIiLJFm+bxT+B/wIawuW/SMyX9Uz27wl+vZmtMLM5ZjYoLBsNfBq1T3FY1oyZzTKzJWa2pLy8PNYunbZlZyt9LEqKgrsKjQElIt1MvMniUWAC8MtwmQA81pkPNrPewIUEQ4dA0GA+kaCKqgS4O7JrjMNj9h539wfdvdDdC4cNG9aZ8GJyd0orWhgXqn4vlK1Se4WIdEvxVkMd2qSB+9WONnBHORd4z93LACJrADN7CHgufFkMjI06bgywuZOf3SGVNXXs3lsfuxpqy5pgdFm1V4hINxTvncUyMzsu8sLM/pWgaqozLiOqCsrMRka9dxGwMtxeCMw0sz5mNgGYBCzu5Gd3SGMfi1iPzZaEuXPU0SmMSEQkNeK9s/hX4Aoz+yR8PQ5YY2bvA+7uU9rzoWbWDziT/YcP+bWZTSWoYtoUec/dV5nZM8BqgomXrkvbk1Ct9d4uWQ6982CQOruLSPcTb7I4J5Ef6u7VwJAmZd9oZf87gDsSGUNHNM69HTNZFMHIKdCrQ9Oai4h0afGODfVxsgPJBJG5t5tNp1pfB6UrofDqNEQlIpJ8+hncDqWVNQzql0NuTpPpVLd+BHW71bgtIt2WkkU7tDidamPj9tSUxiMikipKFu1QWlkTewDBkiLI6Q9DDk55TCIiqaBk0Q4tTqdashxGHAm9spq/JyLSDShZxKnF6VQbGqBkhdorRKRbU7KIU3lL06luWwd7q9ReISLdmpJFnEobZ8hr8thspHFbdxYi0o0pWcQp0seiWTVUSRFk58LQQ1MflIhIiihZxKnF3tsly2H4EZAVb2d4EZHMo2QRp9LKGnpn9WJw/977ChsagmShKigR6eaULOJUVlHDAU2nU/18I9RWqnFbRLo9JYs4lVbGmE61pChY685CRLo5JYs4lVXWNp/HomQ5ZPWGYYelJygRkRRRsohDZDrVmI3bB0yG7N6xDxQR6SaULOIQczpVd9hcpCooEekRlCziEHM61R2fQM0ONW6LSI+gZBGHmNOpqnFbRHoQJYs4lMXqkFeyHHplwwGHpykqEZHUUbKIQyRZ7Ded6uai4CmonBhDlouIdDNpSRZmtsnM3jezIjNbEpYNNrOXzGxtuB4Utf8tZrbOzD40s7NTHW9pZQ0Do6dTdQ/uLEapCkpEeoZ03lmc7u5T3b0wfH0z8Iq7TwJeCV9jZpOBmcDhwDnAfWaW0lmGmk16VLkZqrfCyKmpDENEJG26UjXUdOCRcPsRYEZU+VPuXuvuG4F1wLGpDKzZ3NuNjdtTUxmGiEjapCtZOLDIzJaa2aywbLi7lwCE6wPC8tHAp1HHFodlzZjZLDNbYmZLysvLExZss6E+SpaD9YLhatwWkZ4hXeNqn+jum83sAOAlM/uglX0tRpnH2tHdHwQeBCgsLIy5T3vtrW9g664mQ31sLgrmr+jdLxEfISLS5aXlzsLdN4frLcA8gmqlMjMbCRCut4S7FwNjow4fA2xOVayN06k2vbNQZzwR6UFSnizMrL+Z5UW2gbOAlcBC4MpwtyuBBeH2QmCmmfUxswnAJGBxquJtnPSoIHxsdmcp7CpVZzwR6VHSUQ01HJgXzguRDTzh7v9rZu8Cz5jZt4BPgEsA3H2VmT0DrAbqgOvcvT5VwTabTrVxzu2pqQpBRCTtUp4s3H0D0OxnubtvA85o4Zg7gDuSHFpMzaZT3VwEGIw4Mh3hiIikRVd6dLZLKq2sISfL9k2nWrIchk6CPgPSG5iISAopWbShrKKGA/Jy902nqjm3RaQHUrJoQ1llLSMij81WbYXKYrVXiEiPo2TRhrLoDnkallxEeigli1a4O6XRQ31sLgrWI6ekLSYRkXRQsmjFzto6qvfU7+tjUbIcBh8EuQXpDUxEJMWULFrRvI9FkaqgRKRHUrJoxX59LKq3B/Nuq3FbRHogJYtWNM69XZALpSuCQt1ZiEgPpGTRish0qsPzc6Mat5UsRKTnUbJoxX7TqZYsh4HjoN/gdIclIpJyShat2G861ZIitVeISI+lZNGKxulUaypg+wZVQYlIj6Vk0YqgQ14fKIk0bk9NazwiIumSrmlVu7y6cDrVEfm5UPJ6UKg7C+nh9u7dS3FxMTU1NekORTopNzeXMWPGkJOTE9f+ShYtKN8VTKc6vCAXiosgfzQMGJbusETSqri4mLy8PMaPH79vJGbJOO7Otm3bKC4uZsKECXEdo2qoFjT2scjPDYcln5regES6gJqaGoYMGaJEkeHMjCFDhrTrDlHJogWRPhYj+9bD1rWqghIJKVF0D+39OypZtCByZzGqZi3gMGpqWuMREUknJYsWlFbWkpNl5H++OijQnYWItNPChQu58847AZg/fz6rV69Oc0Qdl/JkYWZjzexVM1tjZqvM7Pth+c/N7DMzKwqX86KOucXM1pnZh2Z2diriLKsMplPtVbocBoyAvBGp+FgR6cLq6uratf+FF17IzTffDGR+skjH01B1wI/c/T0zywOWmtlL4Xu/cffZ0Tub2WRgJnA4MAp42cwOcff6ZAZZWlETDCCoObdFYvrFX1axenNlQs85eVQ+P7vg8Fb32bRpE+eeey4nnXQSb775JqNHj2bBggWce+65zJ49m8LCQrZu3UphYSGbNm1i7ty5zJ8/n/r6elauXMmPfvQj9uzZw2OPPUafPn144YUXGDx4MOvXr+e6666jvLycfv368dBDD/GFL3yBq666isGDB7Ns2TKOOeYYvvGNb3DttddSXV3NxIkTmTNnDoMGDeLee+/lgQceIDs7m8mTJ/PUU08xd+5clixZwte//nUWLlzIa6+9xu23386zzz7LJZdcwnvvvQfA2rVrmTlzJkuXLk3o9UyklN9ZuHuJu78Xbu8E1gCjWzlkOvCUu9e6+0ZgHXBssuMsq6xh7ACg/AMlC5EuZu3atVx33XWsWrWKgQMH8uyzz7a6/8qVK3niiSdYvHgxt956K/369WPZsmUcf/zxPProowDMmjWL3/3udyxdupTZs2fz3e9+t/H4jz76iJdffpm7776bK664gl/96lesWLGCI488kl/84hcA3HnnnSxbtowVK1bwwAMP7Pf5J5xwAhdeeCF33XUXRUVFTJw4kYKCAoqKigB4+OGHueqqqxJ3gZIgrf0szGw8cDTwDnAicL2ZXQEsIbj7+JwgkbwddVgxLSQXM5sFzAIYN25ch+OKTKd6+egt4A1q3BaJoa07gGSaMGECU6dOBWDatGls2rSp1f1PP/108vLyyMvLo6CggAsuuACAI488khUrVrBr1y7efPNNLrnkksZjamtrG7cvueQSsrKyqKioYMeOHZx66qkAXHnllY3HTJkyhcsvv5wZM2YwY8aMNv8N11xzDQ8//DD33HMPTz/9NIsXL27HFUi9tDVwm9kA4FngRnevBO4HJgJTgRLg7siuMQ73WOd09wfdvdDdC4cN63gHush0qof4+qBAdxYiXUqfPn0at7OysqirqyM7O5uGhgaAZv0Hovfv1atX4+tevXpRV1dHQ0MDAwcOpKioqHFZs2ZN4zH9+/dvM6bnn3+e6667jqVLlzJt2rQ22ze+8pWv8OKLL/Lcc88xbdo0hgwZ0vY/PI3SkizMLIcgUTzu7v8D4O5l7l7v7g3AQ+yraioGxkYdPgbYnMz4ItOpjqv5CPoNDXpvi0iXNn78+MY6/z//+c/tOjY/P58JEybwpz/9CQhqF5YvX95sv4KCAgYNGsTrrwdDAD322GOceuqpNDQ08Omnn3L66afz61//mh07drBr1679js3Ly2Pnzp2Nr3Nzczn77LP5zne+wze/+c12xZsO6XgayoA/AGvc/Z6o8pFRu10ErAy3FwIzzayPmU0AJgFJvV8rqwxuP4fuDNsr1AlJpMu76aabuP/++znhhBPYunVru49//PHH+cMf/sBRRx3F4YcfzoIFC2Lu98gjj/DjH/+YKVOmUFRUxG233UZ9fT3/9m//xpFHHsnRRx/ND37wAwYOHLjfcTNnzuSuu+7i6KOPZv36oNbi8ssvx8w466yz2h1vqpl7zBqd5H2g2UnA68D7QENY/H+BywiqoBzYBHzb3UvCY24FriZ4kupGd3+xrc8pLCz0JUuWdCjGPy8t5tY/vcsH/a7BTvw+nHFbh84j0t2sWbOGww47LN1hdBuzZ8+moqKCX/7yl2n5/Fh/TzNb6u6FTfdNeQO3u79B7HaIF1o55g7gjqQF1URZZQ2HWDHWUKf2ChFJiosuuoj169fzt7/9Ld2hxEWjzsZQWlHDsX0+CV5oAEERSYJ58+alO4R20XAfMZRW1nBM748hd2Aw77aISA+nZBFDWWUNk9mgxm0RkZCSRQxbd+xk7N5N6ownIhJSsmiirr6BQdUbyPa9atwWEQkpWTRRvquWw21j8EKN2yI9xmmnnUZHH7dvj3vvvZfDDjuMyy+/vMPnSFWs0fQ0VBOlFTUcYZuoyxlA9qD45qYVkZ4tMtxIPO677z5efPHFVue+bs/5UqVrRdMFlFXWcGSvjdQMPZIBvXTjJdKiF2+G0vcTe84RR8K5d7b4dkvDk/ft25fTTjutU0OUA/zxj3/khhtuoLKykjlz5nDsscdSVVXF9773Pd5//33q6ur4+c9/zvTp05k7dy7PP/88NTU1VFVVNesvcc899zBnzhwgGDTwxhtv5Nprr2XDhg1ceOGFXH311fzgBz9o3L/p+W677TZmz57Nc889B8D1119PYWFhs9FpFy1axM9+9jNqa2uZOHEiDz/8MAMGDODmm29m4cKFZGdnc9ZZZzF79n6zP7Sbvg2bKPt8F4fZx/QapfYKka6ovcOTQ3xDlANUVVXx5ptvct9993H11VcDcMcdd/DFL36Rd999l1dffZUf//jHVFVVAfDWW2/xyCOPNEsUS5cu5eGHH+add97h7bff5qGHHmLZsmU88MADjBo1ildffXW/RBHR0vlasnXrVm6//XZefvll3nvvPQoLC7nnnnvYvn078+bNY9WqVaxYsYKf/OQncZ2vNbqzaKKu/ENybS8N46alOxSRrq2VO4Bkau/w5ND2EOURl112GQCnnHIKlZWV7Nixg0WLFrFw4cLGX+Y1NTV88knQaffMM89svCuJ9sYbb3DRRRc1jlZ78cUX8/rrr3P00Ue3GmdL52vJ22+/zerVqznxxBMB2LNnD8cffzz5+fnk5uZyzTXXcP755/PlL3857nO2RMmiib7lwfiFvfTYrEiX1HR48t27dwN0aojyCGvSr8rMcHeeffZZDj300P3ee+edd1ocuryjY+5Fny/63wPN/02RzznzzDN58sknm723ePFiXnnlFZ566il+//vfd3pYEVVDNTG4cg27LReGTEx3KCLSDp0Zojzi6aefBoI7g4KCAgoKCjj77LP53e9+15gAli1b1uZ5TjnlFObPn091dTVVVVXMmzePk08+uV2xHHjggaxevZra2loqKip45ZVXmu1z3HHH8c9//pN169YBUF1dzUcffcSuXbuoqKjgvPPO47e//W3jjHydoTuLJkbXfMhnfSZxcK+sdIciIu1w0003cemll/LYY4/xxS9+sUPnGDRoECeccEJjAzfAT3/6U2688UamTJmCuzN+/PjGRueWHHPMMVx11VUce2wwLc8111zTZhVUU2PHjuXSSy9lypQpTJo0Kebxw4YNY+7cuVx22WWNM/vdfvvt5OXlMX36dGpqanB3fvOb37Trs2NJ+RDlqdLRIcp3zLuJugGjGHrmD5MQlUhm0xDl3UuXHqK8qxt4UeceLxMR6Y7UZiEiIm1SshCRdumuVdc9TXv/jkoWIhK33Nxctm3bpoSR4dydbdu2kZubG/cxarMQkbiNGTOG4uJiysvL0x2KdFJubi5jxoyJe38lCxGJW05OTqsD4En3pWooERFpk5KFiIi0SclCRETa1G17cJtZOfBxBw8fCmxNYDiJpvg6R/F1juLrnK4e34HuPqxpYbdNFp1hZktidXfvKhRf5yi+zlF8ndPV42uJqqFERKRNShYiItImJYvYHkx3AG1QfJ2j+DpH8XVOV48vJrVZiIhIm3RnISIibVKyEBGRNilZRDGzc8zsQzNbZ2Y3pymGsWb2qpmtMbNVZvb9sPznZvaZmRWFy3lRx9wSxvyhmZ2dghg3mdn7YRxLwrLBZvaSma0N14PSEZ+ZHRp1jYrMrNLMbkzn9TOzOWa2xcxWRpW1+3qZ2bTwuq8zs3vNzJIc411m9oGZrTCzeWY2MCwfb2a7o67lA8mOsYX42v03TXF8T0fFtsnMisLylF+/hHB3LUG7TRawHjgI6A0sByanIY6RwDHhdh7wETAZ+DlwU4z9J4ex9gEmhP+GrCTHuAkY2qTs18DN4fbNwK/SFV+Tv2kpcGA6rx9wCnAMsLIz1wtYDBwPGPAicG6SYzwLyA63fxUV4/jo/ZqcJykxthBfu/+mqYyvyft3A7el6/olYtGdxT7HAuvcfYO77wGeAqanOgh3L3H398LtncAaYHQrh0wHnnL3WnffCKwj+Lek2nTgkXD7EWBGVHm64jsDWO/urfXkT3p87v4PYHuMz437epnZSCDf3d/y4Fvl0ahjkhKjuy9y97rw5dtAq+NZJzPGFq5hS1J+DVuLL7w7uBR4srVzJPtv3FlKFvuMBj6Nel1M61/SSWdm44GjgXfCouvDKoE5UdUW6YjbgUVmttTMZoVlw929BIKEBxyQxvgiZrL//6Bd5fpB+6/X6HA71XFGXE3wSzdigpktM7PXzOzksCwdMbbnb5qua3gyUObua6PKusr1i5uSxT6x6gbT9lyxmQ0AngVudPdK4H5gIjAVKCG4rYX0xH2iux8DnAtcZ2antLJvWq6rmfUGLgT+FBZ1pevXmpbiSVucZnYrUAc8HhaVAOPc/Wjgh8ATZpafhhjb+zdN1zW8jP1/tHSV69cuShb7FANjo16PATanIxAzyyFIFI+7+/8AuHuZu9e7ewPwEPuqSlIet7tvDtdbgHlhLGXhbXTkdnpLuuILnQu85+5lYaxd5vqF2nu9itm/GiglcZrZlcCXgcvDqhHC6p1t4fZSgjaBQ1IdYwf+pim/hmaWDVwMPB0Vd5e4fu2lZLHPu8AkM5sQ/iqdCSxMdRBh/eYfgDXufk9U+cio3S4CIk9dLARmmlkfM5sATCJoJEtWfP3NLC+yTdAIujKM48pwtyuBBemIL8p+v+a6yvWL0q7rFVZV7TSz48L/Rq6IOiYpzOwc4N+BC929Oqp8mJllhdsHhTFuSHWM7f2bpuMaAl8CPnD3xuqlrnL92i3dLexdaQHOI3j6aD1wa5piOIng1nMFUBQu5wGPAe+H5QuBkVHH3BrG/CFJfnqC4Gmx5eGyKnKdgCHAK8DacD04HfGFn9cP2AYURJWl7foRJK0SYC/Br8dvdeR6AYUEX4jrgd8TjsCQxBjXEdT9R/47fCDc9yvh33458B5wQbJjbCG+dv9NUxlfWD4XuLbJvim/folYNNyHiIi0SdVQIiLSJiULERFpk5KFiIi0SclCRETapGQhIiJtUrIQSRAzG2hm323l/TfjOMeuxEYlkhhKFiKJMxBoliwiHbDc/YRUBySSKNnpDkCkG7kTmBjOW7AX2EXQUWsqMNnMdrn7gHDcrwXAICAH+Im7d52euiIxqFOeSIKEowQ/5+5HmNlpwPPAER4Mk01UssgG+rl7pZkNJRj+e5K7e2SfNP0TRFqkOwuR5FkcSRRNGPCf4Wi9DQTDUA8nmKhJpEtSshBJnqoWyi8HhgHT3H2vmW0CclMWlUgHqIFbJHF2EkyF25YCYEuYKE4nmPZVpEvTnYVIgrj7NjP7p5mtBHYDZS3s+jjwFzNbQjCa6wcpClGkw9TALSIibVI1lIiItEnJQkRE2qRkISIibVKyEBGRNilZiIhIm5QsRESkTUoWIiLSpv8PvKNkjQaPl/IAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] @@ -715,22 +545,22 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "" + "" ] }, - "execution_count": 9, + "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] diff --git a/XCS_Experiments/utils/nxcs_utils.py b/XCS_Experiments/utils/nxcs_utils.py index 42185aa..a13632a 100644 --- a/XCS_Experiments/utils/nxcs_utils.py +++ b/XCS_Experiments/utils/nxcs_utils.py @@ -1,5 +1,34 @@ import pandas as pd -from lcs.agents.xncs import XNCS, Configuration +import numpy as np +import random +from lcs.agents.xncs import XNCS, Configuration, Classifier, ClassifiersList, Effect +from lcs.agents.xcs import Condition + + +def maze_knowledge(population, environment): + transitions = environment.env.get_all_possible_transitions() + + # Count how many transitions are anticipated correctly + nr_correct = 0 + + # For all possible destinations from each path cell + for start, action, end in transitions: + p0 = environment.env.maze.perception(*start) + p1 = environment.env.maze.perception(*end) + if any([True for cl in population + if predicts_successfully(cl, p0, action, p1)]): + nr_correct += 1 + return nr_correct / len(transitions) * 100.0 + + +def predicts_successfully(cl: Classifier, p0, action, p1): + if cl.does_match(p0): + if cl.action == action: + if cl.effect is None: + return False + if cl.effect == Effect(p1): + return True + return False def cl_accuracy(cl, cfg): @@ -9,28 +38,36 @@ def cl_accuracy(cl, cfg): return cfg.alpha * pow(1 / (cl.error * cfg.epsilon_0), cfg.v) -def fraction_accuracy(xncs): - action_sets_percentages = [] - for action in range(xncs.cfg.number_of_actions): - action_set = xncs.population.generate_action_set(action) - total_accuracy = 0 - most_numerous = action_set[0] - for cl in action_set: - total_accuracy += cl_accuracy(cl, xncs.cfg) - if cl.numerosity > most_numerous.numerosity: - most_numerous = cl - action_sets_percentages.append(cl_accuracy(most_numerous, xncs.cfg) / total_accuracy) - return sum(action_sets_percentages) / xncs.cfg.number_of_actions +def fraction_accuracy(xncs: XNCS): + return xncs.fraction_accuracy def specificity(xncs, population): total_specificity = 0 for cl in population: - total_specificity += pow(2, cl.wildcard_number) + total_specificity += pow(2, cl.wildcard_number) * cl.numerosity return total_specificity / xncs.population.numerosity -def xcs_maze_metrics(xncs: XNCS, environment): +def xncs_maze_metrics(xncs: XNCS, environment): + return { + 'numerosity': xncs.population.numerosity, + 'population': len(xncs.population), + 'average_specificity': specificity(xncs, xncs.population), + 'fraction_accuracy': fraction_accuracy(xncs), + 'knowledge': maze_knowledge(xncs.population, environment), + } + +def xncs_woods_metrics(xncs: XNCS, environment): + return { + 'numerosity': xncs.population.numerosity, + 'population': len(xncs.population), + 'average_specificity': specificity(xncs, xncs.population), + 'fraction_accuracy': fraction_accuracy(xncs), + } + + +def xncs_metrics(xncs: XNCS, environment): return { 'numerosity': xncs.population.numerosity, 'population': len(xncs.population), @@ -39,23 +76,66 @@ def xcs_maze_metrics(xncs: XNCS, environment): } -def avg_experiment(maze, cfg, number_of_tests=1, trials=3000): +def avg_experiment(maze, cfg, number_of_tests=1, explore_trials=3000, exploit_trials=1000, pre_generate=False): test_metrics =[] for i in range(number_of_tests): print(f'Executing {i} experiment') - test_metrics.append(start_single_experiment(maze, cfg, trials)) + if pre_generate: + population = XNCS_population(maze, cfg) + else: + population = None + test_metrics.append(start_single_experiment(maze, + cfg, + explore_trials, + exploit_trials, + population)) return pd.concat(test_metrics).groupby(['trial']).mean() -def start_single_experiment(maze, cfg, trials=3000): - agent = XNCS(cfg) - _, current_metrics = agent.explore(maze, trials, True) - df = parse_results(current_metrics, cfg) +def start_single_experiment(maze, cfg, explore_trials, exploit_trials, population=None): + agent = XNCS(cfg, population) + _, explore_metrics = agent.explore(maze, explore_trials) + _, exploit_metrics = agent.exploit(maze, exploit_trials) + df = parse_results(explore_metrics, cfg) + df_exploit = parse_results_exploit(exploit_metrics, cfg, explore_trials) + df = df.append(df_exploit) return df +def XNCS_classifier(situation, cfg): + generalized = [] + effect = [] + for i in range(len(situation)): + if np.random.rand() > cfg.covering_wildcard_chance: + generalized.append(cfg.classifier_wildcard) + else: + generalized.append(situation[i]) + effect.append(str(random.choice(situation))) + cl = Classifier(cfg=cfg, + condition=Condition(generalized), + action=random.randrange(0, cfg.number_of_actions), + time_stamp=0, + effect=Effect(effect)) + return cl + + +def XNCS_population(maze, cfg): + classifiers_list = ClassifiersList(cfg) + while classifiers_list.numerosity < cfg.max_population: + situation = maze.reset() + classifiers_list.insert_in_population(XNCS_classifier(situation, cfg)) + return classifiers_list + + def parse_results(metrics, cfg): df = pd.DataFrame(metrics) df['trial'] = df.index * cfg.metrics_trial_frequency df.set_index('trial', inplace=True) return df + + +def parse_results_exploit(metrics, cfg, explore_trials): + df = pd.DataFrame(metrics) + df['trial'] = df.index * cfg.metrics_trial_frequency + explore_trials + df.set_index('trial', inplace=True) + return df diff --git a/XCS_Experiments/utils/xcs_utils.py b/XCS_Experiments/utils/xcs_utils.py index 3d5ee36..19702e9 100644 --- a/XCS_Experiments/utils/xcs_utils.py +++ b/XCS_Experiments/utils/xcs_utils.py @@ -7,15 +7,86 @@ import gym # noinspection PyUnresolvedReferences import gym_maze +import random +import numpy as np +from lcs.agents.xcs import ClassifiersList +from lcs.agents.xcs import Classifier +from lcs.agents.xcs import Condition + + +def maze_knowledge(population, environment): + transitions = environment.env.get_all_possible_transitions() + + # Count how many transitions are anticipated correctly + nr_correct = 0 + + # For all possible destinations from each path cell + for start, action, end in transitions: + p0 = environment.env.maze.perception(*start) + if any([True for cl in population + if predicts_successfully(cl, p0, action)]): + nr_correct += 1 + return nr_correct / len(transitions) * 100.0 + + +def predicts_successfully(cl: Classifier, p0, action): + if cl.does_match(p0): + if cl.action == action: + return True + return False + + +def cl_accuracy(cl, cfg): + if cl.error < cfg.epsilon_0: + return 1 + else: + return cfg.alpha * pow(1 / (cl.error * cfg.epsilon_0), cfg.v) + + +def specificity(xncs, population): + total_specificity = 0 + for cl in population: + total_specificity += pow(2, cl.wildcard_number) * cl.numerosity + return total_specificity / xncs.population.numerosity def xcs_metrics(xcs: XCS, environment): return { 'population': len(xcs.population), - 'numerosity': sum(cl.numerosity for cl in xcs.population) + 'numerosity': sum(cl.numerosity for cl in xcs.population), + 'average_specificity': specificity(xcs, xcs.population), } +def xcs_maze_metrics(xcs: XCS, environment): + return { + 'population': len(xcs.population), + 'numerosity': sum(cl.numerosity for cl in xcs.population), + 'average_specificity': specificity(xcs, xcs.population), + 'knowledge': maze_knowledge(xcs.population, environment), + } + + +def XCS_classifier(situation, cfg): + generalized = [] + for i in range(len(situation)): + if np.random.rand() > cfg.covering_wildcard_chance: + generalized.append(cfg.classifier_wildcard) + else: + generalized.append(situation[i]) + + return Classifier(condition=Condition(generalized), + action=random.randrange(0, cfg.number_of_actions), + time_stamp=0, + cfg=cfg) + +def XCS_population(maze, cfg): + classifiers_list = ClassifiersList(cfg) + while classifiers_list.numerosity < cfg.max_population: + situation = maze.reset() + classifiers_list.insert_in_population(XCS_classifier(situation, cfg)) + return classifiers_list + def parse_results(metrics, cfg): df = pd.DataFrame(metrics) df['trial'] = df.index * cfg.metrics_trial_frequency @@ -30,18 +101,21 @@ def parse_results_exploit(metrics, cfg, explore_trials): return df -def avg_experiment(maze, cfg, number_of_tests=1, explore_trials=4000, exploit_metrics=1000): +def avg_experiment(maze, cfg, number_of_tests=1, explore_trials=4000, exploit_trials=1000, pre_generate=False): test_metrics = [] for i in range(number_of_tests): print(f'Executing {i} experiment') - test_metrics.append(start_single_experiment(maze, cfg, explore_trials, exploit_metrics)) + if pre_generate: + population = XCS_population(maze, cfg) + else: + population = None + test_metrics.append(start_single_experiment(maze, cfg, explore_trials, exploit_trials, population)) return pd.concat(test_metrics).groupby(['trial']).mean() -def start_single_experiment(maze, cfg, explore_trials=4000, exploit_metrics=1000): - agent = XCS(cfg) +def start_single_experiment(maze, cfg, explore_trials=4000, exploit_metrics=1000, population=None): + agent = XCS(cfg, population) explore_population, explore_metrics = agent.explore(maze, explore_trials, False) - agent = XCS(cfg=cfg, population=explore_population) exploit_population, exploit_metrics = agent.exploit(maze, exploit_metrics) df = parse_results(explore_metrics, cfg) diff --git a/environment.yml b/environment.yml index 1b804cc..6d238f4 100644 --- a/environment.yml +++ b/environment.yml @@ -15,5 +15,6 @@ dependencies: - dill - pip: - gym==0.11 + - xcs==1.0.0 - "-e git+https://github.com/ParrotPrediction/pyalcs.git@1d6b794e730f22c5c93a78b7aa4d43d75350e41c#egg=parrotprediction-pyalcs" - "-e git+https://github.com/ParrotPrediction/openai-envs.git@d20d24d2a52c0cc01e24613ba5a49b1d781da413#egg=parrotprediction-openai-envs" diff --git a/examples/xcs/XCS_maze5.py b/examples/xcs/XCS_maze5.py new file mode 100644 index 0000000..a5cb5fe --- /dev/null +++ b/examples/xcs/XCS_maze5.py @@ -0,0 +1,19 @@ +from lcs.agents.xcs import Configuration +from XCS_Experiments.utils.xcs_utils import * +from lcs.agents.xcs import Configuration, XCS, GeneticAlgorithm + + +env = MazeScenario(input_size=8) +env.maze.reset() +env.maze.render() + +cfg = Configuration(number_of_actions=8, + max_population=400, + metrics_trial_frequency=100, + covering_wildcard_chance=0.9, + mutation_chance=1, + delta=0.1, + user_metrics_collector_fcn=xcs_metrics) + +agent = XCS(cfg) +population, metrics = agent.explore(env, 1000) diff --git a/examples/xncs/XNCS_maze5.py b/examples/xncs/XNCS_maze5.py new file mode 100644 index 0000000..2a1a6d9 --- /dev/null +++ b/examples/xncs/XNCS_maze5.py @@ -0,0 +1,19 @@ +from XCS_Experiments.utils.xcs_utils import * +from lcs.agents.xncs import Configuration, XNCS + + +env = MazeScenario(input_size=8) +env.maze.reset() +env.maze.render() + +cfg = Configuration(number_of_actions=8, + max_population=400, + metrics_trial_frequency=100, + covering_wildcard_chance=0.9, + mutation_chance=1, + lmc=10, + delta=0.1, + user_metrics_collector_fcn=xcs_metrics) + +agent = XNCS(cfg) +population, metrics = agent.explore(env, 1000)