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.

719 lines
324 KiB

4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks ago
4 weeks 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-24 13:00:24.842265: 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-24 13:00:24.857294: 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-24 13:00:24.861712: 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-24 13:00:24.871856: 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-24 13:00:25.712381: 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": 3,
  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/wAARCAHgAeADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDDooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOzorA1GwuJ9Ukn0nWjBfoi+ZayMJImXtuTqufU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
  85. "image/png": "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
  86. "text/plain": [
  87. "<PIL.Image.Image image mode=RGB size=480x480>"
  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.053414344787597656 seconds.\n",
  102. "LOG: Starting with model checking...\n",
  103. "Elapsed time is 0.0018138885498046875 seconds.\n",
  104. "LOG: Starting to translate shield...\n",
  105. "Elapsed time is 0.08892679214477539 seconds.\n",
  106. "\n",
  107. "\n",
  108. "Computing new shield\n",
  109. "LOG: Starting with explicit model creation...\n",
  110. "Elapsed time is 0.04616570472717285 seconds.\n",
  111. "LOG: Starting with model checking...\n",
  112. "Elapsed time is 0.0017552375793457031 seconds.\n",
  113. "LOG: Starting to translate shield...\n",
  114. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1211\n",
  115. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1222\n",
  116. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1233\n",
  117. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1244\n",
  118. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1255\n",
  119. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1266\n",
  120. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1277\n",
  121. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1288\n",
  122. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1299\n",
  123. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1344\n",
  124. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1355\n",
  125. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1366\n",
  126. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1377\n",
  127. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1388\n",
  128. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1399\n",
  129. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1410\n",
  130. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1421\n",
  131. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1432\n",
  132. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1460\n",
  133. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1471\n",
  134. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1482\n",
  135. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1493\n",
  136. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1504\n",
  137. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1515\n",
  138. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1526\n",
  139. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1537\n",
  140. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1604\n",
  141. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1615\n",
  142. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1626\n",
  143. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1637\n",
  144. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1648\n",
  145. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1659\n",
  146. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1670\n",
  147. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1681\n",
  148. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4689\n",
  149. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4711\n",
  150. "Elapsed time is 0.0928337574005127 seconds.\n",
  151. "\n",
  152. "\n",
  153. "Computing new shield\n",
  154. "LOG: Starting with explicit model creation...\n",
  155. "Elapsed time is 0.04615354537963867 seconds.\n",
  156. "LOG: Starting with model checking...\n",
  157. "Elapsed time is 0.0014677047729492188 seconds.\n",
  158. "LOG: Starting to translate shield...\n",
  159. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1211\n",
  160. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1222\n",
  161. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1233\n",
  162. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1244\n",
  163. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1255\n",
  164. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1266\n",
  165. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1277\n",
  166. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1288\n",
  167. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1299\n",
  168. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1344\n",
  169. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1355\n",
  170. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1366\n",
  171. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1377\n",
  172. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1388\n",
  173. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1399\n",
  174. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1410\n",
  175. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1421\n",
  176. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1432\n",
  177. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1460\n",
  178. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1471\n",
  179. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1482\n",
  180. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1493\n",
  181. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1504\n",
  182. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1515\n",
  183. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1526\n",
  184. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1537\n",
  185. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1604\n",
  186. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1615\n",
  187. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1626\n",
  188. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1637\n",
  189. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1648\n",
  190. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1659\n",
  191. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1670\n",
  192. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1681\n",
  193. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4689\n",
  194. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4711\n",
  195. "Elapsed time is 0.08211565017700195 seconds.\n",
  196. "\n",
  197. "\n",
  198. "Computing new shield\n",
  199. "LOG: Starting with explicit model creation...\n",
  200. "Elapsed time is 0.045874834060668945 seconds.\n",
  201. "LOG: Starting with model checking...\n",
  202. "Elapsed time is 0.0018587112426757812 seconds.\n",
  203. "LOG: Starting to translate shield...\n",
  204. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1210\n",
  205. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1211\n",
  206. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1221\n",
  207. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1222\n",
  208. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1232\n",
  209. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1233\n",
  210. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1243\n",
  211. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1244\n",
  212. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1254\n",
  213. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1255\n",
  214. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1265\n",
  215. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1266\n",
  216. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1276\n",
  217. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1277\n",
  218. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1287\n",
  219. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1288\n",
  220. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1298\n",
  221. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1299\n",
  222. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1332\n",
  223. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1343\n",
  224. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1344\n",
  225. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1354\n",
  226. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1355\n",
  227. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1365\n",
  228. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1366\n",
  229. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1376\n",
  230. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1377\n",
  231. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1387\n",
  232. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1388\n",
  233. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1398\n",
  234. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1399\n",
  235. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1409\n",
  236. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1410\n",
  237. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1420\n",
  238. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1421\n",
  239. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1432\n",
  240. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1460\n",
  241. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1461\n",
  242. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1471\n",
  243. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1472\n",
  244. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1482\n",
  245. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1483\n",
  246. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1493\n",
  247. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1494\n",
  248. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1504\n",
  249. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1505\n",
  250. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1515\n",
  251. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1516\n",
  252. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1526\n",
  253. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1527\n",
  254. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1537\n",
  255. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1538\n",
  256. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1604\n",
  257. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1615\n",
  258. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1616\n",
  259. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1626\n",
  260. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1627\n",
  261. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1637\n",
  262. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1638\n",
  263. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1648\n",
  264. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1649\n",
  265. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1659\n",
  266. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1660\n",
  267. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1670\n",
  268. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1671\n",
  269. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1681\n",
  270. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1682\n",
  271. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1693\n",
  272. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4689\n",
  273. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4695\n",
  274. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4711\n",
  275. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4718\n",
  276. "Elapsed time is 0.0849301815032959 seconds.\n",
  277. "\n",
  278. "\n",
  279. "Computing new shield\n",
  280. "LOG: Starting with explicit model creation...\n",
  281. "Elapsed time is 0.04583621025085449 seconds.\n",
  282. "LOG: Starting with model checking...\n",
  283. "Elapsed time is 0.0014719963073730469 seconds.\n",
  284. "LOG: Starting to translate shield...\n",
  285. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1205\n",
  286. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1206\n",
  287. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1207\n",
  288. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1208\n",
  289. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1209\n",
  290. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1210\n",
  291. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1211\n",
  292. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1216\n",
  293. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1217\n",
  294. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1218\n",
  295. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1219\n",
  296. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1220\n",
  297. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1221\n",
  298. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1222\n",
  299. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1227\n",
  300. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1228\n",
  301. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1229\n",
  302. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1230\n",
  303. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1231\n",
  304. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1232\n",
  305. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1233\n",
  306. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1238\n",
  307. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1239\n",
  308. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1240\n",
  309. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1241\n",
  310. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1242\n",
  311. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1243\n",
  312. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1244\n",
  313. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1249\n",
  314. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1250\n",
  315. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1251\n",
  316. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1252\n",
  317. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1253\n",
  318. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1254\n",
  319. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1255\n",
  320. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1261\n",
  321. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1262\n",
  322. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1263\n",
  323. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1264\n",
  324. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1265\n",
  325. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1266\n",
  326. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1273\n",
  327. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1274\n",
  328. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1275\n",
  329. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1276\n",
  330. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1277\n",
  331. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1285\n",
  332. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1286\n",
  333. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1287\n",
  334. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1288\n",
  335. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1297\n",
  336. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1298\n",
  337. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1299\n",
  338. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1316\n",
  339. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1317\n",
  340. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1318\n",
  341. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1319\n",
  342. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1320\n",
  343. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1327\n",
  344. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1328\n",
  345. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1329\n",
  346. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1330\n",
  347. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1331\n",
  348. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1332\n",
  349. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1338\n",
  350. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1339\n",
  351. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1340\n",
  352. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1341\n",
  353. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1342\n",
  354. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1343\n",
  355. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1344\n",
  356. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1349\n",
  357. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1350\n",
  358. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1351\n",
  359. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1352\n",
  360. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1353\n",
  361. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1354\n",
  362. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1355\n",
  363. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1360\n",
  364. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1361\n",
  365. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1362\n",
  366. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1363\n",
  367. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1364\n",
  368. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1365\n",
  369. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1366\n",
  370. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1372\n",
  371. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1373\n",
  372. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1374\n",
  373. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1375\n",
  374. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1376\n",
  375. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1377\n",
  376. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1384\n",
  377. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1385\n",
  378. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1386\n",
  379. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1387\n",
  380. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1388\n",
  381. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1396\n",
  382. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1397\n",
  383. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1398\n",
  384. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1399\n",
  385. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1408\n",
  386. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1409\n",
  387. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1410\n",
  388. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1420\n",
  389. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1421\n",
  390. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1432\n",
  391. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1460\n",
  392. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1461\n",
  393. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1462\n",
  394. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1463\n",
  395. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1464\n",
  396. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1471\n",
  397. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1472\n",
  398. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1473\n",
  399. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1474\n",
  400. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1475\n",
  401. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1476\n",
  402. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1482\n",
  403. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1483\n",
  404. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1484\n",
  405. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1485\n",
  406. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1486\n",
  407. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1487\n",
  408. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1488\n",
  409. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1493\n",
  410. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1494\n",
  411. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1495\n",
  412. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1496\n",
  413. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1497\n",
  414. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1498\n",
  415. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1499\n",
  416. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1504\n",
  417. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1505\n",
  418. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1506\n",
  419. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1507\n",
  420. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1508\n",
  421. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1509\n",
  422. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1510\n",
  423. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1515\n",
  424. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1516\n",
  425. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1517\n",
  426. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1518\n",
  427. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1519\n",
  428. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1520\n",
  429. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1521\n",
  430. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1526\n",
  431. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1527\n",
  432. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1528\n",
  433. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1529\n",
  434. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1530\n",
  435. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1531\n",
  436. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1532\n",
  437. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1537\n",
  438. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1538\n",
  439. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1539\n",
  440. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1540\n",
  441. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1541\n",
  442. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1542\n",
  443. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1543\n",
  444. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1604\n",
  445. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1615\n",
  446. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1616\n",
  447. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1626\n",
  448. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1627\n",
  449. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1628\n",
  450. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1637\n",
  451. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1638\n",
  452. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1639\n",
  453. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1640\n",
  454. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1648\n",
  455. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1649\n",
  456. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1650\n",
  457. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1651\n",
  458. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1652\n",
  459. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1659\n",
  460. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1660\n",
  461. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1661\n",
  462. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1662\n",
  463. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1663\n",
  464. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1664\n",
  465. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1670\n",
  466. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1671\n",
  467. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1672\n",
  468. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1673\n",
  469. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1674\n",
  470. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1675\n",
  471. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1676\n",
  472. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1681\n",
  473. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1682\n",
  474. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1683\n",
  475. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1684\n",
  476. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1685\n",
  477. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1686\n",
  478. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1687\n",
  479. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1693\n",
  480. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1694\n",
  481. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1695\n",
  482. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1696\n",
  483. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1697\n",
  484. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1698\n",
  485. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1705\n",
  486. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1706\n",
  487. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1707\n",
  488. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1708\n",
  489. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1709\n",
  490. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1717\n",
  491. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1718\n",
  492. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1719\n",
  493. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1720\n",
  494. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1729\n",
  495. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1730\n",
  496. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1731\n",
  497. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4689\n",
  498. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4695\n",
  499. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4711\n",
  500. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4718\n",
  501. " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4725\n",
  502. "Elapsed time is 0.08353805541992188 seconds.\n"
  503. ]
  504. },
  505. {
  506. "data": {
  507. "image/png": "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
  508. "text/plain": [
  509. "<PIL.Image.Image image mode=RGBA size=480x480>"
  510. ]
  511. },
  512. "metadata": {},
  513. "output_type": "display_data"
  514. },
  515. {
  516. "name": "stdout",
  517. "output_type": "stream",
  518. "text": [
  519. "The shield for shield_value = 0.0\n"
  520. ]
  521. },
  522. {
  523. "data": {
  524. "image/png": "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
  525. "text/plain": [
  526. "<PIL.Image.Image image mode=RGBA size=480x480>"
  527. ]
  528. },
  529. "metadata": {},
  530. "output_type": "display_data"
  531. },
  532. {
  533. "name": "stdout",
  534. "output_type": "stream",
  535. "text": [
  536. "The shield for shield_value = 0.9\n"
  537. ]
  538. },
  539. {
  540. "data": {
  541. "image/png": "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
  542. "text/plain": [
  543. "<PIL.Image.Image image mode=RGBA size=480x480>"
  544. ]
  545. },
  546. "metadata": {},
  547. "output_type": "display_data"
  548. },
  549. {
  550. "name": "stdout",
  551. "output_type": "stream",
  552. "text": [
  553. "The shield for shield_value = 0.99\n"
  554. ]
  555. },
  556. {
  557. "data": {
  558. "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAABnk0lEQVR4Ae29zY4cNxYlHP7ckGHAahsWULABCRoZ0Kb1rWYzJb+Ae6UBPsB+gtx9K8uz8gN4Z2k3m65+gdZOK/kJpF0vBuqNgTFkCZBRhg21LWDQBRsenoy6VcxbjB8ySV5mxiGQFREM3nvIw59TjGBEvLFarf7oGMgAGSADZIAMkIGqDPw/VdEIRgbIABkgA2SADKwZoACzIZABMkAGyAAZMGCAAmxAOiHJABkgA2SADFCA2QbIABkgA2SADBgwQAE2IJ2QZIAMkAEyQAYowGwDZIAMkAEyQAYMGKAAG5BOSDJABsgAGSADFGC2ATJABsgAGSADBgxQgA1IJyQZIANkgAyQAQow2wAZIANkgAyQAQMGKMAGpBOSDJABMkAGyAAFmG2ADJABMkAGyIABAxRgA9IJSQbIABkgA2SAAsw2QAbIABkgA2TAgAEKsAHphCQDZIAMkAEyQAFmGyADZIAMkAEyYMAABdiAdEKSATJABsgAGaAAsw2QATJABsgAGTBggAJsQDohyQAZIANkgAxQgNkGyAAZIANkgAwYMEABNiCdkGSADJABMkAGKMBsA2SADJABMkAGDBigABuQTkgyQAbIABkgAxRgtgEyQAbIABkgAwYMUIANSCckGSADZIAMkAEKMNsAGSADZIAMkAEDBijABqQTkgyQATJABsgABZhtgAyQATJABsiAAQMUYAPSCUkGyAAZIANkgALMNkAGyAAZIANkwIABCrAB6YQkA2SADJABMvAnawr+dvXIOgvEJwNkwIoB4+7/3cmBVcmJ6xg4vnFsysPBdwfdV3fumOXBXIDNSk5gMkAGyIBj4PjYTgQODg5M8Y9Wq251ZPhf0I1lN0Fegl52/bP0ZGC5DKxsi35oC98JvmxrZ8cKt3Y5x/AowGPs8BwZIAP7yQDFd6Nea4thbbyNwjZ0QAFuqDKYFTJABiowQPENklxLFGvhBAvZWCQFuLEKYXbIABkoyADFd5Tc0uJY2v9o4Ro8SQFusFKYJTJABgowQPGdRWopkSzld1ahGk1EAW60YpgtMkAGMjJA8Y0iM7dY5vYXVZiGEzcjwM//3XWPn8cxhfQpNsDSgfhpXJJ/3ZLGj8EX299Fjk5+67rX/7kYPxaD9LNsPPEd4n8MZ9tz1uKTip9qp/nK5Uf73YfjZgT4i2+67uO/d91t90ja1KCO80iH9Ck2wNKB+Glckv/4Nsv2p3tf1z1z/xQ//dH93CO5U6KK80i3Tj9lcyq+/pgR4v9ijvLEWIvPtvjW9nlqoV0vf2ola5/fdjODX7ruyYteCA6vdt29T9zgdu08h+hEd514Ig3C1T/32xgb+AWWDsQn/2x/dv3vw3e67uR3J74nvbC+c6nrrr/bde+8dd5TIbwQaqRBuPRmvx20ceKrx4yh/t97yvt3W/HaNje58OHnSUJmcuEnQO+MyRur1eoPy9zqV1GGOsxdJ5j3Hm8KLwQT8Qg4d9/9XjgBR0An0zYhQe9Tb/4l/uY/OSEu8Y8P+Wf7y9L/jjb7nxZZCDHE+eXrTeH9wMV9eLm3fflr1/3gzkPAEWDzr/++OWYM9f/v/meZN1HNFZ//XehNWHPx3fjfHc18E1aMCM/Ff/Lf+jqz+mv9KsrmBFgqQgsh4vXAL2llq4UY8UMdT2yGtsTfFGLwRP43//HQbYftb/MfYfAz2f+UAAunWogRjxmvL7ySVrYixP/1VIgRP4VfQoDnig/yV0KAY/BjBBj5nSPCMfgU4MZmwKhkP0AIMbs9vHY+4/DPh/bXs2Vnh1mafwk7lHYqjvjkn+2vYP8bEGDplxBizH7XM+HTGa+cC27dZeeY/p9bgGPEB/nPLcCx+LECjDyPiXAsPgW4cQFGhTOQATKwpwxMCHBUqZ34xoacAhwrPshrTgFOwU8RYOQ7JMIp+EsX4GZWQd991HXX7vX/vaKCpwJmplgJPWfVtPjCf8bAAJYOxCf/bH92/e/Zq67750s32/1V98zwMWbG65XQsmp6hviO9f8wyvzYFPGZ7306ZW18jaePp3PMFGDgTy3RgEVUX3zTX/L0F/n4eQzdm8WjMGP3etDx/EVavj9/n/jkn+3Prv9hEdX3bpUzFlQN3esN3Ru+7B5FOnT/jOunJqRvz+3/kj52ay0+VvjAfeJ+Vvix9dRi+qYWYWlx9Rf96HMiuCDVfzRJ4nHvV3c8/1yoMjQG8c8XHWluhEvyz/a3Vf/zLkFrcfUXXelz8pjS/7qzHf/bXoLeVny2vQS9LX7qJejQ+JkSt/RL0E0JsFSgHuwlHlsZ+PXiqhQb36+/n+IrxcbH9PdTfKXY+Jj+foqvFBsf099P8ZVi42P6+ym+Umx8TH8/xVeKjY/p76f4SrFZY3oCLHnQYivx2IrwvvOWO/AuO6fibyPA24ofyrONAOfApwAfdF/dcf/FGYUmBVi48DvVkPBKWtmm2Iit3qb4SrHRuHKc4ivFRvD0NsVXio3GleMUXyk2gqe3Kb5SbDSuHKf4SrERPL1N8RVtExBgyYcvxBvCiwSe+Ep6bGPxUwU4h/ghv6kCnAufAkwBRjtkIANkYIkMjAjwIB0D4juYfuREigDnEj9kK0WAc+JTgG0FuJlV0Ov/XB+FX1Q/1H9wjxe/uQEvwcdqZ2DpQPyem9CHAjRXckz+2f5y9b/1bPeVe5vVb9K6Brae+OZsfwNoF6Jzit8F5zMirPFnZJFJIhj4U0TaokmxSvnBv9wKzCdu4Y9rZVgFfc29CzYU0PH8Vc3YH1o1DXuICtLANwJWO+t7yMQn/2x/dv0PL9v4+f94K6DfcW++0qPTqfiW6P/9yDD+11r8rPHH2eHZFAaauQesRRKF0UKsOx7uCyP4H2fwhXiOz97DRZFGPPE3/xEi/5v/+LH99b1nq/53egkaM1+IMB5BkrB+FEmE2IlvifY39xJ0KfGbewm6FD4vQdtegm5GgKXThUTz07+4y8YvNj+24D/z5y+8gB88PnTbiTNmNBK0mEq83hJ/82oB+CH/bH/F+t+pAEs/DAnx1wX7/xwBLiV+KPMcAS6JTwGmAEvf29iGhHBqJbQWYjicK7wb4O6A+BeFmPy7WdgnF29fSNth+9t8Jhe8TPY/JcDCpQjxf/FmxCXa35QAlxQ/lHVKgEvjU4ApwNLnglsRwk9vDQ982hAD4YOnm5dPdZq5x8TvhZj8s/3pdRNDfSiq/w0I8Nq3u+xcuv+NCXBp8UMZxwS4Bj4FmAI81I8ZTwbIwL4zMCTATnxrhCEBriF+KN+QANfCpwDbCnAzjyHV6GzEIANkYAcYqCS+Q0zUEr9W8Yfyxfj8DFCA83NKj2SADKQyQPFNZY52O8gABXgHK41ZJgN7yQDFdy+rlYUaZoACPMwNz5ABMlCLAYpvLaaJ0xADf2ooLzZZGVoEYpMbopKBRTHw3clBX97/aVfso9Vq6NsO5TP18GFniu9KiIVYVuHAlX/JgQK85Npn2clAAwwcHx+b5eLg4KBbHR3ZfVTeid+Rw7cK1qugnfqblf+JIx31bxl4CdqSfWKTATJgxoC/2hmDMcNyGGilvinAy2lzLCkZIAOnDPjiK6S0MihLfrgtw0BL9UwBLlPH9EoGyECjDITEV7La0uAseeI2HwOt1S8FOF/d0hMZIAONMzAmvpL11gZpyRe32zHQYr1SgLerU1qTATKwIwzMEV8pSouDteSN23gGWq1PCnB8XdKCDJCBHWMgRnylaK0O2pI/bucx0HI9NiPA+OoJvqISE5A+xQZYOuDzZ6//o2PHj5E+xQZYOhA/jUvyr1vS+DH4arH9jed6u7Mp4iuILQ/ekkduhxlovf6aeQ74i2/cJwT/1XVT3/wE1RDduy79kxc98bE2+MD8Pz7brLRnTpR//j9d986lrrv+rtu+tXneP8IghvSvT/rYWJv33+66m1d8j70/4pP/2LaEVhRr02L72+wN+Y62EV/JBQbxHH7EH7d1GGhdfMFCMwL8+W337c9felH9+O9hIdbCe/XPfUVCiOfaQKyBpcOH77iZwe+9qD7
  559. "text/plain": [
  560. "<PIL.Image.Image image mode=RGBA size=480x480>"
  561. ]
  562. },
  563. "metadata": {},
  564. "output_type": "display_data"
  565. },
  566. {
  567. "name": "stdout",
  568. "output_type": "stream",
  569. "text": [
  570. "The shield for shield_value = 0.999\n"
  571. ]
  572. },
  573. {
  574. "data": {
  575. "image/png": "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
  576. "text/plain": [
  577. "<PIL.Image.Image image mode=RGBA size=480x480>"
  578. ]
  579. },
  580. "metadata": {},
  581. "output_type": "display_data"
  582. },
  583. {
  584. "name": "stdout",
  585. "output_type": "stream",
  586. "text": [
  587. "The shield for shield_value = 1.0\n",
  588. "Training with shield:\n"
  589. ]
  590. },
  591. {
  592. "data": {
  593. "image/png": "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
  594. "text/plain": [
  595. "<PIL.Image.Image image mode=RGBA size=480x480>"
  596. ]
  597. },
  598. "metadata": {},
  599. "output_type": "display_data"
  600. },
  601. {
  602. "name": "stdout",
  603. "output_type": "stream",
  604. "text": [
  605. "Using cpu device\n",
  606. "Wrapping the env with a `Monitor` wrapper\n",
  607. "Wrapping the env in a DummyVecEnv.\n",
  608. "Wrapping the env in a VecTransposeImage.\n"
  609. ]
  610. },
  611. {
  612. "ename": "AssertionError",
  613. "evalue": "",
  614. "output_type": "error",
  615. "traceback": [
  616. "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
  617. "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)",
  618. "Cell \u001b[0;32mIn[3], line 63\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;18m__name__\u001b[39m \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m__main__\u001b[39m\u001b[38;5;124m'\u001b[39m:\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mStarting the training\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 63\u001b[0m \u001b[43mmain\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
  619. "Cell \u001b[0;32mIn[3], line 56\u001b[0m, in \u001b[0;36mmain\u001b[0;34m()\u001b[0m\n\u001b[1;32m 53\u001b[0m model\u001b[38;5;241m.\u001b[39mset_logger(logger)\n\u001b[1;32m 54\u001b[0m steps \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m20_000\u001b[39m\n\u001b[0;32m---> 56\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m(\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 57\u001b[0m model\u001b[38;5;241m.\u001b[39mlearn(steps,callback\u001b[38;5;241m=\u001b[39m[InfoCallback()])\n",
  620. "\u001b[0;31mAssertionError\u001b[0m: "
  621. ]
  622. }
  623. ],
  624. "source": [
  625. "GRID_TO_PRISM_BINARY=os.getenv(\"M2P_BINARY\")\n",
  626. "\n",
  627. "def mask_fn(env: gym.Env):\n",
  628. " return env.create_action_mask()\n",
  629. "\n",
  630. "def nomask_fn(env: gym.Env):\n",
  631. " return [1.0] * 7\n",
  632. "\n",
  633. "def main():\n",
  634. " env = \"MiniGrid-LavaFaultyS15-1-v0\"\n",
  635. " \n",
  636. " formula = \"Pmax=? [G ! AgentIsOnLava]\"\n",
  637. " value_for_training = 0.0\n",
  638. " shield_comparison = \"absolute\"\n",
  639. " shielding = ShieldingConfig.Training\n",
  640. " \n",
  641. " logger = Logger(\"/tmp\", output_formats=[HumanOutputFormat(sys.stdout)])\n",
  642. " \n",
  643. " env = gym.make(env, render_mode=\"rgb_array\")\n",
  644. " image_env = RGBImgObsWrapper(env, TILE_PIXELS)\n",
  645. " env = RGBImgObsWrapper(env, 8)\n",
  646. " env = ImgObsWrapper(env)\n",
  647. " env = MiniWrapper(env)\n",
  648. "\n",
  649. " \n",
  650. " env.reset()\n",
  651. " Image.fromarray(env.render()).show()\n",
  652. "\n",
  653. " shield_values = [0.0, 0.9, 0.99, 0.999, 1.0]\n",
  654. " shield_handlers = dict()\n",
  655. " if shield_needed(shielding):\n",
  656. " for value in shield_values: \n",
  657. " 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",
  658. " env = MiniGridSbShieldingWrapper(env, shield_handler=shield_handler, create_shield_at_reset=False)\n",
  659. " shield_handlers[value] = shield_handler\n",
  660. "\n",
  661. " if shield_needed(shielding):\n",
  662. " for value in shield_values: \n",
  663. " create_shield_overlay_image(image_env, shield_handlers[value].create_shield())\n",
  664. " print(f\"The shield for shield_value = {value}\")\n",
  665. "\n",
  666. "\n",
  667. " if shielding == ShieldingConfig.Training:\n",
  668. " env = MiniGridSbShieldingWrapper(env, shield_handler=shield_handlers[value_for_training], create_shield_at_reset=False)\n",
  669. " env = ActionMasker(env, mask_fn)\n",
  670. " print(\"Training with shield:\")\n",
  671. " create_shield_overlay_image(image_env, shield_handlers[value_for_training].create_shield())\n",
  672. " elif shielding == ShieldingConfig.Disabled:\n",
  673. " env = ActionMasker(env, nomask_fn)\n",
  674. " else:\n",
  675. " assert(False) \n",
  676. " model = MaskablePPO(\"CnnPolicy\", env, verbose=1, device=\"auto\")\n",
  677. " model.set_logger(logger)\n",
  678. " steps = 20_000\n",
  679. "\n",
  680. " assert(False)\n",
  681. " model.learn(steps,callback=[InfoCallback()])\n",
  682. "\n",
  683. "\n",
  684. "\n",
  685. "if __name__ == '__main__':\n",
  686. " print(\"Starting the training\")\n",
  687. " main()"
  688. ]
  689. },
  690. {
  691. "cell_type": "code",
  692. "execution_count": null,
  693. "metadata": {},
  694. "outputs": [],
  695. "source": []
  696. }
  697. ],
  698. "metadata": {
  699. "kernelspec": {
  700. "display_name": "Python 3 (ipykernel)",
  701. "language": "python",
  702. "name": "python3"
  703. },
  704. "language_info": {
  705. "codemirror_mode": {
  706. "name": "ipython",
  707. "version": 3
  708. },
  709. "file_extension": ".py",
  710. "mimetype": "text/x-python",
  711. "name": "python",
  712. "nbconvert_exporter": "python",
  713. "pygments_lexer": "ipython3",
  714. "version": "3.10.12"
  715. }
  716. },
  717. "nbformat": 4,
  718. "nbformat_minor": 4
  719. }