The source code and dockerfile for the GSW2024 AI Lab.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

725 lines
321 KiB

2 months ago
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {},
  6. "source": [
  7. "## Example usage of Tempestpy"
  8. ]
  9. },
  10. {
  11. "cell_type": "code",
  12. "execution_count": 1,
  13. "metadata": {
  14. "vscode": {
  15. "languageId": "plaintext"
  16. }
  17. },
  18. "outputs": [
  19. {
  20. "name": "stdout",
  21. "output_type": "stream",
  22. "text": [
  23. "pygame 2.6.0 (SDL 2.28.4, Python 3.10.12)\n",
  24. "Hello from the pygame community. https://www.pygame.org/contribute.html\n"
  25. ]
  26. },
  27. {
  28. "name": "stderr",
  29. "output_type": "stream",
  30. "text": [
  31. "2024-09-23 08:47:31.782344: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:485] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
  32. "2024-09-23 08:47:31.796255: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:8454] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
  33. "2024-09-23 08:47:31.800423: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1452] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
  34. "2024-09-23 08:47:31.810763: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
  35. "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
  36. "2024-09-23 08:47:32.657828: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n",
  37. "error: XDG_RUNTIME_DIR not set in the environment.\n"
  38. ]
  39. }
  40. ],
  41. "source": [
  42. "from sb3_contrib import MaskablePPO\n",
  43. "from sb3_contrib.common.wrappers import ActionMasker\n",
  44. "from stable_baselines3.common.logger import Logger, CSVOutputFormat, TensorBoardOutputFormat, HumanOutputFormat\n",
  45. "\n",
  46. "import gymnasium as gym\n",
  47. "\n",
  48. "from minigrid.core.actions import Actions\n",
  49. "from minigrid.core.constants import TILE_PIXELS\n",
  50. "from minigrid.wrappers import RGBImgObsWrapper, ImgObsWrapper\n",
  51. "\n",
  52. "import tempfile, datetime, shutil\n",
  53. "\n",
  54. "import time\n",
  55. "import os\n",
  56. "\n",
  57. "from utils import MiniGridShieldHandler, create_log_dir, ShieldingConfig, MiniWrapper, expname, shield_needed, shielded_evaluation, create_shield_overlay_image\n",
  58. "from sb3utils import MiniGridSbShieldingWrapper, parse_sb3_arguments, ImageRecorderCallback, InfoCallback\n",
  59. "\n",
  60. "import os, sys\n",
  61. "from copy import deepcopy\n",
  62. "\n",
  63. "from PIL import Image"
  64. ]
  65. },
  66. {
  67. "cell_type": "code",
  68. "execution_count": null,
  69. "metadata": {
  70. "vscode": {
  71. "languageId": "plaintext"
  72. }
  73. },
  74. "outputs": [
  75. {
  76. "name": "stdout",
  77. "output_type": "stream",
  78. "text": [
  79. "Starting the training\n"
  80. ]
  81. },
  82. {
  83. "data": {
  84. "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAGgAgADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDDooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigDzLVNU1CPV71Ev7pU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
  85. "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAGgCAIAAABT7kjeAAA3mklEQVR4Ae2d4XUbObK2e3zm990ELAewm4A0CdwI7Ai4AVhKYBKYcQDmJrCTwDiBayewG4DsBL5JQN/LLrK6CKBBSGRTTfaD40OjgUKJelCFQgPo1k+r1aojQQACEIDA8gi8Wd6vzG8MAQhAAAIbAgQA7AACEIDAQgkQABba8fzaEIAABAgA2AAEIACBhRIgACy04/m1IQABCBAAsAEIQAACCyVAAFhox/NrQwACECAAYAMQgAAEFkqAALDQjufXhgAEIEAAwAYgAAEILJQAAWChHc+vDQEIQIAAgA1AAAIQWCgBAsBCO55fGwIQgAABABuAAAQgsFACBICFdjy/NgQgAAECADYAAQhAYKEECAAL7Xh+bQhAAAIEAGwAAhCAwEIJEAAW2vH82hCAAAQIANgABCAAgYUSIAAstOP5tSEAAQgQALABCEAAAgslQABYaMfza0MAAhAgAGADEIAABBZKgACw0I7n14YABCBAAMAGIAABCCyUAAFgoR3Prw0BCECAAIANQAACEFgoAQLAQjueXxsCEIAAAQAbgAAEILBQAgSAhXY8vzYEIACBn0FQJ/D57bouQC0EIDBbAv/8sZr0u60/Tzs+rP457fc/RwBYrydktFqtJtX/+ddJ7QflEIDAtAQmHR+6z9N++am1swQ0NWH0QwACEJgpAQLATDuGrwUBCEBgagIEgKkJox8CEIDATAkQAGbaMXwtCEAAAlMTIABMTRj9EIAABGZKgAAw047ha0EAAhCYmgABoInw9//Xff1+WFIyjWJSGBP6Iw0xhE8EkuThkwBJLnM+iQCXToAA4ChqmYcv3S//6u7Wo+O7bE61kmkUk8KY0G80HCN8onl4Hj4v8y8HSCYhcI4HwZIfeYmXH++67391335sxvfbt93v/9vd3Wx/D/nk/ZdNldLb/9l8HhSTBimMCf0RI3zqZgaf5/KJvkY+EvhJT9LG6ynykz6JN/WTwE+/DkiSQer+rvv96zD0axBXiZIKP33tfvy1yctXo5guY/DYSISEfvjIHLAfQUgcR1Orl/mXXgUx6fjTPQUHniA79asgCAAHOi0GABONw7RKomlGXdGNVV4f2mJD9EcaeR4+OZNYAp9IgwAQaeR5AkDOZK8kDwBWLTfTNP/2Zjvr32sTLja3CN83kxdfMgqVtSz6a3S6zWYM/CuI4GNwCAAVI1EVAaDOpxsLAAeaUQ0BCMyAAAGg3gmcAqrz2dbe/9nd/L5ZnK0kzbl0EKhyUsjaSolUSWFM6Hca8JEhVRJ8XsCnwnPhVZwCajUAbeo+fNksO/hmlLeURfpBIBXmRxRMUq7rm8Pe1jPoh48ZA/ZjhyncNU7iX66NTCTAElCkUcj7ElC0Qt/4jYW2zSsVHgx84zcObV6Y/LCoCv35lgl8/FxZ8SAZfIp8WAJKxpnkkgCQAEkvPQBYRXQzF83H9EYx1+CZxoaNYq7WM40NG8VcrWcaGzaKuVrPNDZsFHO1nmls2Cjmaj3T2LBRzNV6prFho5ir9Uxjw0YxV+uZxoaNYlJLAHC2xQwBoIhlKEwCgFW4/eVD/9CyP6lidwN1sdgE/TmNvAT+OZNYAh+nQQBwFMUMAaCIZSgsBoChmhwEIDBjAgSAeudwCqjOZ1u7mVL9mb6hLG+ptX79qye95kyqpDAm9DsN+DiKYgY+RSxeWOTjtWQSApwCSoCUL3V654//dp++dR9vN6eAbv6WisVt3uJJITWQaapKSpS0YRX3OdEPH9mAbWNiPyf3r43LkUoEWAIqUQlltgQUx25VxjAQh36t9Sv5i+H8wGiluf2oigD6hQg+PnUQjWh+2E/dPFgCMgsZ+yQAjJHZlsc9gGQYev/37uuP4aVvfjjPt+CkQgc6795u7h4s5a67rej/Qz98ZAjYjznFSfyLABBHmDxPAMiZ7JXEAGAVyTA9dsInurEa1oe2+CPRH2nkefjkTGIJfCINAkCkkecJADmTvZI8AFi1udn7f+wt5e+17C8UBv74T3nbIBeOJeiPNPI8fHImsQQ+RoMAEK0izxMAciZ7JWMBYE+ICwhAYJYECAD1buEYaJ0PtRCAAASulgAB4Gq7ll8MAhCAQJ0AAaDOh1oIQAACV0uAAHC1XcsvBgEIQKBO4BybwPVvMPPaz2/XM/+GfD0IQGCMgDaBx6ooF4FzvApivZ5wDF2tVpPq//wrdgIBCFwwgUnHh6nHH+mfFD1LQJPiRTkEIACB+RIgAMy3b/hmEIAABCYlQACYFC/KIQABCMyXAAFgvn3DN4MABCAwKQECwKR4UQ4BCEBgvgQIAPPtG74ZBCAAgUkJEACa8Ordinqv58EkmUYxKYwJ/ZGGGMInAkny8EmAJJc5n0SASydAAHAUtczDl+6Xf3V369HxXTanWsk0iklhTOg3Go4RPtE8PA+fl/mXAySTEDjHg2DJj7zEy4933fe/Nn/rUfaX/AUY+eT9l+HPQOq3OygmDVIYE/ojRvjUzQw+z+UTfY18JHCOV0Fc9JN48e8BJIPU/V2nP9ib/wXg5K/4RrEkeMSeUB798JEZYD+CIEuIjqM/rapJkkqey2fqvwdw6U8CEwA2JlVJMQCYWBymVRJNM+qJbqzy+tAWG6I/0sjz8MmZxBL4RBoEgEgjzxMAciZ7JXkAsGq52aev3e3Ndlay1yZcbG4Rvm8mL3c3obQhi/46JPjARwQO+hcBoG4nBIA6n24sABxoRjUEIDADAgSAeidwCqjOZ1t7/2d38/tmulFJmpPqIFDlpJC1lRKpksKY0O804CNDqiT4vIBPhefCqzgF1GoAP/7qHr5sln18M8pbyiL9IJAK8yMKJinXVXPpKSb0w8cMA/uxzV53k5P4l2sjEwmwBBRpFPK+BBSt0Dd+Y6Ft80qFBwPf+I1DmxcmPyyqQn++ZQIfmzpgP8/yL5aAknEmuSQAJEDSSw8AVhGHIRfNfbJRzDV4prFho5ir9Uxjw0YxV+uZxoaNYq7WM40NG8VcrWcaGzaKuVrPNDZsFHO1nmls2Cjmaj3T2LBRzNV6prFho5jUEgCcbTFDAChiGQqTAGAVbn/50D+0DOf662KxCfpzGnkJ/HMmsQQ+ToMA4CiKGQJAEctQWAwAQzU5CEBgxgQIAPXO4RRQnc+2djOl+jN9Q1neUmv9+ldPes2ZVElhTOh3GvBxFMUMfIpYvLDIx2vJJAQ4BZQAKV/q9M4f/+0+fes+3m5OAd38LRWL27zFk0JqINNUlZQoaUMv7nOiHz6yAdvmxX5O7l8blyOVCLAEVKISymwJKI7dqoxhIA79WutXyt8OVGluP6oigH4hgo9PHUQjmh/2UzcPloDMQsY+CQBjZLblcQ8gGYbe/737+mM7a4vbvL4FJxU60Hn3dnP3YCl33W1F/x/64SNDwH7MKU7iXwSAOMLkeQJAzmSvJAYAq0iG6Tj0x5bRjVVeH9piQ/RHGnkePjmTWAKfSIMAEGnkeQJAzmSvJA8AVm1u9v4fe0v5ey37C4WBP/5T3jbIhWMJ+iONPA+fnEksgY/RIABEq8jzBICcyV7JWADYE+ICAhCYJQECQL1bOAZa50MtBCAAgaslQAC42q7lF4MABCBQJ0AAqPOhFgIQgMDVEiAAXG3X8otBAAIQqBM4xyZw/RvMvPbz2/XMvyFfDwIQGCOgTeCxKspF4ByvglivJxxDV6vVpPo//4qdQAACF0xg0vFh6vFH+idFzxLQpHhRDgEIQGC+BAgA8+0bvhkEIACBSQkQACbFi3IIQAAC8yVAAJhv3/DNIAABCExKgAAwKV6UQwACEJgvAQLAfPuGbwYBCEBgUgIEgCa8erei3ut5MEmmUUwKY0J/pCGG8IlAkjx8EiDJZc4nEeDSCRAAHEUt8/Cl++Vf3d16dHyXzalWMo1iUhgT+o2GY4RPNA/Pw+dl/uUAySQEzvEgWPIjL/Hy4133/a/N33qU/SV/AUY+ef9l+DOQ+u0OikmDFMaE/ogRPnUzg89z+URfIx8JnONVEBf9JF78ewDJIHV/1+kP9uZ/ATj
  86. "text/plain": [
  87. "<PIL.Image.Image image mode=RGB size=512x416>"
  88. ]
  89. },
  90. "metadata": {},
  91. "output_type": "display_data"
  92. },
  93. {
  94. "name": "stdout",
  95. "output_type": "stream",
  96. "text": [
  97. "\n",
  98. "\n",
  99. "Computing new shield\n",
  100. "LOG: Starting with explicit model creation...\n",
  101. "Elapsed time is 0.08271026611328125 seconds.\n",
  102. "LOG: Starting with model checking...\n",
  103. "Elapsed time is 0.0008902549743652344 seconds.\n",
  104. "LOG: Starting to translate shield...\n",
  105. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 445\n",
  106. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 446\n",
  107. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 447\n",
  108. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 448\n",
  109. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 449\n",
  110. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 450\n",
  111. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 451\n",
  112. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 452\n",
  113. "Elapsed time is 0.026116371154785156 seconds.\n"
  114. ]
  115. },
  116. {
  117. "data": {
  118. "image/png": "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
  119. "text/plain": [
  120. "<PIL.Image.Image image mode=RGBA size=512x416>"
  121. ]
  122. },
  123. "metadata": {},
  124. "output_type": "display_data"
  125. },
  126. {
  127. "name": "stdout",
  128. "output_type": "stream",
  129. "text": [
  130. "The shield for shield_value = 0.9\n",
  131. "\n",
  132. "\n",
  133. "Computing new shield\n",
  134. "LOG: Starting with explicit model creation...\n",
  135. "Elapsed time is 0.08337211608886719 seconds.\n",
  136. "LOG: Starting with model checking...\n",
  137. "Elapsed time is 0.0007877349853515625 seconds.\n",
  138. "LOG: Starting to translate shield...\n",
  139. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 54\n",
  140. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 55\n",
  141. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 56\n",
  142. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 57\n",
  143. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 58\n",
  144. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 59\n",
  145. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 60\n",
  146. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 61\n",
  147. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 62\n",
  148. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 315\n",
  149. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 316\n",
  150. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 317\n",
  151. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 318\n",
  152. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 319\n",
  153. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 320\n",
  154. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 321\n",
  155. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 322\n",
  156. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 323\n",
  157. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 444\n",
  158. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 445\n",
  159. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 446\n",
  160. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 447\n",
  161. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 448\n",
  162. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 449\n",
  163. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 450\n",
  164. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 451\n",
  165. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 452\n",
  166. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 453\n",
  167. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 458\n",
  168. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 459\n",
  169. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 460\n",
  170. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 461\n",
  171. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 462\n",
  172. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 463\n",
  173. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 464\n",
  174. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 465\n",
  175. "Elapsed time is 0.02267932891845703 seconds.\n"
  176. ]
  177. },
  178. {
  179. "data": {
  180. "image/png": "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
  181. "text/plain": [
  182. "<PIL.Image.Image image mode=RGBA size=512x416>"
  183. ]
  184. },
  185. "metadata": {},
  186. "output_type": "display_data"
  187. },
  188. {
  189. "name": "stdout",
  190. "output_type": "stream",
  191. "text": [
  192. "The shield for shield_value = 0.99\n",
  193. "\n",
  194. "\n",
  195. "Computing new shield\n",
  196. "LOG: Starting with explicit model creation...\n",
  197. "Elapsed time is 0.08304810523986816 seconds.\n",
  198. "LOG: Starting with model checking...\n",
  199. "Elapsed time is 0.0007925033569335938 seconds.\n",
  200. "LOG: Starting to translate shield...\n",
  201. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 54\n",
  202. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 55\n",
  203. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 56\n",
  204. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 57\n",
  205. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 58\n",
  206. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 59\n",
  207. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 60\n",
  208. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 61\n",
  209. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 62\n",
  210. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 67\n",
  211. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 68\n",
  212. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 69\n",
  213. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 70\n",
  214. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 71\n",
  215. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 72\n",
  216. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 73\n",
  217. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 74\n",
  218. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 315\n",
  219. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 316\n",
  220. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 317\n",
  221. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 318\n",
  222. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 319\n",
  223. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 320\n",
  224. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 321\n",
  225. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 322\n",
  226. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 323\n",
  227. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 329\n",
  228. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 330\n",
  229. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 331\n",
  230. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 332\n",
  231. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 333\n",
  232. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 334\n",
  233. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 335\n",
  234. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 336\n",
  235. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 444\n",
  236. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 445\n",
  237. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 446\n",
  238. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 447\n",
  239. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 448\n",
  240. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 449\n",
  241. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 450\n",
  242. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 451\n",
  243. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 452\n",
  244. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 453\n",
  245. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 457\n",
  246. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 458\n",
  247. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 459\n",
  248. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 460\n",
  249. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 461\n",
  250. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 462\n",
  251. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 463\n",
  252. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 464\n",
  253. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 465\n",
  254. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 466\n",
  255. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 471\n",
  256. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 472\n",
  257. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 473\n",
  258. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 474\n",
  259. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 475\n",
  260. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 476\n",
  261. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 477\n",
  262. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 478\n",
  263. "Elapsed time is 0.022092103958129883 seconds.\n"
  264. ]
  265. },
  266. {
  267. "data": {
  268. "image/png": "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
  269. "text/plain": [
  270. "<PIL.Image.Image image mode=RGBA size=512x416>"
  271. ]
  272. },
  273. "metadata": {},
  274. "output_type": "display_data"
  275. },
  276. {
  277. "name": "stdout",
  278. "output_type": "stream",
  279. "text": [
  280. "The shield for shield_value = 0.999\n",
  281. "\n",
  282. "\n",
  283. "Computing new shield\n",
  284. "LOG: Starting with explicit model creation...\n",
  285. "Elapsed time is 0.08694028854370117 seconds.\n",
  286. "LOG: Starting with model checking...\n",
  287. "Elapsed time is 0.0007922649383544922 seconds.\n",
  288. "LOG: Starting to translate shield...\n",
  289. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 54\n",
  290. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 55\n",
  291. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 56\n",
  292. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 57\n",
  293. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 58\n",
  294. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 59\n",
  295. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 60\n",
  296. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 61\n",
  297. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 62\n",
  298. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 67\n",
  299. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 68\n",
  300. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 69\n",
  301. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 70\n",
  302. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 71\n",
  303. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 72\n",
  304. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 73\n",
  305. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 74\n",
  306. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 80\n",
  307. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 81\n",
  308. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 82\n",
  309. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 83\n",
  310. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 84\n",
  311. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 85\n",
  312. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 86\n",
  313. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 315\n",
  314. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 316\n",
  315. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 317\n",
  316. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 318\n",
  317. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 319\n",
  318. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 320\n",
  319. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 321\n",
  320. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 322\n",
  321. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 323\n",
  322. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 329\n",
  323. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 330\n",
  324. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 331\n",
  325. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 332\n",
  326. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 333\n",
  327. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 334\n",
  328. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 335\n",
  329. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 336\n",
  330. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 343\n",
  331. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 344\n",
  332. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 345\n",
  333. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 346\n",
  334. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 347\n",
  335. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 348\n",
  336. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 349\n",
  337. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 444\n",
  338. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 445\n",
  339. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 446\n",
  340. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 447\n",
  341. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 448\n",
  342. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 449\n",
  343. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 450\n",
  344. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 451\n",
  345. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 452\n",
  346. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 453\n",
  347. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 457\n",
  348. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 458\n",
  349. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 459\n",
  350. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 460\n",
  351. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 461\n",
  352. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 462\n",
  353. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 463\n",
  354. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 464\n",
  355. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 465\n",
  356. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 466\n",
  357. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 470\n",
  358. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 471\n",
  359. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 472\n",
  360. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 473\n",
  361. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 474\n",
  362. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 475\n",
  363. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 476\n",
  364. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 477\n",
  365. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 478\n",
  366. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 479\n",
  367. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 484\n",
  368. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 485\n",
  369. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 486\n",
  370. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 487\n",
  371. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 488\n",
  372. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 489\n",
  373. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 490\n",
  374. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 491\n",
  375. "Elapsed time is 0.021901845932006836 seconds.\n"
  376. ]
  377. },
  378. {
  379. "data": {
  380. "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAGgCAYAAADcjN+JAABnNklEQVR4Ae29Ta8kN5YenKopyBhA4xmUgNtXQKn0zqI2rd50b5TSzpvxrnZdv+D6B6hqpx8geCPVu7FhYK5X3km7Qi/a876LXqmyN64BuuWNgG5XqQa6qIGEtlWAYWFm5PME89xgMBmZQQYjSEY854KXQQbJQz48POcE4yNfu7i4+HFDIgJEgAgQASJABFaFwI1VjZaDJQJEgAgQASJABBoE6ABQEIgAESACRIAIrBABOgArnHQOmQgQASJABIgAHQDKABEgAkSACBCBFSJAB2CFk84hEwEiQASIABGgA0AZIAJEgAgQASKwQgToAKxw0jlkIkAEiAARIAJ0ACgDRIAIEAEiQARWiAAdgBVOOodMBIgAESACRIAOAGWACBABIkAEiMAKEaADsMJJ55CJABEgAkSACNABoAwQASJABIgAEVghAnQAVjjpHDIRIAJEgAgQAToAlAEiQASIABEgAitEgA7ACiedQyYCRIAIEAEiQAeAMkAEiAARIAJEYIUI0AFY4aRzyESACBABIkAE6ABQBogAESACRIAIrBABOgArnHQOmQgQASJABIgAHQDKABEgAkSACBCBFSJAB2CFk84hEwEiQASIABGgA0AZIAJEgAgQASKwQgToAKxw0jlkIkAEiAARIAJ0ACgDRIAIEAEiQARWiAAdgBVOOodMBIgAESACRIAOAGWACBABIkAEiMAKEaADsMJJ55CJABEgAkSACNABoAwQASJABIgAEVghAnQAVjjpHDIRIAJEgAgQAToAlAEiQASIABEgAitEgA7ACiedQyYCRIAIEAEicDM3BB89fpy7C1n5//XrLzebi4xduBTe5J9vAog/5W/F6++P//Es39oTzi//WvRvRjr749nm43v3svUguwOAkb98mW8SLi8uNheX0MJ56K9v5+HbcM03bDNo8s84+cKa+BN/IAA5yOGE7OUvp/7f/HVeEcjNfdW3ALZ79DXOPRmz8qfynxXuA2bE/wCSWTOIfxfuufGYm193tE1qlXrfwWG1DoA7+W7awWlZydyLj/zzyhPxJ/4+BOaSi7n4+Ma4z1uVvj+CwyodgL7J78s/gl99p3IvPvLPKzPEn/gfQ2Bq+Zi6/WNj259bhZ4fgAOKrM4BODX5p84PxLXMYrkXH/nn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
  381. "text/plain": [
  382. "<PIL.Image.Image image mode=RGBA size=512x416>"
  383. ]
  384. },
  385. "metadata": {},
  386. "output_type": "display_data"
  387. },
  388. {
  389. "name": "stdout",
  390. "output_type": "stream",
  391. "text": [
  392. "The shield for shield_value = 0.9999\n",
  393. "\n",
  394. "\n",
  395. "Computing new shield\n",
  396. "LOG: Starting with explicit model creation...\n",
  397. "Elapsed time is 0.08632326126098633 seconds.\n",
  398. "LOG: Starting with model checking...\n",
  399. "Elapsed time is 0.0008187294006347656 seconds.\n",
  400. "LOG: Starting to translate shield...\n",
  401. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 54\n",
  402. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 55\n",
  403. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 56\n",
  404. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 57\n",
  405. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 58\n",
  406. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 59\n",
  407. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 60\n",
  408. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 61\n",
  409. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 62\n",
  410. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 67\n",
  411. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 68\n",
  412. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 69\n",
  413. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 70\n",
  414. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 71\n",
  415. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 72\n",
  416. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 73\n",
  417. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 74\n",
  418. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 80\n",
  419. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 81\n",
  420. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 82\n",
  421. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 83\n",
  422. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 84\n",
  423. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 85\n",
  424. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 86\n",
  425. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 93\n",
  426. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 94\n",
  427. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 95\n",
  428. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 96\n",
  429. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 97\n",
  430. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 98\n",
  431. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 106\n",
  432. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 107\n",
  433. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 108\n",
  434. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 109\n",
  435. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 110\n",
  436. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 315\n",
  437. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 316\n",
  438. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 317\n",
  439. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 318\n",
  440. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 319\n",
  441. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 320\n",
  442. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 321\n",
  443. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 322\n",
  444. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 323\n",
  445. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 329\n",
  446. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 330\n",
  447. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 331\n",
  448. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 332\n",
  449. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 333\n",
  450. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 334\n",
  451. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 335\n",
  452. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 336\n",
  453. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 343\n",
  454. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 344\n",
  455. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 345\n",
  456. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 346\n",
  457. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 347\n",
  458. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 348\n",
  459. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 349\n",
  460. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 357\n",
  461. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 358\n",
  462. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 359\n",
  463. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 360\n",
  464. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 361\n",
  465. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 362\n",
  466. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 371\n",
  467. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 372\n",
  468. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 373\n",
  469. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 374\n",
  470. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 375\n",
  471. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 444\n",
  472. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 445\n",
  473. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 446\n",
  474. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 447\n",
  475. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 448\n",
  476. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 449\n",
  477. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 450\n",
  478. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 451\n",
  479. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 452\n",
  480. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 453\n",
  481. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 457\n",
  482. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 458\n",
  483. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 459\n",
  484. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 460\n",
  485. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 461\n",
  486. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 462\n",
  487. "Elapsed time is 0.022674560546875 seconds.\n",
  488. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 463\n",
  489. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 464\n",
  490. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 465\n",
  491. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 466\n",
  492. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 470\n",
  493. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 471\n",
  494. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 472\n",
  495. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 473\n",
  496. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 474\n",
  497. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 475\n",
  498. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 476\n",
  499. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 477\n",
  500. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 478\n",
  501. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 479\n",
  502. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 483\n",
  503. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 484\n",
  504. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 485\n",
  505. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 486\n",
  506. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 487\n",
  507. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 488\n",
  508. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 489\n",
  509. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 490\n",
  510. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 491\n",
  511. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 492\n",
  512. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 496\n",
  513. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 497\n",
  514. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 498\n",
  515. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 499\n",
  516. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 500\n",
  517. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 501\n",
  518. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 502\n",
  519. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 503\n",
  520. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 504\n",
  521. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 505\n"
  522. ]
  523. },
  524. {
  525. "data": {
  526. "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAGgCAYAAADcjN+JAABsYUlEQVR4Ae29T68lt5UneJWVUKMAVVchBTw/AenMrkVuLG/sTV5pN5uaXS4asD7B+wKZ2ukDCLORcjY9GKDerGYn7RJeuN298Ep5vUoDtnojwJ5MyciHLEhwjwQ0Wqiy+vyC97xg8MY/MhhBMuJ3HvgYZJA85I+H55xg/LmvXVxc/LAjEQEiQASIABEgAptC4MamRsvBEgEiQASIABEgAhUCdAAoCESACBABIkAENogAHYANTjqHTASIABEgAkSADgBlgAgQASJABIjABhGgA7DBSeeQiQARIAJEgAjQAaAMEAEiQASIABHYIAJ0ADY46RwyESACRIAIEAE6AJQBIkAEiAARIAIbRIAOwAYnnUMmAkSACBABIkAHgDJABIgAESACRGCDCNAB2OCkc8hEgAgQASJABOgAUAaIABEgAkSACGwQAToAG5x0DpkIEAEiQASIAB0AygARIAJEgAgQgQ0iQAdgg5POIRMBIkAEiAARoANAGSACRIAIEAEisEEE6ABscNI5ZCJABIgAESACdAAoA0SACBABIkAENogAHYANTjqHTASIABEgAkSADgBlgAgQASJABIjABhGgA7DBSeeQiQARIAJEgAjQAaAMEAEiQASIABHYIAJ0ADY46RwyESACRIAIEAE6AJQBIkAEiAARIAIbRIAOwAYnnUMmAkSACBABIkAHgDJABIgAESACRGCDCNAB2OCkc8hEgAgQASJABOgAUAaIABEgAkSACGwQAToAG5x0DpkIEAEiQASIAB0AygARIAJEgAgQgQ0iQAdgg5POIRMBIkAEiAARuJkagg+ePEndhaT8//H1V7vdRcIuXApv8k83AcSf8rfh9fen/+ss3doTzq/+UfRvQjr709nuwwcPkvUguQOAkb96lW4SLi8udheX0MJp6B9vp+FbcU03bDNo8k84+cKa+BN/IAA5SOGEHOUvpf7f/WNaEUjNfdO3APZH9DVOPRmL8qfyXxTuE2bE/wSSRTOIfxPupfFYml9ztFVqk3rfwWGzDoA7+W7awWldydSLj/zTyhPxJ/5tCCwlF0vxaRvjMW9T+r4Hh006AF2T35Xfg195p1IvPvJPKzPEn/j3ITC3fMzdft/Yjuc2oedH4IAim3MAhiZ/6PxIXPMslnrxkX9a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
  527. "text/plain": [
  528. "<PIL.Image.Image image mode=RGBA size=512x416>"
  529. ]
  530. },
  531. "metadata": {},
  532. "output_type": "display_data"
  533. },
  534. {
  535. "name": "stdout",
  536. "output_type": "stream",
  537. "text": [
  538. "The shield for shield_value = 1.0\n",
  539. "Training with shield:\n"
  540. ]
  541. },
  542. {
  543. "data": {
  544. "image/png": "iVBORw0KGgoAAAANSUhEUgAAAgAAAAGgCAYAAADcjN+JAABseklEQVR4Ae29T68dN5YneK0S3CjA1VWQgZfPgFKaWmiTzo1ro2vvZlO90y71Cd4XkLTzBzBmY2s2Mxig3qxmZ++EXGRnzyJX1s2VEsh0bwxktmQn9KCCjeyxgUYbVek5v+A9CgZv/CODESQjfueBj0EGyUP+eHjOCcaf+8bFxcWPOxIRIAJEgAgQASKwKQSubWq0HCwRIAJEgAgQASJQIUAHgIJABIgAESACRGCDCNAB2OCkc8hEgAgQASJABOgAUAaIABEgAkSACGwQAToAG5x0DpkIEAEiQASIAB0AygARIAJEgAgQgQ0iQAdgg5POIRMBIkAEiAARoANAGSACRIAIEAEisEEE6ABscNI5ZCJABIgAESACdAAoA0SACBABIkAENogAHYANTjqHTASIABEgAkSADgBlgAgQASJABIjABhGgA7DBSeeQiQARIAJEgAjQAaAMEAEiQASIABHYIAJ0ADY46RwyESACRIAIEAE6AJQBIkAEiAARIAIbRIAOwAYnnUMmAkSACBABIkAHgDJABIgAESACRGCDCNAB2OCkc8hEgAgQASJABOgAUAaIABEgAkSACGwQAToAG5x0DpkIEAEiQASIAB0AygARIAJEgAgQgQ0iQAdgg5POIRMBIkAEiAARoANAGSACRIAIEAEisEEE6ABscNI5ZCJABIgAESACdAAoA0SACBABIkAENogAHYANTjqHTASIABEgAkSADgBlgAgQASJABIjABhGgA7DBSeeQiQARIAJEgAjQAaAMEAEiQASIABHYIAJ0ADY46RwyESACRIAIEIHrqSH48MmT1F1Iyv8f33y1210k7MKl8Cb/dBNA/Cl/G15/f/o/z9KtPeH86h9F/yaksz+d7T66dy9ZD5I7ABj5q1fpJuHy4mJ3cQktnIb+8WYavhXXdMM2gyb/hJMvrIk/8QcCkIMUTshR/lLq/90/phWB1Nw3fQtgf0Rf49STsSh/Kv9F4T5hRvxPIFk0g/g34V4aj6X5NUdbpTap9x0cNusAuJPvph2c1pVMvfjIP608EX/i34bAUnKxFJ+2MR7zNqXve3DYpAPQNfld+T34lXcq9eIj/7QyQ/yJfx8Cc8vH3O33je14bhN6fgQOKLI5B2Bo8ofOj8Q1z2KpFx/5p5UL4k/8xyAwl5zM1e6YMR3LrFq/e+CgRTflAIyd/LHlFMQi4tSLj/zTignxJ/4+CMSWl9jt+YzlWHaVej0AB7vKZhwA38n3LW+Dmt1x6sVH/mlFgvgT/xAEYslNrHZCxnCssyp9PgEHt+omHIDQyQ+t54I8Jv3Vf9/tnn41pmRdBuUH6ziL7/v/udv98G91G3pE/iOwVLCOMfEfgRnlryE1ua4/6AT07YSc+bPPx5R/u93Yx0vq8dh9n7u9LL4DMOcgp04+6h/m7OCx7Uf/ebf77L/udvubu90n/2m3e/+n3Uyx8B5K+cPXpkxnHWvxYnE/Fyfj+x92uxt/u9vdebvZPvkTf8rfdtcfdMO3/2O3e+vN3e7230v8Hyz9AD1ifSdgDv1jcYt6OFX/R+1Mho2t2gGINflLOAEP3t/tvvr/jFH/4P9uV0Tuwrv5H41EwRE4qXM0/rbhR2ks8HfeOpVE8if+lL/trj/ohB/+3VwgfPGvLY6A6JOncmFiX3jE1D+nGml6Tiz9P70n+bbwxsXFxY8pu4dPAc/xJaixky/j312O/BLgYQag7t6URge864fiHHzytL7ix8KDwUY+COceS/haHAjQH45G/uX3ZkEjr9WzxwkQ+Rsc5L/rZGF3hfhT/la9/l5Lv7kNoDuFyNYLBtUl0Ksx9c+ffjhLqv8Pd63BJzhM/SngVToAY40/5tvHAUD52E6A6wCAB8g1RMhzFx7ybIKS+l//X+PJa36v4ddClgOgWeTfvNoBLsS/6XiqrGhM+St0/ekEWrG7c4hTb/7Nbnf+luwgPrAKWoch8z+HA+Cj/+kArGwHwGfyIbu+DgDqxHQCuhwA8AHBEOPqfi/PBOgVvznT8v/S5L38zlz5Y1uvcS+vpUqV1eIAaFHyJ/6Uv5WvP13sLTEcAVz9VzsBf2cVaNMZAfontgPgq/+37gBct6a0+EPfyQ8dMPjEdAL6+oGHAfseCHxd97j4kH7HXqivC4QdkD/xp/yNWDsrXX+4gLgj4YQwXtsJmGn8J3x7MpbS/z1dKO7UahyApSc/thPw8FfmKXT73n6fNOkWPcr8F/HSx1zpY2fg6nvzFsDtf2i2Tv7EH28BUP5G7LTJ0lnb+nv+F/MWQLXFP+ICorpF8JH4AGdx9E9TG/mnltb//j3Ms8YqHIBUkx/bCcBDfI/+s9ly7lLEqnj0FcCDyNUXEvru9avhx1O+fUT+xJ/yt931B/3wQl4HxEVClyPgPhvwv38dT//06aa+c6n0f1+fSjlX/EOAUyc/5BkAd3JhhEPJfgbANe72Q2fuOX33H3z/4//T/rS/a/g7nYQL03uXB/nXV8QuNsTffK+C8reC9WeWf/UhIPsNgNcP/cmOgGv4VZf8/t608U99BmCq/t/6MwBFOwBTJx9yH8MBQDuhToDtAKAdkGtsTK75r4bHvS/7/f9Rf+jHLo9jXaydtwmODoDWI//TNwAUG+JvDD/lTyXCxEWvv+ZQToy9fbqhSyy9ETr+KQ5ADP1PB6DQtwBiTD4EO5YDgLZCnIA2BwBtgWxD3GV4TMnjf3kQx/bUG4u1UdBJWAvZPkP+tSNA/NsNvy0vO8pfmeuvMYl1oleXtOmMgPkPdQBi6X86AAU6ALEmH6Ie0wFAe75OQJ8DgPa8yXoad3TdtsU8urJTkPwdQEYkif8IkEYWofyNBGpCsT559cQ/xAGIqf+37gAU92NAMSd/whLorBrav+pq+1fyOVp5CGcs4cMbCA3qWZz4wQ887QvP3iXyl6t94k/52+j6q672RTe0/VBYQ1dY+iWm/mnw6EmE6teeJjd9qqhnAOaY/Ng7ACpNBz0YiHUH4P6n5jU0FH8gA8VbAD+VH+VoIyw8fJxFP/1rP6z3urzliWNR42MeeLoXdPJjQLKoyZ/44zVAEOVvY+tP5vzLb8xrgJj/6g2At+TLf9eRskj0BCim/vHZAZhD/299B6AYB2COyYcwz+UAoO0xToA6ALjyh1F/bFVyFbG78HBfuuLztYldR+CH/6tp+FGqdXHLwiZ/4k/52+j6E73gXiSc6ArREXPon7EOwFz6nw5AAc8AzDX5EPI5HQC0b9lzJE9IHQA90WaIf/EzeSBQjLxe8bsPpNkP66EdOALvi3OAKzrl32r4laksbiXyP3UEiD/lb9XrTxe/xG2OwMcz6p8xDsCc+p8OQOYOwJyTD7mf2wEADzXCOHbJdQD0fJshdg2/ltXYdQSQj12E/+2/tWznaSXElgOg2eR/6ggQ//43ASh/9Vsjuo6KWH/aWStWR+B/+b7OnEP+hxyAufU/HYCMHYC5Jx+ivYQDAD5dTkCXA4A6IDXEv3h35DfppQ4U8WfyecDGcwSXVXPt/1ocAC1I/sYRIP6UP/fbB7pG3Li49ecOQNOiF+Ze/30OwBL6nw5Apg7AEpMPOV/KAQCvNidgyAFAvWjU5QT0OADReKMh8m+Hk/i34xI7l/I3HtE5ZLIF/y4HYCn9v3UHIMvXAJea/PGrIU7J5OOaY1H7QEP+PmjFL0v842Pq02Ip+M/Vz5HtJteTPnNaeNnsHIC1T37y8Y1chLPJNfnPBu2ohon/KJhmK5Q7/nP3b6D95PpxtonPs+GsHICtTH7ycQ4swtlFlfxnh7iXAfHvhWf2k7niv1S/Ovgk14uzT3x+DLJxALY2+cnH27EIFxNR8l8M6lZGxL8VlsUyc8N/6f44/JLrw8UmPi9GWXwI6KN78puSG6V/+VXLkzEbxYLDJgJEYFsI4CHAlPr/wydPkgOecvzXk49eOnBxeblL5QEu+RaAi/UBGTfdXKaJABEgAttBIKX+l9fAdpdif1IQ9P/Z2VkK1q95ZnMLoDKGr7u1/oOtjXf9M8oREgEiEIrA1vR
  545. "text/plain": [
  546. "<PIL.Image.Image image mode=RGBA size=512x416>"
  547. ]
  548. },
  549. "metadata": {},
  550. "output_type": "display_data"
  551. },
  552. {
  553. "name": "stdout",
  554. "output_type": "stream",
  555. "text": [
  556. "Using cpu device\n",
  557. "Wrapping the env with a `Monitor` wrapper\n",
  558. "Wrapping the env in a DummyVecEnv.\n",
  559. "Wrapping the env in a VecTransposeImage.\n",
  560. "-----------------------------------\n",
  561. "| info/ | |\n",
  562. "| no_shield_action | 0 |\n",
  563. "| sum_opened_door | 0 |\n",
  564. "| sum_picked_up | 0 |\n",
  565. "| sum_ran_into_lava | 2 |\n",
  566. "| sum_reached_goal | 4 |\n",
  567. "| rollout/ | |\n",
  568. "| ep_len_mean | 147 |\n",
  569. "| ep_rew_mean | -1.32 |\n",
  570. "| time/ | |\n",
  571. "| fps | 122 |\n",
  572. "| iterations | 1 |\n",
  573. "| time_elapsed | 16 |\n",
  574. "| total_timesteps | 2048 |\n",
  575. "-----------------------------------\n",
  576. "-----------------------------------------\n",
  577. "| info/ | |\n",
  578. "| no_shield_action | 0 |\n",
  579. "| sum_opened_door | 0 |\n",
  580. "| sum_picked_up | 0 |\n",
  581. "| sum_ran_into_lava | 3 |\n",
  582. "| sum_reached_goal | 7 |\n",
  583. "| rollout/ | |\n",
  584. "| ep_len_mean | 155 |\n",
  585. "| ep_rew_mean | -1.4 |\n",
  586. "| time/ | |\n",
  587. "| fps | 64 |\n",
  588. "| iterations | 2 |\n",
  589. "| time_elapsed | 63 |\n",
  590. "| total_timesteps | 4096 |\n",
  591. "| train/ | |\n",
  592. "| approx_kl | 0.004596745 |\n",
  593. "| clip_fraction | 0.0505 |\n",
  594. "| clip_range | 0.2 |\n",
  595. "| entropy_loss | -0.965 |\n",
  596. "| explained_variance | 0.00267 |\n",
  597. "| learning_rate | 0.0003 |\n",
  598. "| loss | 0.00807 |\n",
  599. "| n_updates | 10 |\n",
  600. "| policy_gradient_loss | -0.00159 |\n",
  601. "| value_loss | 0.153 |\n",
  602. "-----------------------------------------\n",
  603. "-----------------------------------------\n",
  604. "| info/ | |\n",
  605. "| no_shield_action | 0 |\n",
  606. "| sum_opened_door | 0 |\n",
  607. "| sum_picked_up | 0 |\n",
  608. "| sum_ran_into_lava | 3 |\n",
  609. "| sum_reached_goal | 12 |\n",
  610. "| rollout/ | |\n",
  611. "| ep_len_mean | 157 |\n",
  612. "| ep_rew_mean | -1.34 |\n",
  613. "| time/ | |\n",
  614. "| fps | 55 |\n",
  615. "| iterations | 3 |\n",
  616. "| time_elapsed | 110 |\n",
  617. "| total_timesteps | 6144 |\n",
  618. "| train/ | |\n",
  619. "| approx_kl | 0.007139873 |\n",
  620. "| clip_fraction | 0.0514 |\n",
  621. "| clip_range | 0.2 |\n",
  622. "| entropy_loss | -0.989 |\n",
  623. "| explained_variance | 0.652 |\n",
  624. "| learning_rate | 0.0003 |\n",
  625. "| loss | 0.00669 |\n",
  626. "| n_updates | 20 |\n",
  627. "| policy_gradient_loss | -0.00884 |\n",
  628. "| value_loss | 0.0208 |\n",
  629. "-----------------------------------------\n"
  630. ]
  631. }
  632. ],
  633. "source": [
  634. "GRID_TO_PRISM_BINARY=os.getenv(\"M2P_BINARY\")\n",
  635. "\n",
  636. "def mask_fn(env: gym.Env):\n",
  637. " return env.create_action_mask()\n",
  638. "\n",
  639. "def nomask_fn(env: gym.Env):\n",
  640. " return [1.0] * 7\n",
  641. "\n",
  642. "def main():\n",
  643. " env = \"MiniGrid-LavaSlipperyCliff-16x13-Slip10-Time-v0\"\n",
  644. " \n",
  645. " formula = \"Pmax=? [G ! AgentIsOnLava]\"\n",
  646. " value_for_training = 0.99\n",
  647. " shield_comparison = \"absolute\"\n",
  648. " shielding = ShieldingConfig.Training\n",
  649. " \n",
  650. " logger = Logger(\"/tmp\", output_formats=[HumanOutputFormat(sys.stdout)])\n",
  651. " \n",
  652. " env = gym.make(env, render_mode=\"rgb_array\")\n",
  653. " image_env = RGBImgObsWrapper(env, TILE_PIXELS)\n",
  654. " env = RGBImgObsWrapper(env, 8)\n",
  655. " env = ImgObsWrapper(env)\n",
  656. " env = MiniWrapper(env)\n",
  657. "\n",
  658. " \n",
  659. " env.reset()\n",
  660. " Image.fromarray(env.render()).show()\n",
  661. " \n",
  662. " shield_handlers = dict()\n",
  663. " if shield_needed(shielding):\n",
  664. " for value in [0.9, 0.99, 0.999, 0.9999, 1.0]:\n",
  665. " shield_handler = MiniGridShieldHandler(GRID_TO_PRISM_BINARY, \"grid.txt\", \"grid.prism\", formula, shield_value=value, shield_comparison=shield_comparison, nocleanup=False, prism_file=None)\n",
  666. " env = MiniGridSbShieldingWrapper(env, shield_handler=shield_handler, create_shield_at_reset=False)\n",
  667. " create_shield_overlay_image(image_env, shield_handler.create_shield())\n",
  668. " print(f\"The shield for shield_value = {value}\")\n",
  669. "\n",
  670. " shield_handlers[value] = shield_handler\n",
  671. "\n",
  672. "\n",
  673. " if shielding == ShieldingConfig.Training:\n",
  674. " env = MiniGridSbShieldingWrapper(env, shield_handler=shield_handlers[value_for_training], create_shield_at_reset=False)\n",
  675. " env = ActionMasker(env, mask_fn)\n",
  676. " print(\"Training with shield:\")\n",
  677. " create_shield_overlay_image(image_env, shield_handlers[value_for_training].create_shield())\n",
  678. " elif shielding == ShieldingConfig.Disabled:\n",
  679. " env = ActionMasker(env, nomask_fn)\n",
  680. " else:\n",
  681. " assert(False) \n",
  682. " model = MaskablePPO(\"CnnPolicy\", env, verbose=1, device=\"auto\")\n",
  683. " model.set_logger(logger)\n",
  684. " steps = 20_000\n",
  685. "\n",
  686. " #assert(False)\n",
  687. " model.learn(steps,callback=[InfoCallback()])\n",
  688. "\n",
  689. "\n",
  690. "\n",
  691. "if __name__ == '__main__':\n",
  692. " print(\"Starting the training\")\n",
  693. " main()"
  694. ]
  695. },
  696. {
  697. "cell_type": "code",
  698. "execution_count": null,
  699. "metadata": {},
  700. "outputs": [],
  701. "source": []
  702. }
  703. ],
  704. "metadata": {
  705. "kernelspec": {
  706. "display_name": "Python 3 (ipykernel)",
  707. "language": "python",
  708. "name": "python3"
  709. },
  710. "language_info": {
  711. "codemirror_mode": {
  712. "name": "ipython",
  713. "version": 3
  714. },
  715. "file_extension": ".py",
  716. "mimetype": "text/x-python",
  717. "name": "python",
  718. "nbconvert_exporter": "python",
  719. "pygments_lexer": "ipython3",
  720. "version": "3.10.12"
  721. }
  722. },
  723. "nbformat": 4,
  724. "nbformat_minor": 4
  725. }