{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from nim_env import NimEnv\n", "from utils import compute_nim_sum, optimal_policy, random_policy\n", "import random\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "# from agent import RLAgent\n", "from sarsa import RLAgent\n", "from tqdm import tqdm\n", "import pandas as pd\n", "pd.options.display.float_format = '{:,.3f}'.format\n", "\n", "# plt figure setup\n", "from matplotlib import rc\n", "\n", "plt.rc('axes', labelsize=14) # fontsize of the x and y labels\n", "plt.rc('axes', titlesize=14)\n", "plt.rc('xtick', labelsize=13) # fontsize of the tick labels\n", "plt.rc('ytick', labelsize=13)\n", "plt.rc('legend', fontsize=14) # legend fontsize\n", "plt.rc('figure', titlesize=14) # fontsize of the figure title\n", "plt.rc('lines', markersize=7)\n", "plt.rc('lines', linewidth=2)\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\n", " \"ny\"\n", "

\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SARSA agent against fixed policy (teacher)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "import random\n", "\n", "def evaluate_fixed(agent, N):\n", " player0_ep_rewards = [0]*N\n", " player1_ep_rewards = [0]*N\n", " for i in range(N):\n", " done = False\n", " heaps = random.sample(range(1, 8), 3)\n", " env = NimEnv(heaps)\n", " turn = 0\n", " while not done:\n", " action = agent.decide(heaps)\n", " next_heaps, winner, reward, done, turn = env.step(action)\n", " if done:\n", " break\n", " adv_action = optimal_policy(next_heaps, randomness=0.2)\n", " nextnext_heaps, winner, adv_reward, done, _ = env.step(adv_action)\n", " heaps = nextnext_heaps\n", "\n", "\n", " if winner == 0:\n", " player0_ep_rewards.append(1) \n", " player1_ep_rewards.append(-1) \n", " else: # if winner == 1 \n", " player0_ep_rewards.append(-1)\n", " player1_ep_rewards.append(1) \n", "\n", " return np.mean(player0_ep_rewards), np.mean(player1_ep_rewards)\n" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "heaps = [7,7,7]\n", "env = NimEnv(heaps)\n", "\n", "\n", "def run_experiment(env, num_episodes):\n", " player0_rewards = []\n", " player1_rewards = []\n", " agent0 = RLAgent() # RL agent for player 0\n", " # agent1 = RLAgent() # RL agent for player 1\n", "\n", " for episode in tqdm(range(1, num_episodes+1)):\n", " heaps = env.reset() \n", " env = NimEnv(heaps)\n", " \n", " winner = None\n", " done = False\n", "\n", " action = None\n", " reward = None\n", " old_0 = (None, None) # old state/action for player0\n", " old_reward = None\n", " i = 0\n", " while not done:\n", " action = agent0.decide(heaps)\n", " next_heaps, winner, reward, done, _ = env.step(action)\n", " if i > 0:\n", " agent0.learn(old_0[0], old_0[1], old_reward, heaps, action)\n", " if done:\n", " agent0.learn(heaps, action, reward[0])\n", " break\n", " \n", " adv_action = optimal_policy(next_heaps, randomness=0.2)\n", " nextnext_heaps, winner, adv_reward, done, _ = env.step(adv_action)\n", " if done:\n", " agent0.learn(heaps, action, adv_reward[0])\n", " break\n", " \n", " old_0 = heaps, action\n", " old_reward = adv_reward[0]\n", " heaps = nextnext_heaps\n", " i += 1\n", "\n", " r0, r1 = evaluate_fixed(agent0, 10)\n", " player0_rewards.append(r0) \n", " player1_rewards.append(r1) \n", " \n", " return player0_rewards, player1_rewards, agent0" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 50000/50000 [03:20<00:00, 249.48it/s]\n" ] } ], "source": [ "num_episodes = 50000\n", "r0, r1, agent = run_experiment(env, num_episodes)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "image/png": "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0i4lI8UPrw1RBLHLChERERFRHHFiICIiIiKiOGJATkREREQUR/m+D3mFChVk7dq1Y37es2fPIikpkhOzUSLidc4feJ3zB17n/IHXOX+Ix3VeuXLlISllRbtt+T4gr127NlasWBHz827cuBENGzaM+Xkptnid8wde5/yB1zl/4HXOH+JxnYUQ2522scsKEREREVEcMSAnIiIiIoojBuRERERERHHEgJyIiIiIKI4YkBMRERERxVG+z7JCREREucOJEydw4MABZGRkRO0cGRkZSElJidrxKTFE4zoXL14c1atXR4ECwbd3MyAnIiKihHfixAns378f1apVQ3JyMoQQUTlPamoqkpOTo3JsShyRvs7Z2dnYvXs3Dh06hEqVKgW9P7usEBERUcI7cOAAqlWrhmLFikUtGCcKVYECBVC5cmUcP348tP0jXB8iIiKiiMvIyGDLNSW0woULIzMzM6R9GZATERFRrsCWcUpk4bw/GZATEREREcURA3IiIiIi8uy3335DgwYNkJWV5XmfMWPGoEmTJlGsVXSlp6ejZs2aWLFiRVSOz4CciIiIKEoOHjyIe+65B7Vr10aRIkVQuXJldOrUCfPnz/cre+DAARQtWhQ1a9ZEdna23/batWtDCAEhBJKTk9GwYUO88sorkFKayn399ddo164dypQpgxIlSqBhw4YYNGiQbf3uv/9+FCxYEO+9957n1/TQQw/hscceQ8GCBT3vk+iklBgzZgyqVq2K5ORkdOjQAevXr8/ZXqRIETz00EN45JFHonJ+BuREREREUdKrVy8sX74cU6dOxebNm/Hdd9/hqquuwuHDh/3KfvDBB+jZsyeKFi2KuXPn2h7vySefxN69e5GSkoKRI0di9OjRePfdd3O2//zzz+jduzd69uyJpUuXYvXq1bZBO6BafadPn45HH30UU6ZM8fR6Fi9ejI0bN6J3794efwOJxSmH/csvv4xXX30Vb7zxBv78809UqlQJnTt3xsmTJ3PK3Hzzzfjjjz9MgXqkMCAnIiIiioJjx45h4cKFeOmll9CpUyfUqlULrVu3xsiRI9G3b1+/8tOmTcOtt96K/v37Y+rUqbbHLFmyJKpUqYLatWtj0KBBaNasGebNm5ezffbs2WjTpg1Gjx6Nhg0bon79+ujZs6ft8b788kvUrl0bjz32GFJSUrBu3bqAr+nTTz/FlVdeiWLFiuWs07qjTJkyBTVr1kRycjKuu+46HDp0yPE4f/75J7p06YIKFSqgVKlSuPTSS7FkyZKc7XfccQd69Ohh2ic7Oxs1a9bE+PHjAahW7Zdffhn16tVDcnIymjZtik8++SSn/LZt2yCEwIwZM3DFFVcgOTkZkydP9quLlBITJkzAo48+il69eqFJkyb48MMPcfLkSXz66ac55cqVK4dLLrkEM2bMCPh7ChYDciIiIqIoKFGiBEqUKIFvv/0WaWlprmUXLlyIw4cPo1u3brjlllswe/ZsHDx40LG8lBILFixASkoKChcunLO+SpUq2LhxI/7666+A9ZsyZQpuueUWFCtWDDfccIOnVvKFCxeiVatWfuu3bduGTz75BN988w1++uknbNmyBXfccYfjcU6ePIn+/ftj4cKFWL58OS688EJ07949J4gfPHgw5syZg7179+bsM3/+fOzbtw/9+/cHADz++OOYOnUq3nrrLWzYsAGjRo3CXXfdhe+//950rlGjRuGee+7Bhg0bcN111/nV5b///sO+ffvQpUuXnHXJycm4/PLLsXjxYlPZiy66CL/99lvA31PQpJT5+tGyZUsZD1t/+EHKffvicm6KnZSUlHhXgWKA1zl/4HWOrw0bNpieA/F5BGvmzJmybNmyskiRIrJt27ZyxIgRcunSpX7lbr31Vjl06NCc55dddpkcN26cqUytWrVkUlKSLF68uCxcuLAEIIsWLSoXLVqUU+bUqVOye/fuEoCsXr267NWrl3z77bflyZMnTcfaunWrLFy4sNy7d6+UUsqff/5Zli9fXqalpbm+ntKlS8tp06aZ1j311FOyQIECcvv27TnrFi5cKAHIzZs355Rp3Lix43Gzs7NllSpV5Mcff5yzrnHjxvLFF1/Med6nTx/Zq1evnNdZtGhR+fvvv5uOM2zYMHnVVVdJKaX877//JAC/36OUUp45cyZnedGiRRKAqf5SSnn77bfLLl26mNZNnDhRVq9e3fF1WN+nRgBWSId4lC3k8bByJep27w5UqRLvmhAREVEU9erVC3v27MHs2bNx1VVXYfHixWjbti1eeOGFnDInTpzAzJkzc1p+ATh2Wxk+fDjWrFmD3377DR07dsRTTz2Fiy++OGd78eLF8f333+Off/7BU089hTJlymDUqFFo3Lgx9u/fn1Nu2rRp6NSpE6r4YpEOHTqgWLFi+Prrr11fT2pqKooWLeq3vlq1aqhZs2bO8zZt2qBAgQJISUmxPc6BAwdw1113oUGDBihdujRKliyJAwcOYMeOHTllBg8ejPfffx8AcOTIEXzzzTcYOHAgAGDDhg1IS0tDt27dcu5ElChRAm+//Ta2bt1qOpddi74dax5xKaXfuuTkZKSmpno6XjAKRfyIFJjHNwYRERHZsxmjGBGpqakRnxG0aNGi6Ny5Mzp37ownn3wSgwYNwpgxYzBy5EgkJSXh008/xZkzZ3DJJZeY9svKysKiRYtM68uXL49zzz0X5557LmbNmoX69eujTZs26Nixo2nfevXqoV69ehg0aBAee+wxNGjQAG+//TbGjBmDrKwsfPDBB9izZw8KFdJDwezsbEyZMgX/93//5/haKlSogKNHj4b9OxkwYAD279+P1157LScDTadOnXD27NmcMv3798cjjzyCP/74A6tXr0aFChVyupVoWWhmz55t+iIAwNSFB1BfUtxoX0r27duHGjVq5Kw/cOAAKleubCp75MgRVKxYMchXGxgD8ng7cwYwDIwgIiKivK1Ro0bIzMxEWloakpKSMHXqVNx777246667TOUeffRRTJ061S9Q15QtWxb33nsvHnzwQaxevdpxpsjatWujWLFiOHXqFABgzpw5OHz4MFasWIGkpKSccjt27ECPHj2wbds21K5d2/ZYzZs3x4YNG/zW7969Gzt37swJaJcvX47s7Gycf/75tsf5448/8Prrr+Pqq68GAOzfv9/UXxxQgyhvuOEGTJs2DatXr8Ztt92Wk2qxUaNGKFKkCLZv344rrrjC9hxe1alTB1WqVMH8+fPRunVrAEBaWhoWLlyIV155xVR23bp1aNGiRVjns8OAPN4YkBMREeVJhw8fRu/evXHHHXegWbNmKFmyJFasWIGXX34ZnTp1QqlSpbB27VqsWLECU6dO9Zs4p3///hg4cCAmTpyIkiVL2p5j6NChGDt2LL744gv06dMHY8aMwZkzZ9C9e3fUqlULx44dw+uvv45Tp07hmmuuAaAGc1511VV+gWWTJk1w3nnnYdq0aXjmmWdsz9e1a1fbrjTJyckYMGAAxo8fj9TUVAwZMgRXX3016tevb3ucBg0a4JNPPkGbNm1w+vRpPPzww6YvB5rBgwejW7duyMjIwMyZM3PWlyxZEiNHjsTIkSMhpcTl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SUnIikID3uHDh5GSkoK33noLHTt2BACsWrUq6EGXzZs3xwcffGBa99VXX2H9+vWY66F7bqhdVpKSktCyZUvMnz8fvXv3zlk/f/58v644RsOGDcNnn32GBQsWOM6wuW7dOlStWjVgYB8ORn3xVKqU+fn27cCWLUDJksCLL8anTkRERBRRb775JjIzM3HllVfil19+wc6dO7FgwQJ07twZUkq8+eabpvJ79uzBAw88gE2bNmHmzJl45ZVX8OCDDwIAateujeXLl2Pbtm04dOhQTut2uMqWLYsKFSrgvffewz///IPffvsNQ4YM8Rt0GYiWmeWwYY6V9PR0HDhwAB9++CG2bduGDRs2YOrUqTh9+rTf/uXKlcO5557r+nCa8n748OH44IMPMGXKFKSkpGDYsGHYs2cPhgwZAkBdB2PQPXToULz//vuYMWMGypYti3379mHfvn04deqU6bgLFy5Et27dgvo9BIsBeTxt3Qq8957+fN8+4KmngDNngNGj41cvIiIiiph69ephxYoVaNy4Mfr374+6deuiX79+OP/88/Hnn3+iTp06pvI333wzsrKy0KZNGwwePBgDBw7MCchHjhyJpKQkNGrUCBUrVgyqf7ebAgUK4PPPP8fatWvRpEkTDB06FM8++yyKFCkS1HGaNm2Kiy66CJ999lnOur59++L+++/HE088gfPOOw8dO3bEd999h+LFi0ek7pr/+7//w4QJE/Dcc8/hwgsvxB9//IEffvgBtWrVAqAGfm7atCmn/KRJk3Dy5El06tQJ55xzTs5j3LhxOWXS0tLw1VdfYfDgwRGtq5WQIfSHyktatWolV6xYEfPzbty4Uf+Wpg02uPRSICVFn7nzn3+AOMxyRZFjus6UZ/E65w+8zvGVkpLi2O84klJTUx1bYGOhQ4cOaNKkiV+reW4yZ84cDBs2DBs2bPAbIJkovF7nt956C9988w3mzZvn6bhu71MhxEopZSu7bWwhTyR//AG0bq0/5wyeRERElMt069YNQ4cOxa5du+JdlbAVLlwYb7zxRtTPw0GdiWbOHH159+741YOIiIgoRPfff3+8qxARd955Z0zOw4CciIiIKEEsWLAg3lWgOGCXFSIiIiKiOGJAngh8U9j6MfYnJyIiIqI8iQF5ImjRwn79n39y9k4iIiKiPI4BeSLYts1527PPAmlpMasKERFRosrvqZopsYXz/mRAngjuu89529NPAzfcELu6EBERJaDChQsjNTU13tUgcpSRkRH0zKYaBuSJoGxZ9+0//hibehARESWoSpUqYffu3Thz5gxbyinhZGdnY//+/ShdunRI+zPtYW5x+jQQ4SlmiYiIcotSpUoBAPbs2YOMjIyonScjIwOFCxeO2vEpMUTjOhcvXhwVKlQIaV8G5LnFU08B48bFuxZERERxU6pUqZzAPFo2btyIhg0bRvUcFH+Jdp3ZZSW3WLEi3jUgIiIioihgQJ4oOnVy3376dGzqQUREREQxxYA8Ucyd676dLeREREREeRID8kRRsGDgMvv2Rb8eRERERBRTDMhzk4MH410DIiIiIoowBuS5SXp6vGtARERERBHGgDyRLFoEJCUBP/0ErF4NdOxozj3upVsLEREREeUqzEOeSC6+2NwK/ssvwJ9/AhddpJ5nZcWnXkREREQUNWwhT3StW+vLn38ev3oQERERUVQwIM9NZs6Mdw2IiIiIKMIYkOcmd98NbN0KCAEMHhzv2hARERFRBDAgzw3uvFP9PHYMOPdctTxlStyqQ0RERESRw4A8NyjkG3v74ovxrQcRERERRRwD8tygEJPhEBEREeVVDMhzA6f841LGth5EREREFHEMyHMDpxbyhQtjWw8iIiIiijgG5LmBU0B+1VWxrQcRERERRRwD8tzAKSA/cya29SAiIiKiiGNAnhukpNiv79EjtvUgIiIioohjQJ4bOM3QecUVsa0HEREREUUcA/LcLDsbWLIE+OGHeNeEiIiIiELEgDw30gZznj0LXHwxcPXVwKFD8a0TEREREYWEAXlu1KyZ+jl6tL5uw4b41IWIiIiIwsKAPDdYtkxfvuce+4mCnPqZExEREVFCY0CeG1x0EXDzzWr5zTeBAjaXrXDh2NaJiIiIiCKCAXlu8ckngJSAEECRIv7bN240P//9d+d0iURERESUMBxmnKGEVrSo/zpjppXdu4H27dWylLGpExERERGFhC3kuZFdQG701FOxqQcRERERhY0BeW4UKCCfOlVfzsz0375vH1vOiYiIiBIEA/LcyC7LipP69c3PP/8cOOcc+4GhRERERBRzjMpyo+++81522zbz87599WW2khMRERHFHQPy3MgpkE5JAbKzvR9n797I1IeIiIiIQsaAPDcqX95+faNGwIwZ/ut/+AGoXRtYssS8/tAhlUZRCAbnRERERHHCgDw3GjXKedstt/iv69UL2L4dGDbMvL5sWX35iisiUzciIiIiCgoD8tyodu3gyqelqZ9//mle/8cf+rJ1YiEiIiIiigkG5LmRMUPKpk2hH+fXX8OvCxERERGFhTN15lbbtgHp6UCDBqEf47339OWkpLCrRERERETBY0CeW9WqFdnjnT0b2eMRERERkSfsskJEREREFEcMyPOq6dPD2z8tDcjIiExdiIiIiMgRA/K8YO1a4PXXzes6dQr9eBkZQHIy+5UTERERxQAD8rygaVPghhvM6wqFMTzgk0/05Q0bQj8OEREREQXEgDyvsA7KLFgw+GPMng107QrccYe+7vTp8OpFRERERK6YZSWvKF7c/Lxw4eCPcc01/uvCaWknIiIiooDYQp5XVKpkfl6gAPDqq973L1rUfv2hQ+rn+vXA5MlAdnZo9SMiIiIiWwzI86qiRYFevbyXT0uzX9+nD3DrrUCTJsCQIcCXX0amfkREREQEgAF53vL00/qyEObJgz79VF9+6y3vxzx2DPj4Y/35c8+FXD0iIiIi8seAPC958klASvWwKltW33b33cBll+nbSpf2fo6//gq/nkRERESUgwF5XvfBByprSpcu+johgN9/B9asAY4fB4oUiVftiIiIiPI9ptDI6wYMUA87F1ygfnICICIiIqK4YQs5RScglxLIzIz8cYmIiIjyGAbkFFpAfuyYfV91Tfv2QMmSQHp6yNUiIiIiyg8YkFPwAfm8eWqQ6PDhzmUWLlSpFJctC69uRERERHkcA3IKPiAfMkT9nDAhcNnTp4OuDhEREVF+woCcgLNngyv/33/m58uXA5s22ZetXDm0OhERERHlEwzICVi7NvR9160D2rQBGjYEZs0CVq0yb9+6Nby6EREREeVxDMgpPE2b6ss33gi0bGlucb/zztjXiYiIiCgXYUBOkbdwob784IPxqwcRERFRLsCAnALr1g34/HPv5Q8f1perV498fYiIiIjyEAbk5Gz2bKBrV+Cjj4A+fbzvN3q0vpyaGvl6EREREeUhheJdAUoApUsDx4/7r+/RQz2CZRzIuWtX6PUiIiIiygfYQk7BdUcJ1ksvOW97802gWTNzFxciIiKifCZhA3IhREEhxCtCiINCiJNCiFlCiAoOZbsLIX4RQhwSQhwVQiwUQlwW6zrnWsnJ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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "N=100\n", "r0_conv = np.convolve(r0, np.ones(N)/N, mode='valid')\n", "r1_conv = np.convolve(r1, np.ones(N)/N, mode='valid')\n", "fig = plt.figure(figsize=(12,8))\n", "plt.plot(range(1, len(r0_conv)+1), r0_conv, color='b', label='SARSA (player 0)')\n", "plt.plot(range(1, len(r1_conv)+1), r1_conv, color='r', label=r'Optimal ($\\epsilon = 0.2$)')\n", "plt.legend()\n", "plt.xlabel('episode')\n", "plt.ylabel('reward')\n", "plt.grid(True,'major',linestyle='-',linewidth=0.5)\n", "plt.grid(True,'minor',linestyle='--',linewidth=0.25) \n", "plt.title(r'SARSA against $\\epsilon$-greedy optimal policy')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Q-table\n" ] }, { "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", "
(1, 1)(1, 2)(1, 3)(1, 4)(1, 5)(1, 6)(1, 7)(2, 1)(2, 2)(2, 3)...(2, 5)(2, 6)(2, 7)(3, 1)(3, 2)(3, 3)(3, 4)(3, 5)(3, 6)(3, 7)
(0, 0, 0)0.8890.7410.7940.6280.8200.7940.8370.8980.4450.824...0.6930.7240.6500.8590.5850.4880.5370.4320.7660.793
(0, 0, 1)-0.811-0.866-0.852-0.815-0.861-0.868-0.853-0.818-0.846-0.787...-0.819-0.820-0.8771.000-0.875-0.824-0.851-0.891-0.8860.000
(0, 0, 2)-0.458-0.400-0.513-0.474-0.512-0.468-0.571-0.442-0.462-0.510...-0.605-0.520-0.438-0.6751.000-0.440-0.485-0.4750.0000.000
(0, 0, 3)-0.467-0.4860.000-0.294-0.4030.000-0.110-0.469-0.226-0.166...-0.276-0.161-0.239-0.879-0.9151.000-0.0920.0000.0000.000
(0, 0, 4)-0.466-0.2650.0000.000-0.3370.0000.000-0.462-0.188-0.036...-0.184-0.176-0.129-0.620-0.824-0.7681.0000.0000.0000.000
(0, 0, 5)-0.0900.0000.000-0.1070.0000.0000.000-0.143-0.0440.000...0.000-0.0360.000-0.369-0.482-0.589-0.2001.0000.0000.000
(0, 0, 6)0.0000.0000.000-0.0360.0000.0000.000-0.1790.000-0.059...0.0000.0000.000-0.226-0.200-0.360-0.2000.0000.9990.000
(0, 0, 7)0.000-0.0110.0000.0000.0000.0000.0000.0000.006-0.036...0.0000.0000.0000.0000.000-0.360-0.200-0.200-0.3600.965
(0, 1, 0)-0.734-0.827-0.828-0.853-0.861-0.887-0.8881.000-0.712-0.883...-0.847-0.8820.000-0.766-0.857-0.873-0.864-0.856-0.859-0.868
(0, 1, 1)0.8000.8010.7980.8030.7880.7850.637-0.9920.7550.767...0.7630.7800.000-0.9940.7980.7450.7970.6980.7690.000
\n", "

10 rows × 21 columns

\n", "
" ], "text/plain": [ " (1, 1) (1, 2) (1, 3) (1, 4) (1, 5) (1, 6) (1, 7) (2, 1) \\\n", "(0, 0, 0) 0.889 0.741 0.794 0.628 0.820 0.794 0.837 0.898 \n", "(0, 0, 1) -0.811 -0.866 -0.852 -0.815 -0.861 -0.868 -0.853 -0.818 \n", "(0, 0, 2) -0.458 -0.400 -0.513 -0.474 -0.512 -0.468 -0.571 -0.442 \n", "(0, 0, 3) -0.467 -0.486 0.000 -0.294 -0.403 0.000 -0.110 -0.469 \n", "(0, 0, 4) -0.466 -0.265 0.000 0.000 -0.337 0.000 0.000 -0.462 \n", "(0, 0, 5) -0.090 0.000 0.000 -0.107 0.000 0.000 0.000 -0.143 \n", "(0, 0, 6) 0.000 0.000 0.000 -0.036 0.000 0.000 0.000 -0.179 \n", "(0, 0, 7) 0.000 -0.011 0.000 0.000 0.000 0.000 0.000 0.000 \n", "(0, 1, 0) -0.734 -0.827 -0.828 -0.853 -0.861 -0.887 -0.888 1.000 \n", "(0, 1, 1) 0.800 0.801 0.798 0.803 0.788 0.785 0.637 -0.992 \n", "\n", " (2, 2) (2, 3) ... (2, 5) (2, 6) (2, 7) (3, 1) (3, 2) \\\n", "(0, 0, 0) 0.445 0.824 ... 0.693 0.724 0.650 0.859 0.585 \n", "(0, 0, 1) -0.846 -0.787 ... -0.819 -0.820 -0.877 1.000 -0.875 \n", "(0, 0, 2) -0.462 -0.510 ... -0.605 -0.520 -0.438 -0.675 1.000 \n", "(0, 0, 3) -0.226 -0.166 ... -0.276 -0.161 -0.239 -0.879 -0.915 \n", "(0, 0, 4) -0.188 -0.036 ... -0.184 -0.176 -0.129 -0.620 -0.824 \n", "(0, 0, 5) -0.044 0.000 ... 0.000 -0.036 0.000 -0.369 -0.482 \n", "(0, 0, 6) 0.000 -0.059 ... 0.000 0.000 0.000 -0.226 -0.200 \n", "(0, 0, 7) 0.006 -0.036 ... 0.000 0.000 0.000 0.000 0.000 \n", "(0, 1, 0) -0.712 -0.883 ... -0.847 -0.882 0.000 -0.766 -0.857 \n", "(0, 1, 1) 0.755 0.767 ... 0.763 0.780 0.000 -0.994 0.798 \n", "\n", " (3, 3) (3, 4) (3, 5) (3, 6) (3, 7) \n", "(0, 0, 0) 0.488 0.537 0.432 0.766 0.793 \n", "(0, 0, 1) -0.824 -0.851 -0.891 -0.886 0.000 \n", "(0, 0, 2) -0.440 -0.485 -0.475 0.000 0.000 \n", "(0, 0, 3) 1.000 -0.092 0.000 0.000 0.000 \n", "(0, 0, 4) -0.768 1.000 0.000 0.000 0.000 \n", "(0, 0, 5) -0.589 -0.200 1.000 0.000 0.000 \n", "(0, 0, 6) -0.360 -0.200 0.000 0.999 0.000 \n", "(0, 0, 7) -0.360 -0.200 -0.200 -0.360 0.965 \n", "(0, 1, 0) -0.873 -0.864 -0.856 -0.859 -0.868 \n", "(0, 1, 1) 0.745 0.797 0.698 0.769 0.000 \n", "\n", "[10 rows x 21 columns]" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print('Q-table')\n", "agent.q.head(10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### SARSA agent against another SARSA agent" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import random\n", "\n", "def evaluate(agent, N):\n", " player0_ep_rewards = [0]*N\n", " player1_ep_rewards = [0]*N\n", " for i in range(N):\n", " done = False\n", " heaps = random.sample(range(1, 8), 3)\n", " env = NimEnv(heaps)\n", " turn = 0\n", " while not done:\n", " action = agent[turn].decide(heaps)\n", " next_heaps, winner, reward, done, turn = env.step(action)\n", " if winner == 0:\n", " player0_ep_rewards.append(1) \n", " player1_ep_rewards.append(-1) \n", " else: # if winner == 1 \n", " player0_ep_rewards.append(-1)\n", " player1_ep_rewards.append(1) \n", "\n", " return np.mean(player0_ep_rewards), np.mean(player1_ep_rewards)\n", "\n", "\n", " " ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "heaps = [7,7,7]\n", "env = NimEnv(heaps)\n", "\n", "\n", "def run_experiment(env, num_episodes):\n", " player0_rewards = []\n", " player1_rewards = []\n", " agent0 = RLAgent() # RL agent for player 0\n", " agent1 = RLAgent() # RL agent for player 1\n", "\n", " for episode in tqdm(range(1, num_episodes+1)):\n", " heaps = env.reset() \n", " env = NimEnv(heaps)\n", " \n", " winner = None\n", " done = False\n", "\n", " action = [None, None]\n", " reward = [None, None]\n", " old_0 = (None, None) # old state/action for player0\n", " old_1 = (None, None) # old state/action for player1\n", " old_reward = None\n", " i = 0\n", " while not done:\n", " action[0] = agent0.decide(heaps)\n", " next_heaps, winner, reward[0], done, _ = env.step(action[0])\n", " if i > 0:\n", " agent0.learn(old_0[0], old_0[1], old_reward[0], heaps, action[0])\n", " if done:\n", " agent0.learn(heaps, action[0], reward[0][0])\n", " if i > 0:\n", " agent1.learn(old_1[0], old_1[1], reward[0][1])\n", " break\n", " \n", " action[1] = agent1.decide(next_heaps)\n", " nextnext_heaps, winner, reward[1], done, _ = env.step(action[1])\n", " if i > 0:\n", " agent1.learn(old_1[0], old_1[1], old_reward[1], next_heaps, action[1])\n", " if done:\n", " agent0.learn(heaps, action[0], reward[1][0])\n", " agent1.learn(next_heaps, action[1], reward[1][1])\n", " break\n", " \n", "\n", " old_0 = heaps, action[0]\n", " old_1 = next_heaps, action[1]\n", " old_reward = reward[1]\n", " heaps = nextnext_heaps\n", " i += 1\n", "\n", " r0, r1 = evaluate([agent0, agent1], 10)\n", " player0_rewards.append(r0) \n", " player1_rewards.append(r1) \n", " \n", " return player0_rewards, player1_rewards, [agent0, agent1]\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 100000/100000 [10:33<00:00, 157.84it/s]\n" ] } ], "source": [ "num_episodes = 100_000\n", "r0, r1, agents = run_experiment(env, num_episodes)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "N=500\n", "r0_conv = np.convolve(r0, np.ones(N)/N, mode='valid')\n", "r1_conv = np.convolve(r1, np.ones(N)/N, mode='valid')\n", "fig = plt.figure(figsize=(12,8))\n", "plt.plot(range(1, len(r0_conv)+1), r0_conv, color='b', label='player0')\n", "plt.plot(range(1, len(r1_conv)+1), r1_conv, color='r', label='player1')\n", "plt.legend()\n", "plt.xlabel('episode')\n", "plt.ylabel('reward')\n", "plt.grid(True,'major',linestyle='-',linewidth=0.5)\n", "plt.grid(True,'minor',linestyle='--',linewidth=0.25) \n", "plt.title(r'SARSA against SARSA (first to play advantage?)')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Q-table\n" ] }, { "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", "
(1, 1)(1, 2)(1, 3)(1, 4)(1, 5)(1, 6)(1, 7)(2, 1)(2, 2)(2, 3)...(2, 5)(2, 6)(2, 7)(3, 1)(3, 2)(3, 3)(3, 4)(3, 5)(3, 6)(3, 7)
(0, 0, 0)0.0000.0000.0000.0000.0000.0000.0000.0000.0000.000...0.0000.0000.0000.0000.0000.0000.0000.0000.0000.000
(0, 0, 1)0.0000.0000.0000.0000.0000.0000.0000.0000.0000.000...0.0000.0000.0001.0000.0000.0000.0000.0000.0000.000
(0, 0, 2)0.0000.0000.0000.0000.0000.0000.0000.0000.0000.000...0.0000.0000.000-1.0001.0000.0000.0000.0000.0000.000
(0, 0, 3)0.0000.0000.0000.0000.0000.0000.0000.0000.0000.000...0.0000.0000.000-0.977-0.9861.0000.0000.0000.0000.000
(0, 0, 4)0.0000.0000.0000.0000.0000.0000.0000.0000.0000.000...0.0000.0000.000-0.790-0.790-0.7381.0000.0000.0000.000
(0, 0, 5)0.0000.0000.0000.0000.0000.0000.0000.0000.0000.000...0.0000.0000.000-0.488-0.738-0.360-0.5901.0000.0000.000
(0, 0, 6)0.0000.0000.0000.0000.0000.0000.0000.0000.0000.000...0.0000.0000.000-0.2000.0000.0000.0000.0000.9880.000
(0, 0, 7)0.0000.0000.0000.0000.0000.0000.0000.0000.0000.000...0.0000.0000.000-0.200-0.200-0.200-0.360-0.360-0.2000.956
(0, 1, 0)0.0000.0000.0000.0000.0000.0000.0001.0000.0000.000...0.0000.0000.0000.0000.0000.0000.0000.0000.0000.000
(0, 1, 1)0.0000.0000.0000.0000.0000.0000.000-1.0000.0000.000...0.0000.0000.000-1.0000.0000.0000.0000.0000.0000.000
\n", "

10 rows × 21 columns

\n", "
" ], "text/plain": [ " (1, 1) (1, 2) (1, 3) (1, 4) (1, 5) (1, 6) (1, 7) (2, 1) \\\n", "(0, 0, 0) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 1) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 2) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 3) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 4) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 5) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 6) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 7) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 \n", "(0, 1, 0) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 \n", "(0, 1, 1) 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -1.000 \n", "\n", " (2, 2) (2, 3) ... (2, 5) (2, 6) (2, 7) (3, 1) (3, 2) \\\n", "(0, 0, 0) 0.000 0.000 ... 0.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 1) 0.000 0.000 ... 0.000 0.000 0.000 1.000 0.000 \n", "(0, 0, 2) 0.000 0.000 ... 0.000 0.000 0.000 -1.000 1.000 \n", "(0, 0, 3) 0.000 0.000 ... 0.000 0.000 0.000 -0.977 -0.986 \n", "(0, 0, 4) 0.000 0.000 ... 0.000 0.000 0.000 -0.790 -0.790 \n", "(0, 0, 5) 0.000 0.000 ... 0.000 0.000 0.000 -0.488 -0.738 \n", "(0, 0, 6) 0.000 0.000 ... 0.000 0.000 0.000 -0.200 0.000 \n", "(0, 0, 7) 0.000 0.000 ... 0.000 0.000 0.000 -0.200 -0.200 \n", "(0, 1, 0) 0.000 0.000 ... 0.000 0.000 0.000 0.000 0.000 \n", "(0, 1, 1) 0.000 0.000 ... 0.000 0.000 0.000 -1.000 0.000 \n", "\n", " (3, 3) (3, 4) (3, 5) (3, 6) (3, 7) \n", "(0, 0, 0) 0.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 1) 0.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 2) 0.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 3) 1.000 0.000 0.000 0.000 0.000 \n", "(0, 0, 4) -0.738 1.000 0.000 0.000 0.000 \n", "(0, 0, 5) -0.360 -0.590 1.000 0.000 0.000 \n", "(0, 0, 6) 0.000 0.000 0.000 0.988 0.000 \n", "(0, 0, 7) -0.200 -0.360 -0.360 -0.200 0.956 \n", "(0, 1, 0) 0.000 0.000 0.000 0.000 0.000 \n", "(0, 1, 1) 0.000 0.000 0.000 0.000 0.000 \n", "\n", "[10 rows x 21 columns]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "print('Q-table')\n", "agents[1].q.head(10)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "The environment at beginning is: [3, 1, 5]\n", "agent took action [3, 3]\n", "[3, 1, 2]\n", "you took action [1, 1]\n", "[2, 1, 2]\n", "agent took action [2, 1]\n", "[2, 0, 2]\n", "you took action [1, 1]\n", "[1, 0, 2]\n", "agent took action [3, 1]\n", "[1, 0, 1]\n", "you took action [3, 1]\n", "[1, 0, 0]\n", "agent took action [1, 1]\n", "[0, 0, 0]\n", "agent win(s)!\n" ] } ], "source": [ "heaps = random.sample(range(1, 8), 3)\n", "env = NimEnv(heaps)\n", "agent = agents[1]\n", "print('The environment at beginning is:', end=' ')\n", "env.render(simple=True)\n", "done = False\n", "\n", "while not done:\n", " action = agent.exploit(heaps)\n", " heaps, winner, reward, done, turn = env.step(action)\n", " print('agent took action ', action)\n", " env.render(simple=True)\n", " if done:\n", " break\n", " entry = input('enter [heap, n_objects]: ')\n", " move = [int(entry[0]), int(entry[2])]\n", " heaps, winner, reward, done, turn = env.step(move)\n", " print('you took action ', move)\n", " env.render(simple=True)\n", " # print('\\n')\n", " # print('\\n')\n", " # print(f\"player {turn['next_turn']} turn\")\n", " \n", "\n", "# print('\\nHere is the reward: ', reward)\n", "winner = 'agent' if winner == 0 else 'you'\n", "print(f'{winner} win(s)!')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Old" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "num_episodes = 500\n", "num_seed = 10\n", "heaps = random.sample(range(1, 8), 3)\n", "env = NimEnv(heaps)\n", "\n", "\n", "def run_experiment(env, num_episodes):\n", " player0_rewards = []\n", " player1_rewards = []\n", " agent = [RLAgent(), RLAgent()] # agents for player 0,1\n", " # agent = RLAgent() # player 0 plays against e-greedy optimal policy\n", " # agent0 = RLAgent() # RL agent for player 0\n", " # agent1 = RLAgent() # RL agent for player 1\n", " actions = [None, None]\n", " reward = [None, None]\n", "\n", " for episode in tqdm(range(1, num_episodes+1)):\n", " player0_episode_reward = []\n", " player1_episode_reward = []\n", "\n", " for seed in range(num_seed):\n", " heaps = env.reset(seed) # fixed seeds to evaluate performance on same set of initial conditions\n", " env = NimEnv(heaps)\n", " winner = None\n", " done = False\n", " old_heaps = None\n", " turn = 0\n", " next_turn = None\n", " action[0] = agent[0].decide(heaps)\n", " while not done:\n", " # print(heaps)\n", " # print(action)\n", " next_heaps = None\n", " nextnext_heaps = None\n", " next_heaps, winner, reward0, done, next_turn = env.step(action0) # agent0 takes action a\n", " if done:\n", " agent[turn].learn(heaps, action[turn], reward[turn][0])\n", " if old_heaps is not None:\n", " agent[next_turn].learn(old_heaps, action1, reward[turn][1])\n", " break\n", " action1 = agent1.decide(next_heaps)\n", " nextnext_heaps, winner, reward1, done, _ = env.step(action1) # agent1 takes action a'\n", " if done:\n", " agent0.learn(heaps, action0, reward1[0])\n", " agent1.learn(next_heaps, action1, reward1[1])\n", " break\n", " next_action0 = agent0.decide(nextnext_heaps)\n", " next3_heaps, winner, reward0, done, _ = env.step(next_action0)\n", " agent0.learn(heaps, action0, reward0[0], nextnext_heaps, next_action0)\n", " if done:\n", " agent1.learn(next_heaps, action1, reward0[1])\n", " break\n", " next_action1 = agent1.decide(next3_heaps)\n", " agent1.learn(next_heaps, action1, reward1[1], next3_heaps, next_action1)\n", " next4_heaps, winner, reward1, done, _ = env.step(next_action1)\n", " if done:\n", " agent0.learn(nextnext_heaps, next_action0, reward1[0])\n", " agent1.learn(next3_heaps, next_action1, reward1[1])\n", " break\n", " nextnext_action0 = agent0.decide(next4_heaps)\n", "\n", " old_heaps = next3_heaps.copy()\n", " action1 = next_action1.copy()\n", " heaps = next4_heaps.copy()\n", " action0 = nextnext_action0.copy()\n", "\n", " if winner == 0:\n", " player0_episode_reward.append(1) \n", " player1_episode_reward.append(-1) \n", " else: # if winner == 1 \n", " player0_episode_reward.append(-1)\n", " player1_episode_reward.append(1) \n", " \n", " player0_rewards.append(np.mean(player0_episode_reward)) \n", " player1_rewards.append(np.mean(player1_episode_reward)) \n", " return player0_rewards, player1_rewards, agent\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "num_episodes = 5000\n", "num_seed = 100\n", "heaps = random.sample(range(1, 8), 3)\n", "env = NimEnv(heaps)\n", "\n", "\n", "def run_experiment(env, num_episodes):\n", " player0_rewards = []\n", " player1_rewards = []\n", " # agent = [RLAgent(), RLAgent()] # agents for player 0,1\n", " agent = RLAgent() # player 0 plays against e-greedy optimal policy\n", " # agent0 = RLAgent() # RL agent for player 0\n", " # agent1 = RLAgent() # RL agent for player 1\n", "\n", " for episode in tqdm(range(1, num_episodes+1)):\n", " player0_episode_reward = []\n", " player1_episode_reward = []\n", "\n", " for seed in range(num_seed):\n", " heaps = env.reset(seed) # fixed seeds to evaluate performance on same set of initial conditions\n", " #heaps = [7,7,7]\n", " env = NimEnv(heaps)\n", " winner = None\n", " done = False\n", " action = agent.decide(heaps)\n", " while not done:\n", " # print(heaps)\n", " # print(action)\n", " next_heaps = None\n", " nextnext_heaps = None\n", " next_heaps, winner, rewards, done, _ = env.step(action)\n", " if done:\n", " agent.learn(heaps, action, rewards[0])\n", " break\n", " adv_action = optimal_policy(next_heaps, randomness=0.2)\n", " # print('nextheaps1=', next_heaps)\n", " # print('adv_action=', adv_action)\n", " nextnext_heaps, winner, adv_reward, done, _ = env.step(adv_action)\n", " if done:\n", " agent.learn(heaps, action, adv_reward[0]) #adv_reward[0]\n", " break\n", " nextnext_action = agent.decide(nextnext_heaps)\n", " # print(f'Q({heaps}, {action}) = ', agent.getQ(heaps, action))\n", " agent.learn(heaps, action, rewards[0], nextnext_heaps, nextnext_action)\n", " # print('Q(heaps, action) = ', agent.getQ(heaps, action))\n", "\n", " heaps = nextnext_heaps.copy()\n", " action = nextnext_action.copy()\n", "\n", " if winner == 0:\n", " player0_episode_reward.append(1) \n", " player1_episode_reward.append(-1) \n", " else: # if winner == 1 \n", " player0_episode_reward.append(-1)\n", " player1_episode_reward.append(1) \n", " \n", " player0_rewards.append(np.mean(player0_episode_reward)) \n", " player1_rewards.append(np.mean(player1_episode_reward)) \n", " return player0_rewards, player1_rewards, agent\n" ] } ], "metadata": { "interpreter": { "hash": "4369559244255f10d34bca352df9b3f8794934e60b17f3451fa3b0f2f96527a8" }, "kernelspec": { "display_name": "Python 3.8.8 64-bit ('base': conda)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.8" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }