2024-heraklion-scientific-p.../notebooks/walker/Step_0_Introduction/Step_0_Introduction.ipynb

287 lines
141 KiB
Plaintext
Raw Permalink Normal View History

2024-08-27 14:52:41 +02:00
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"ExecuteTime": {
"end_time": "2022-08-18T09:35:27.540830Z",
"start_time": "2022-08-18T11:35:27.028238+02:00"
},
"execution": {
"iopub.execute_input": "2022-08-20T06:18:30.408Z",
"iopub.status.busy": "2022-08-20T06:18:30.402Z",
"iopub.status.idle": "2022-08-20T06:18:30.968Z",
"shell.execute_reply": "2022-08-20T06:18:30.957Z"
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"import matplotlib.pyplot as plt\n",
"\n",
"from walker import create_context_map, next_step_proposal, plot_trajectory, sample_next_step"
]
},
{
"cell_type": "markdown",
"metadata": {
"pycharm": {
"name": "#%% md\n"
}
},
"source": [
"# Examples of how the code works"
]
},
{
"cell_type": "markdown",
"metadata": {
"nteract": {
"transient": {
"deleting": false
}
}
},
"source": [
"The walker code works in the following way:\n",
"\n",
"The function `next_step_proposal` to creates a map of the probability of ending up in any position, given the current position, some map parameters, and the size of the map"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"execution": {
"iopub.execute_input": "2022-08-20T06:18:30.980Z",
"iopub.status.busy": "2022-08-20T06:18:30.974Z",
"iopub.status.idle": "2022-08-20T06:18:31.108Z",
"shell.execute_reply": "2022-08-20T06:18:31.138Z"
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7fc6b6844400>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 288x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"proposal = next_step_proposal(current_i=100, current_j=50, sigma_i=10, sigma_j=5, size=200)\n",
"plt.matshow(proposal)"
]
},
{
"cell_type": "markdown",
"metadata": {
"nteract": {
"transient": {
"deleting": false
}
}
},
"source": [
"The function `create_context_map` creates a context map that tell us regions in the image with a higher probability of being looked at (e.g., very bright spots in an image)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"execution": {
"iopub.execute_input": "2022-08-20T06:18:31.125Z",
"iopub.status.busy": "2022-08-20T06:18:31.119Z",
"iopub.status.idle": "2022-08-20T06:18:31.352Z",
"shell.execute_reply": "2022-08-20T06:18:31.385Z"
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.colorbar.Colorbar at 0x7fc6b68df080>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAASEAAAD0CAYAAADUmZAzAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsvX+wbdtV1/kZc6197k0wv0gEYxIroY22Ia0NRdmIXRZNbAlIEf9AK2jZ2Kabqm7A3y2JdGk3LVVi20StgrZoQGkKDDHS+krpRosf1T8KHjxAkSRGngnCi1GIIdFuefecteboP8YYc4659t7nx733ec97b4+qfc7ea6+91lxjrfmdY3zHmGOKqnKSk5zkJI9KyqNuwElOcpLnt5xA6CQnOckjlRMIneQkJ3mkcgKhk5zkJI9UTiB0kpOc5JHKCYROcpKTPFI5gdBJTnKSRyonEDrJSU7ySOUEQic5yUkeqcyPugEnOcnzVT7/P/kk/VcfW6+174//1L3vU9U3P8NNeiRyAqGTnOQRyUc/tvL49736WvvuXvlPX/EMN+eRyQmETnKSRybKqvVRN+KRywmETnKSRyQKVE4TyE8gdJKTPEKpnCyhEwid5CSPSBRlPZXSefQhehF5s4h8QESeFJG3P4TjvUZEflBE3i8i7xWRP+zbP1lE/r6I/Iz/f9kDnmcSkZ8Ukb/jn18nIo/78b9bRM4e4NgvFZH3iMg/9uv4LQ+r/SLyR10vPy0if11E7j5o20Xk20TkF0Tkp9O2g+0Vk7/s9/unROQz7+PY/6Pr5qdE5H8TkZem797hx/6AiHz+/bQ9ffcnRERF5BX30/brSEWv9bqOXNWXROSO398n/X6/Nn13UG/HjikiX+nbmn58+811pKqP7AVMwD8FPg04A/4h8IYHPOYrgc/09y8C/gnwBuDPA2/37W8Hvv4Bz/PHgO8C/o5/fjfwVn//V4D/6gGO/e3Af+Hvz4CXPoz2A68CPgS8ILX5Dzxo24HfBnwm8NNp28H2Al8I/O+AAJ8NPH4fx/4dwOzvvz4d+w3+DN0BXufP1nTT4/v21wDfB/wz4BX30/arXr/pN+70ox9+1bVewBMP2peA/xr4K/7+rcB3X6a3y44JfAbwWuBnQz/3q6NHbQn9ZuBJVf2gqp4D7wLe8iAHVNWPqOpP+Pt/A7wf63xvwTo3/v933e85ROTVwO8EvsU/C/B5wHse9Pgi8mKsY3wrgKqeq+rHH2L7Z+AFIjIDLwQ+8qBtV9X/E/jYZvOx9r4F+F/V5EeAl4rIK29ybFX9e6q6+McfASLO/RbgXap6T1U/BDyJPWM3bTvAO4E/CYMZcqO2XyUKXGi91usacp2+lO/Je4A3+bN7TG9Hj6mqP6mqP3ugHTfW0aMGoVcBP58+P+XbHoq4ufkZwOPAp6rqR8CACviUBzj0X8Qe0Hg6Xg58PHWMB7mOTwN+Efir7u59i4h8Eg+h/ar6YeAvAD+Hgc8ngB9/iG3Pcqy9D/ue/0Fs5H1oxxaRLwY+rKr/cPPVQ39e6zVfwCtE5In0+vL7aFvbx+/3J7Bn99hv7+d6b/ybR01My4FtD4WpE5FfAfxN4I+o6r82wH8ox/0i4BdU9cdF5HNj84Fd7/c6Zsw9+CpVfVxE/hLmzjywOC/zFszk/jjwN4AvOLDrM8mWPjRdicjXAAvwnQ/r2CLyQuBrMJdv7+sHPf74Q2W9/s8/qqqfdcn312nbsX2ObT9kpFzV4Bvr6FFbQk9hvnfIq4F//qAHFZEdBkDfqarf45v/ZZiF/v8X7vPwvxX4YhH5Wcw8/TzMMnqpuzjwYNfxFPCUqj7un9+DgdLDaP9vBz6kqr+oqhfA9wCf8xDbnuVYex/KPReRLwO+CPh96mTEQzr2v4eB9D/0e/xq4CdE5Fc9rLY3UViv+bqGXKdtbR+/3y/BXNFjv72f673xbx41CP0Y8HqPzpxhZNljD3JA93G/FXi/qn5D+uox4Mv8/ZcBf/t+jq+q71DVV6vqa7H2/oCq/j7gB4EveQjH/xfAz4vIr/dNbwLe95Da/3PAZ4vIC11PceyH0vaNHGvvY8B/5lGUzwY+EW7bdUVE3gx8NfDFqvpvN+d8q0eBXge8HvjRmxxbVf+Rqn6Kqr7W7/FTWKDjXzyMtg/n4kbu2FVynb6U78mXYM+uclxv99M/b66jB2H3H8YLY9P/CcbCf81DON5/jN3fnwL+gb++EPN9vx/4Gf//yQ/hXJ9Lj459mt+4JzE3584DHPc/BJ7wa/hbwMseVvuB/x74x8BPA9+BRUQeqO3AX8c4pgus077tWHsxc/0b/X7/I+Cz7uPYT2K8Q9zfv5L2/xo/9geAL7iftm++/1l6dOxGbb/q9cb/YKf/5Odfea0XV0THjvUl4GsxsAa46/f3Sb/fn3aV3o71T+APub4WzNL5lvvVkfgPT3KSk/w7ljf+xjP9m3/3evNS//1f85Ef18s5oWetPGpi+iQned6KAuePnBF59HICoZOc5BFK1YcTtX02ywmETnKSRyQKrAcj2s8vOYHQSU7yiEQR1pM7dns0cCAD9Flz/Gdz20/Hf3THBnPHrvN6LsszBkJXzeg9IM/ozX6Gj/9sbvvp+I/o2OGOXef1XJZnxB0TkQnLFfhPsVyCHxORx1T1fc/E+U5ykmenCKveGmfkkckzxQm12bcAIhKzbw+C0Nn8Qr179hJe/KJXKYCKQAEVQKTNRtH8Pw8OkianHBk0di96GS/4Va/R2FFgnNES27V/Hvaxltn3m9/duftSXvziVytX5Vz5/LWW0hVtl833Mm7f/YqX8cJPfU1PBdvqQfaPOTR+o6utTC9/KXde92ol/SRf36DgQ/rRpDfSZ03t/5Wv0aO63Tvf5e1VGb+L4x/U6fbz5tnZ09tGppe9jDu/5jVjq7bXkbbd++dPfVRVf+X+kQ5cB3DBdJ1dn9PyTIHQoZm0/1HewX3tLwe4e/YSPudz/iTrHbshdSesZ4W6E+oM685udZ1BZ6iToBOo3z+dQAv2sPnAsnWjo1NI5MD7e1n7fwCpSll9+wrFJ+7Ye5BVkQpl0bY/NY6vvTPW9NwW6YCKtVFLXINQ/TrqbNvqLNSdXW9srzu/9hnqLrYruoM6gc6Kzo4jk0K8CshUkdIBSYQNaoROBFXQKlC9rau/XwVZBUJPi1AWMT0tUBbx7a6nBcrS9VoWbTqV2l+hQzkAZhk4Qmddf/2+18m3z7bN9NGfherbddb+rLie4lgU9YHvAHD78wIgKm2+hazSr2Gx9//07X/8n+0r9rConiwheOZA6MqZtKr6zcA3A7z4xa/W5e5E3dkNqWfCuouOKKnT5Y5KY7TqRAeg7SgYDYqROR4mB44GRA2EBHWwKat3Qux7XbU9eAGAUsUBTdt7O1+/XHVrrj38RbwT2f8GNpN0oJ2lbVcHnvbdTtt1605tv1kNfADmCpMik1ImRUSRYr1FBIoDkqQerwFAKmjtZKiu9lnXgi4C3uEpUIuBjYhYJwakCCx2Hp0MiMCuNQO7pElRUmXfwmw3LlmGTX90/aXBqPr7eDX9TdpASSdNg5cDT3GTJv7HAxPvlfZQqWr/vEKU+pHJdHFTqc9xvuc68kyB0DMyO/4kJ3kuiRHTJ0vomQKhNvsW+DA2+/b3HttZBepZYT1zt2uXLSH7DN0SaCZ3M6tpI9oeX9ROEtaQWzbhDlQfxWJEa25Xt4iAZhWFO1F9/7LSXbtsaSVzbMvxdEvI3vcRO1l7c3bHugUU7227ojt3wyYFd8dkrpRJKaVSpkop2qyfUvrYW5IlVFVsgFehVqFWt0onoa6FOilaSrMMVQQtghRBChDuWDEXpxTTVdyj7OKqW5NSw6VN9+fAsxG6C3eM5I7V7JaHTmesvXPaHq7YlCzGcMMms3qkpEZItxQ1m9bVLEaqXX9zWyc1K/BGcnLH4BkCIVVdROQrsRq9E/Btqvreoz8QWO9I5352wrrDeZCtOxYP1b5vT2EkGodGBRmaHvzqrkB2x/xBzmAEDC4aFUpsn7wzqWxAKJ36UhBK7sSc3bG83QC
"text/plain": [
"<Figure size 288x288 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"context_map = create_context_map(size=150, map_type='hills')\n",
"plt.matshow(context_map)\n",
"plt.colorbar()"
]
},
{
"cell_type": "markdown",
"metadata": {
"nteract": {
"transient": {
"deleting": false
}
}
},
"source": [
"The function `sample_next_step` calls `next_step_proposal`, combines it with the context map that is passed to it (in `compute_next_step_probability`), and then stochastically selects the next step."
]
},
{
"cell_type": "markdown",
"metadata": {
"pycharm": {
"name": "#%% md\n"
}
},
"source": [
"# How to simulate a trajectory\n",
"\n",
"in order to use the walker, the user has to create a context map. Then, for a number of timesteps, sample a step, always passing along the new position information."
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"execution": {
"iopub.execute_input": "2022-08-20T06:18:31.369Z",
"iopub.status.busy": "2022-08-20T06:18:31.360Z",
"iopub.status.idle": "2022-08-20T06:18:32.535Z",
"shell.execute_reply": "2022-08-20T06:18:32.542Z"
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": [
"i, j = 100, 50 # initial position\n",
"sigma_i, sigma_j = 3, 4 # parameters of the next step map\n",
"size = 200 # size of the image\n",
"context_map = create_context_map(size, 'hills') # fixed context map\n",
"\n",
"# Sample a next step 1000 times\n",
"trajectory = []\n",
"for _ in range(1000):\n",
" i, j = sample_next_step(i, j, sigma_i, sigma_j, context_map)\n",
" trajectory.append((i, j))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"execution": {
"iopub.execute_input": "2022-08-20T06:18:32.556Z",
"iopub.status.busy": "2022-08-20T06:18:32.553Z",
"iopub.status.idle": "2022-08-20T06:18:32.670Z",
"shell.execute_reply": "2022-08-20T06:18:32.701Z"
},
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<Figure size 288x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plot_trajectory(trajectory, context_map)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"pycharm": {
"name": "#%%\n"
}
},
"outputs": [],
"source": []
}
],
"metadata": {
"hide_input": false,
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.11"
},
"nteract": {
"version": "0.28.0"
},
"toc": {
"nav_menu": {
"height": "83px",
"width": "252px"
},
"navigate_menu": true,
"number_sections": true,
"sideBar": true,
"threshold": 4,
"toc_cell": false,
"toc_section_display": "block",
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 1
}