|
|
{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## Example usage of Tempestpy" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "vscode": { "languageId": "plaintext" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pygame 2.6.0 (SDL 2.28.4, Python 3.10.12)\n", "Hello from the pygame community. https://www.pygame.org/contribute.html\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "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", "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", "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", "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", "To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "2024-09-24 13:00:25.712381: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n", "error: XDG_RUNTIME_DIR not set in the environment.\n" ] } ], "source": [ "from sb3_contrib import MaskablePPO\n", "from sb3_contrib.common.wrappers import ActionMasker\n", "from stable_baselines3.common.logger import Logger, CSVOutputFormat, TensorBoardOutputFormat, HumanOutputFormat\n", "\n", "import gymnasium as gym\n", "\n", "from minigrid.core.actions import Actions\n", "from minigrid.core.constants import TILE_PIXELS\n", "from minigrid.wrappers import RGBImgObsWrapper, ImgObsWrapper\n", "\n", "import tempfile, datetime, shutil\n", "\n", "import time\n", "import os\n", "\n", "from utils import MiniGridShieldHandler, create_log_dir, ShieldingConfig, MiniWrapper, expname, shield_needed, shielded_evaluation, create_shield_overlay_image\n", "from sb3utils import MiniGridSbShieldingWrapper, parse_sb3_arguments, ImageRecorderCallback, InfoCallback\n", "\n", "import os, sys\n", "from copy import deepcopy\n", "\n", "from PIL import Image" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "vscode": { "languageId": "plaintext" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Starting the training\n" ] }, { "data": { "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAHgAeADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDDooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAOzorA1GwuJ9Ukn0nWjBfoi+ZayMJImXtuTqufU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 "image/png": "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 "text/plain": [ "<PIL.Image.Image image mode=RGB size=480x480>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "\n", "Computing new shield\n", "LOG: Starting with explicit model creation...\n", "Elapsed time is 0.053414344787597656 seconds.\n", "LOG: Starting with model checking...\n", "Elapsed time is 0.0018138885498046875 seconds.\n", "LOG: Starting to translate shield...\n", "Elapsed time is 0.08892679214477539 seconds.\n", "\n", "\n", "Computing new shield\n", "LOG: Starting with explicit model creation...\n", "Elapsed time is 0.04616570472717285 seconds.\n", "LOG: Starting with model checking...\n", "Elapsed time is 0.0017552375793457031 seconds.\n", "LOG: Starting to translate shield...\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1211\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1222\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1233\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1244\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1255\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1266\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1277\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1288\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1299\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1344\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1355\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1366\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1377\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1388\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1399\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1410\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1421\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1432\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1460\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1471\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1482\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1493\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1504\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1515\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1526\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1537\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1604\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1615\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1626\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1637\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1648\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1659\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1670\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1681\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4689\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4711\n", "Elapsed time is 0.0928337574005127 seconds.\n", "\n", "\n", "Computing new shield\n", "LOG: Starting with explicit model creation...\n", "Elapsed time is 0.04615354537963867 seconds.\n", "LOG: Starting with model checking...\n", "Elapsed time is 0.0014677047729492188 seconds.\n", "LOG: Starting to translate shield...\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1211\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1222\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1233\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1244\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1255\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1266\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1277\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1288\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1299\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1344\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1355\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1366\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1377\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1388\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1399\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1410\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1421\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1432\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1460\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1471\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1482\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1493\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1504\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1515\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1526\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1537\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1604\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1615\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1626\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1637\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1648\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1659\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1670\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1681\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4689\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4711\n", "Elapsed time is 0.08211565017700195 seconds.\n", "\n", "\n", "Computing new shield\n", "LOG: Starting with explicit model creation...\n", "Elapsed time is 0.045874834060668945 seconds.\n", "LOG: Starting with model checking...\n", "Elapsed time is 0.0018587112426757812 seconds.\n", "LOG: Starting to translate shield...\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1210\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1211\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1221\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1222\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1232\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1233\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1243\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1244\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1254\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1255\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1265\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1266\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1276\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1277\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1287\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1288\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1298\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1299\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1332\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1343\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1344\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1354\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1355\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1365\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1366\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1376\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1377\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1387\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1388\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1398\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1399\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1409\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1410\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1420\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1421\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1432\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1460\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1461\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1471\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1472\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1482\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1483\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1493\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1494\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1504\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1505\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1515\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1516\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1526\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1527\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1537\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1538\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1604\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1615\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1616\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1626\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1627\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1637\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1638\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1648\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1649\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1659\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1660\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1670\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1671\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1681\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1682\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1693\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4689\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4695\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4711\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4718\n", "Elapsed time is 0.0849301815032959 seconds.\n", "\n", "\n", "Computing new shield\n", "LOG: Starting with explicit model creation...\n", "Elapsed time is 0.04583621025085449 seconds.\n", "LOG: Starting with model checking...\n", "Elapsed time is 0.0014719963073730469 seconds.\n", "LOG: Starting to translate shield...\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1205\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1206\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1207\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1208\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1209\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1210\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1211\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1216\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1217\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1218\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1219\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1220\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1221\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1222\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1227\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1228\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1229\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1230\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1231\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1232\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1233\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1238\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1239\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1240\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1241\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1242\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1243\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1244\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1249\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1250\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1251\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1252\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1253\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1254\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1255\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1261\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1262\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1263\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1264\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1265\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1266\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1273\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1274\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1275\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1276\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1277\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1285\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1286\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1287\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1288\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1297\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1298\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1299\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1316\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1317\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1318\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1319\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1320\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1327\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1328\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1329\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1330\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1331\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1332\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1338\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1339\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1340\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1341\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1342\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1343\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1344\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1349\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1350\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1351\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1352\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1353\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1354\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1355\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1360\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1361\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1362\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1363\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1364\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1365\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1366\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1372\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1373\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1374\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1375\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1376\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1377\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1384\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1385\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1386\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1387\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1388\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1396\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1397\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1398\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1399\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1408\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1409\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1410\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1420\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1421\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1432\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1460\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1461\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1462\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1463\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1464\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1471\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1472\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1473\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1474\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1475\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1476\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1482\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1483\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1484\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1485\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1486\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1487\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1488\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1493\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1494\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1495\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1496\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1497\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1498\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1499\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1504\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1505\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1506\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1507\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1508\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1509\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1510\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1515\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1516\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1517\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1518\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1519\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1520\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1521\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1526\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1527\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1528\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1529\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1530\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1531\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1532\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1537\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1538\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1539\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1540\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1541\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1542\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1543\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1604\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1615\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1616\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1626\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1627\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1628\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1637\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1638\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1639\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1640\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1648\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1649\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1650\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1651\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1652\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1659\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1660\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1661\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1662\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1663\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1664\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1670\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1671\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1672\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1673\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1674\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1675\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1676\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1681\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1682\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1683\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1684\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1685\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1686\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1687\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1693\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1694\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1695\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1696\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1697\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1698\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1705\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1706\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1707\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1708\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1709\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1717\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1718\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1719\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1720\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1729\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1730\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 1731\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4689\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4695\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4711\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4718\n", " WARN (PreShield.cpp:50): No shielding action possible with absolute comparison for state with index 4725\n", "Elapsed time is 0.08353805541992188 seconds.\n" ] }, { "data": { "image/png": "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 "text/plain": [ "<PIL.Image.Image image mode=RGBA size=480x480>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The shield for shield_value = 0.0\n" ] }, { "data": { "image/png": "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 "text/plain": [ "<PIL.Image.Image image mode=RGBA size=480x480>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The shield for shield_value = 0.9\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeAAAAHgCAYAAAB91L6VAABfi0lEQVR4Ae29v47dRvbvSx8PZAiwxoYFCDYgQecESkY3usmR/AKaSCeSn2BnN5J8o3kAZ25lJ3H7BazMkfQCV8omONAkDgxZAmS0YUNjC/hhGjZ867vZq3vt1cV/a5OsIutbwG7+q7UW68sqfrrIIvnOZrP5s2KiAlSAClABKkAFZlXgv80ajcGoABWgAlSAClCBrQIEMCsCFaACVIAKUIEEChDACURnSCpABagAFaACBDDrABWgAlSAClCBBAoQwAlEZ0gqQAWoABWgAgQw6wAVoAJUgApQgQQKEMAJRGdIKkAFqAAVoAIEMOsAFaACVIAKUIEEChDACURnSCpABagAFaACBDDrABWgAlSAClCBBAoQwAlEZ0gqQAWoABWgAgQw6wAVoAJUgApQgQQKEMAJRGdIKkAFqAAVoAIEMOsAFaACVIAKUIEEChDACURnSCpABagAFaACBDDrABWgAlSAClCBBAoQwAlEZ0gqQAWoABWgAgQw6wAVoAJUgApQgQQKEMAJRGdIKkAFqAAVoAIEMOsAFaACVIAKUIEEChDACURnSCpABagAFaACBDDrABWgAlSAClCBBAoQwAlEZ0gqQAWoABWgAgQw6wAVoAJUgApQgQQKEMAJRGdIKkAFqAAVoAIEMOsAFaACVIAKUIEEChDACURnSCpABagAFaACBDDrABWgAlSAClCBBAoQwAlEZ0gqQAWoABWgAgQw6wAVoAJUgApQgQQKEMAJRGdIKkAFqAAVoAJ/SS3BV1cPU+8C41MBKpBKgcTN//vjK6lKzrhBgaP/cZRUhyvfX6m+uHs32T4kB3CykjMwFaACVCAocHSUDgKHm021OUz3X0jq+NX/KLsK8hJ02cefpacC5SqwSVv0WyfhZTr33khcmaaKP3fcnOIRwDkdDe4LFaAC8yiQCXylsHND0Mazy7JfU03njjdVOfb1SwDvqyDtqQAVWJYCmcFXxJsLSk1xmtbL/o01nSvOWPs7pR8CeEp16ZsKUIG8FMgUviLS1HDq8t+1XfbTO53av3e/UtkRwKmUZ1wqQAXmVSBz+IoYU0Gqr9+++WR/+06n8ts3fo75COAcjwr3iQpQgXEVWAh8pdBjw2qov6H5Zb+bpmP7a4qztPXZAPjlv6vq6cth8iG/xwaxbGJ8n5bU39ak9mXoxfp3XqPj36vq7X/Or29bg/y9bBR8m/Rvi7PvNi98vHZ2f71+vHZjxbd+1ricDYA/f1JVn35dVbfDI3FdJ3VsRz7k99gglk2M79OS+g+vs6x/tvVV1YvwT/Hzn8IvPJLbBVVsR75t/i6bE/jqc0ZM//N7NM6afSFWuv04RyFfL3/JZdfu3w49g1+r6tmrGgS3rlbVwZ1wcrt2todoRA8CPJEH6epf6+kQG/hFLJsYn/qz/qVrf5+8X1XHfwT4Htdgff9CVV3/oKref++spQK8ADXyIF14t5422gT42nNGU/uvPY37d194yt7AzzNZGDBdS/wBRV5c1nc2m82fKffavooy1mAeBGAePN0FL4CJ9UjY9jD8XgWAI6GRWZsY0Ovcu38Zf/efnJiW+MeH+rP+jdL+Dnfbn4UsQAw4v367C96Pw7pPLtW2r3+rqh/DdgAcCTb/+l+754ym9v/9/74yyZuw+sIvnH+rw55vwhoC4aXEf/Y/62OW6m/qV1FmB2A5EBaEWG9P/JJXphbEWN/U8MSmacr4uyCGTtR/9x8PW3dY/3b/EYY+ne3PAFg0tSDGevR4NXglr0wFxP/3CYixviv+FADuCz/s3xAAI38fCC8pPgGcWQ8YlUwngBC921vXznocentsfttbDnbopelL2LG8XesYn/qz/k3Y/hoALO0SIEbvd9sTPunxyrboNFx2HtL+xwbwEPhh/4cCGDZtEF5afAI4cwCjwjFRASqwUgU6ADyo1AG+Q9OYAB4KP+yrB8Cwi0F4ifFLB3A2o6AfPK6qawf1f6+oYF0JPVOMhO4zalp84T9jxEAsmxif+rP+pWt/L95U1T9fh97ub7ZlxpfRM96OhJZR0z3g29b+41H6r/XAr7/38zltPLt83mLcNTaeXR432nq9/SWnomEQ1edP6kueepCP3sfYvVk8CtN2rwcNTw/S0v70PONTf9a/dO0Pg6h+CKOcMaCq6V5v7N7wpfAo0q3wz7h9akLadt/2L/mHTlPBB3GfhV+p8YcepxzzZzUIy8JVD/qx2wS4EFU/miTrce/XNjy9LXYwbAzGPxt0ZLURLak/699e7U9dgrZw1YOu7DZ5TOn/3N1P/30vQe8LP+8l6Nj5y7MudfzSL0FnBWCpQPZkL+sxlRO/HVzlsdF+9bzHl8dGx9TzHl8eGx1Tz3t8eWx0TD3v8eWx0TH1vMeXx0bH1PMeXx4bHVPPe3x5bLYxFYBlHyxsZT2mAt733wsL6rKzN/4+AN4XvihPagCmjk8AZzwISzeqJvCiEuvksdH2et7jy2OjY+p5jy+PjY6p5z2+PDY6pp73+PLY6Jh63uPLY6Nj6nmPL4+NjqnnPb4G20QALPugQbwDXmRQ8JX8mA6N7wXwGPDF/qYGYOr4BHDGAEYFZaICVGDFCrQAuLHUDfBtzN+ywQPgseCL3UoNwNTxSwdwNqOgt/+5Po6/qL6p/eAeL359E16Cj9HOiGUT49faxD4UYLWSZerP+jdW+9v2dt+Et1n9LrWrYargO2b9a4h2bvWY8D3nnCuKU+AvuZQYo5Qf/SuMwHwWBv6EWo5R0NfCu2BjCQ1Pj2rGfNOoadgDKsgD30gY7WzvITM+9Wf9S9f+8LKNX/5LjYB+P7z5yp6dTuA7Rfuvzwztfwnfdn24dbgC2QzCspBEUSyIbcPDfWEk/XEGDeI+PmsP5yGN9Yy/+48Q9d/9x4/1r249e7W/k0vQ6PkCwngESdL2USQBcYDvFPWv7yXoqeCb+hJw6vilX4LOBsDS6GLQvPe3cNn41e7HFvQzf3rgBfzg8aHbAc7o0UiyMJX1dsr4u1cLoA/1Z/2brP2dAFjaYQzEX07Y/vsAeCr4osypAZg6PgGc6SCsGAi7RkJbEKOC9wUv8urE+OdBTP1DL+zO+dsXUm9Y/3afyYUune3PAFi0FBD/d9UjnqL+dQF4SviirKkBmDo+AZwpgKUhCgjv3Ww+8UlemeJE+Oj57uVT2TZ0yvg1iKk/658dN9HUlga1vwYAb32Hy85Tt782AE8NX5QxNQBTxyeAMwdwUyPneipABVagQBOAA3znSE0AngO+KF9qAKaOXzqAs3kMaY7GxhhUgAosQIGZ4NukxFzwbYrP9eUoQACXc6xZUiqQvwKEb/7HiHs4mgIE8GhS0hEVoAJ7KUD47iUfjZenAAG8vGPGPaYC61OA8F3fMWWJOhX4S2eOtWdoGgSy9nKzfFQgAwW+P75S78X/Trczh5tN07cdZtkpDIRKmVLGv/LttymLnjw2AZz8EHAHqEDZChwdHSUTAPA9PEz3X3jqUcip44dh4Mn0fxZq3ZUrJ/8AJqqBvASdSHiGpQJUIK0CHO2cVv+U0QHfHBIBnMNR4D5QASowqwKE76xyZxUsF/hCFAI4q6rBnaECVGBqBQjfqRXO139O8IVKBHC+dYV7RgWowMgKEL4jC7ogd7nBF9IRwAuqQNxVKkAF/AoQvn7tlm6ZI3yhKQG89JrF/acCVKBTAcK3U6LVZsgVvhA8GwDjqyf4isqQhPweG8SyCZ8/e/sfu7Z9Gfk9NohlE+P7tKT+tia1L0OvHOtf+17vt5Xw3U+/JVvnDF/oms1zwJ8/CZ8Q/FdVdX3zEzsN6D4I+Z+9wtJwG3xg/pvPalv5+yJA+Zf/qqr3L1TV9Q/C9D3Zcn6Kkxjyvz2utw21+ehiVd24vOuX8al/yfVvtzWMt0T4jqfl0jzlDl/omQ2A798O3/78tYbqp1/HoWrBe/WvdZUAiPvaAPCIZdMn74eewR81VJ//FAexBe+Fd2svAHFfG8AasWxifOpfcv2z7WGMZcJ3DBWX6WMJ8IWy2QAYH/t+utnt3QpUHwR "text/plain": [ "<PIL.Image.Image image mode=RGBA size=480x480>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The shield for shield_value = 0.99\n" ] }, { "data": { "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 "text/plain": [ "<PIL.Image.Image image mode=RGBA size=480x480>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The shield for shield_value = 0.999\n" ] }, { "data": { "image/png": "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 "text/plain": [ "<PIL.Image.Image image mode=RGBA size=480x480>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "The shield for shield_value = 1.0\n", "Training with shield:\n" ] }, { "data": { "image/png": "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 "text/plain": [ "<PIL.Image.Image image mode=RGBA size=480x480>" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Using cpu device\n", "Wrapping the env with a `Monitor` wrapper\n", "Wrapping the env in a DummyVecEnv.\n", "Wrapping the env in a VecTransposeImage.\n" ] }, { "ename": "AssertionError", "evalue": "", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mAssertionError\u001b[0m Traceback (most recent call last)", "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", "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", "\u001b[0;31mAssertionError\u001b[0m: " ] } ], "source": [ "GRID_TO_PRISM_BINARY=os.getenv(\"M2P_BINARY\")\n", "\n", "def mask_fn(env: gym.Env):\n", " return env.create_action_mask()\n", "\n", "def nomask_fn(env: gym.Env):\n", " return [1.0] * 7\n", "\n", "def main():\n", " env = \"MiniGrid-LavaFaultyS15-1-v0\"\n", " \n", " formula = \"Pmax=? [G ! AgentIsOnLava]\"\n", " value_for_training = 0.0\n", " shield_comparison = \"absolute\"\n", " shielding = ShieldingConfig.Training\n", " \n", " logger = Logger(\"/tmp\", output_formats=[HumanOutputFormat(sys.stdout)])\n", " \n", " env = gym.make(env, render_mode=\"rgb_array\")\n", " image_env = RGBImgObsWrapper(env, TILE_PIXELS)\n", " env = RGBImgObsWrapper(env, 8)\n", " env = ImgObsWrapper(env)\n", " env = MiniWrapper(env)\n", "\n", " \n", " env.reset()\n", " Image.fromarray(env.render()).show()\n", "\n", " shield_values = [0.0, 0.9, 0.99, 0.999, 1.0]\n", " shield_handlers = dict()\n", " if shield_needed(shielding):\n", " for value in shield_values: \n", " 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", " env = MiniGridSbShieldingWrapper(env, shield_handler=shield_handler, create_shield_at_reset=False)\n", " shield_handlers[value] = shield_handler\n", "\n", " if shield_needed(shielding):\n", " for value in shield_values: \n", " create_shield_overlay_image(image_env, shield_handlers[value].create_shield())\n", " print(f\"The shield for shield_value = {value}\")\n", "\n", "\n", " if shielding == ShieldingConfig.Training:\n", " env = MiniGridSbShieldingWrapper(env, shield_handler=shield_handlers[value_for_training], create_shield_at_reset=False)\n", " env = ActionMasker(env, mask_fn)\n", " print(\"Training with shield:\")\n", " create_shield_overlay_image(image_env, shield_handlers[value_for_training].create_shield())\n", " elif shielding == ShieldingConfig.Disabled:\n", " env = ActionMasker(env, nomask_fn)\n", " else:\n", " assert(False) \n", " model = MaskablePPO(\"CnnPolicy\", env, verbose=1, device=\"auto\")\n", " model.set_logger(logger)\n", " steps = 20_000\n", "\n", " assert(False)\n", " model.learn(steps,callback=[InfoCallback()])\n", "\n", "\n", "\n", "if __name__ == '__main__':\n", " print(\"Starting the training\")\n", " main()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 4 }
|