From ff507beded2a2134b214fb532f491e3f0af6f508 Mon Sep 17 00:00:00 2001 From: "victor.andujar" Date: Tue, 2 Jun 2026 23:05:33 +0200 Subject: [PATCH] examplesTFG Victor Andujar Terron, files with ipg and pg where not added because the experiments can be replicated --- example/LunarLander/Basic Env/Example.ipynb | 3854 ++++++++++++++ example/LunarLander/Basic Env/discretizer.py | 158 + example/LunarLander/Basic Env/dqn.py | 15 + example/LunarLander/Complex Env/Example.ipynb | 4608 +++++++++++++++++ .../LunarLander/Complex Env/discretizer.py | 158 + example/LunarLander/Complex Env/dqn.py | 15 + .../LunarLander/Complex Env/t4_discretizer.py | 220 + 7 files changed, 9028 insertions(+) create mode 100644 example/LunarLander/Basic Env/Example.ipynb create mode 100644 example/LunarLander/Basic Env/discretizer.py create mode 100644 example/LunarLander/Basic Env/dqn.py create mode 100644 example/LunarLander/Complex Env/Example.ipynb create mode 100644 example/LunarLander/Complex Env/discretizer.py create mode 100644 example/LunarLander/Complex Env/dqn.py create mode 100644 example/LunarLander/Complex Env/t4_discretizer.py diff --git a/example/LunarLander/Basic Env/Example.ipynb b/example/LunarLander/Basic Env/Example.ipynb new file mode 100644 index 0000000..408af0a --- /dev/null +++ b/example/LunarLander/Basic Env/Example.ipynb @@ -0,0 +1,3854 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "b631c92d-1fde-4bb8-95fc-c8cf7726ac60", + "metadata": {}, + "source": [ + "### Imports" + ] + }, + { + "cell_type": "markdown", + "id": "00cb8da7-5eeb-4b67-932d-744e2c241a3b", + "metadata": {}, + "source": [ + "In this section, we import all the libraries required to:\n", + "- create and interact with the RL environment,\n", + "- define and train a neural network agent,\n", + "- store and sample experience during training,\n", + "- visualize both results and the explanation graphs generated with pgeon." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "3f780950-cb89-44e8-9801-e1794991d380", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using device: cuda\n" + ] + } + ], + "source": [ + "# The library of gymnasium\n", + "import gymnasium as gym\n", + "\n", + "import torch\n", + "import torch.nn as nn\n", + "import torch.optim as optim\n", + "import random\n", + "from collections import namedtuple, deque\n", + "from itertools import count\n", + "from tqdm import tqdm\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "# For visualizing the PG\n", + "import networkx as nx\n", + "\n", + "# For saving trainings and models\n", + "import dill\n", + "\n", + "# To ensure reproducibility of results\n", + "SEED = 42\n", + "random.seed(SEED)\n", + "np.random.seed(SEED)\n", + "torch.manual_seed(SEED)\n", + "\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")\n", + "\n", + "# Using device GPU\n", + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "print(f\"Using device: {device}\")" + ] + }, + { + "cell_type": "markdown", + "id": "49ef87c8-e071-421c-b920-63f81c7161a6", + "metadata": {}, + "source": [ + "#### Importing and Creating Discretizer" + ] + }, + { + "cell_type": "markdown", + "id": "ab8f4520-3b09-4b2a-8d2c-0d1f5e5ce199", + "metadata": {}, + "source": [ + "In order to use pgeon, we need to transform the continuous state space of the environment into a discrete and interpretable representation.\n", + "\n", + "The LunarLander environment provides observations as continuous values (position, velocity, angle, etc.), which are difficult to interpret directly.\n", + "The semantic discretizer converts these values into high-level symbolic predicates, such as:\n", + "- lander is on the left\n", + "- descending too fast\n", + "- tilted to the right\n", + "- both legs in contact\n", + "\n", + "Without this step, pgeon would not be able to generate meaningful explanations, since it relies on symbolic representations rather than raw numerical states." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "fb7fa668-fc5a-4a49-8c5d-e203a75c6f86", + "metadata": {}, + "outputs": [], + "source": [ + "from discretizer import LunarLanderSemanticDiscretizer\n", + "from discretizer import Contact, XPos, YPos, YVel, XVel, AngularVel, Angle\n", + "\n", + "discretizer = LunarLanderSemanticDiscretizer()" + ] + }, + { + "cell_type": "markdown", + "id": "bb467586-3bae-47a8-8e24-83955658b90b", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "### Creating Environment and Action Mapping" + ] + }, + { + "cell_type": "markdown", + "id": "9e86d168-1bd8-4a3b-9138-b81e24458be4", + "metadata": {}, + "source": [ + "A mapping of the possible actions inside this LunarLander environment is:\n", + "- 0: do nothing\n", + "- 1: fire left orientation engine\n", + "- 2: fire main engine\n", + "- 3: fire right orientation engine\n", + "\n", + "This mapping is not required for training, but it is very useful for interpretability and visualization.\n", + "When we later build the policy graph (PG), actions will be displayed using these human-readable labels instead of numeric IDs.\n", + "\n", + "\n", + "`n_observations` corresponds to the size of the state vector returned by the environment. `n_actions` is how many actions there are in the environment." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7ac4509e-0367-468a-95b8-ed38b8120d92", + "metadata": {}, + "outputs": [], + "source": [ + "# The continuous parameter to false makes the action being discretized as I map them\n", + "env = gym.make('LunarLander-v3', continuous=False, gravity=-10.0,\n", + " enable_wind=False, wind_power=15.0, turbulence_power=1.5)\n", + "\n", + "# Mapping of the actions\n", + "action_names = {\n", + " 0: \"Do nothing\",\n", + " 1: \"Left engine\",\n", + " 2: \"Main engine\",\n", + " 3: \"Right engine\"\n", + "}\n", + "\n", + "n_observations = env.observation_space.shape[0]\n", + "n_actions = env.action_space.n" + ] + }, + { + "cell_type": "markdown", + "id": "c2fc7f4b-a52a-4324-a821-ce33f2cbe32e", + "metadata": {}, + "source": [ + "### DQN Agent" + ] + }, + { + "cell_type": "markdown", + "id": "fbee7a4f-848d-4fca-baf4-8765f8832d79", + "metadata": {}, + "source": [ + "#### Agent Imports, defining Transition and Memory replay" + ] + }, + { + "cell_type": "markdown", + "id": "8ef1868e-551c-4651-90ea-2836a27ed3ee", + "metadata": {}, + "source": [ + "We use two neural networks:\n", + "- Policy network: the model being actively trained\n", + "- Target network: a stable copy used to compute target Q-values\n", + "\n", + "This separation improves training stability by reducing feedback loops in value estimation.\n", + "\n", + "A `Transition` represents a single step of experience collected by the agent.\n", + "It stores the full interaction tuple needed for learning.\n", + "\n", + "`ReplayMemory` stores past experiences so the agent can learn from randomized batches instead of sequential data.\n", + "This breaks correlation between consecutive transitions and improves learning stability.\n", + "\n", + "We use `AdamW` optimizer, which is well-suited for stabilizing deep Q-learning updates." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "2562cd14-cc0e-4900-9eb4-f4738b18c74a", + "metadata": {}, + "outputs": [], + "source": [ + "from dqn import DQN\n", + "policy_net = DQN(n_observations, n_actions).to(device)\n", + "target_net = DQN(n_observations, n_actions).to(device)\n", + "target_net.load_state_dict(policy_net.state_dict())\n", + "target_net.eval()\n", + "\n", + "Transition = namedtuple(\"Transition\", [\"state\", \"action\", \"next_state\", \"reward\", \"done\"])\n", + "\n", + "class ReplayMemory:\n", + " def __init__(self, capacity):\n", + " self.memory = deque([], maxlen=capacity)\n", + "\n", + " def push(self, *args):\n", + " self.memory.append(Transition(*args))\n", + "\n", + " def sample(self, batch_size):\n", + " return random.sample(self.memory, batch_size)\n", + "\n", + " def __len__(self):\n", + " return len(self.memory)\n", + "\n", + "memory = ReplayMemory(100000)\n", + "\n", + "# This is the policy_net of the agent\n", + "optimizer = optim.AdamW(policy_net.parameters(), lr=1e-4)" + ] + }, + { + "cell_type": "markdown", + "id": "4718e273-14eb-4081-a534-cbc702db6365", + "metadata": {}, + "source": [ + "#### Model training" + ] + }, + { + "cell_type": "markdown", + "id": "876491be-b1b5-4a03-a134-0155ee1c67ad", + "metadata": {}, + "source": [ + "We define hyperparameters controlling exploration and learning stability:\n", + "- EPSILON: exploration rate (epsilon-greedy strategy)\n", + "- EPSILON_DECAY: how fast exploration decreases\n", + "- GAMMA: discount factor for future rewards\n", + "- TAU: soft update rate for target network\n", + "- batch_size: number of experiences per training step\n", + "\n", + "These parameters control the trade-off between exploration and exploitation." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "4634e851-8364-4921-8223-6c89bcecfff0", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|███████████████████████████████████████████████████████████████████| 1500/1500 [20:53<00:00, 1.20it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Entrenamiento finalizado.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# Training metrics variables\n", + "dqn_rewards = []\n", + "dqn_lengths = []\n", + "dqn_losses = []\n", + "\n", + "# Epsilon-Greedy parameters\n", + "EPSILON = 1.0\n", + "EPSILON_DECAY = 0.995\n", + "EPSILON_MIN = 0.01\n", + "GAMMA = 0.99\n", + "TAU = 0.005\n", + "batch_size = 128\n", + "num_episodes = 1500\n", + "\n", + "for episode in tqdm(range(num_episodes)):\n", + " state, info = env.reset()\n", + " state = torch.tensor(state, dtype=torch.float32, device=device).unsqueeze(0)\n", + " total_reward = 0\n", + "\n", + " for t in count():\n", + " # Action selector\n", + " if random.random() < EPSILON:\n", + " action = torch.tensor([[env.action_space.sample()]], device=device, dtype=torch.long)\n", + " else:\n", + " with torch.no_grad():\n", + " action = policy_net(state).max(1).indices.view(1, 1)\n", + "\n", + " next_state_raw, reward, terminated, truncated, _ = env.step(action.item())\n", + " done = terminated or truncated\n", + " total_reward += reward\n", + " \n", + " reward_t = torch.tensor([reward], device=device)\n", + " next_state = torch.tensor(next_state_raw, dtype=torch.float32, device=device).unsqueeze(0)\n", + "\n", + " # Save in memory\n", + " memory.push(state, action, next_state, reward_t, done)\n", + " state = next_state\n", + "\n", + " # Optimization\n", + " if len(memory) >= batch_size:\n", + " transitions = memory.sample(batch_size)\n", + " batch = Transition(*zip(*transitions))\n", + "\n", + " state_batch = torch.cat(batch.state)\n", + " action_batch = torch.cat(batch.action)\n", + " reward_batch = torch.cat(batch.reward)\n", + " next_state_batch = torch.cat(batch.next_state)\n", + " done_batch = torch.tensor(batch.done, device=device, dtype=torch.float32)\n", + "\n", + " # Currently Q value calculation\n", + " state_action_values = policy_net(state_batch).gather(1, action_batch)\n", + "\n", + " # Target Q value calculation\n", + " with torch.no_grad():\n", + " next_state_values = target_net(next_state_batch).max(1)[0]\n", + " expected_q = (next_state_values * GAMMA * (1 - done_batch)) + reward_batch\n", + "\n", + " # Huber lost\n", + " loss = nn.SmoothL1Loss()(state_action_values, expected_q.unsqueeze(1))\n", + " \n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " torch.nn.utils.clip_grad_value_(policy_net.parameters(), 100)\n", + " optimizer.step()\n", + " \n", + " dqn_losses.append(loss.item())\n", + "\n", + " # Soft Update\n", + " for target_param, param in zip(target_net.parameters(), policy_net.parameters()):\n", + " target_param.data.copy_(TAU * param.data + (1.0 - TAU) * target_param.data)\n", + "\n", + " if done:\n", + " dqn_rewards.append(total_reward)\n", + " dqn_lengths.append(t + 1)\n", + " break\n", + "\n", + " # Decline of exploration\n", + " EPSILON = max(EPSILON_MIN, EPSILON * EPSILON_DECAY)\n", + "\n", + "print(\"Entrenamiento finalizado.\")" + ] + }, + { + "cell_type": "markdown", + "id": "f47cbfa5-973a-4837-af70-58a0d92646ca", + "metadata": {}, + "source": [ + "#### Saving model" + ] + }, + { + "cell_type": "markdown", + "id": "61a31cae-a89d-4286-990a-9cdef29eaec0", + "metadata": {}, + "source": [ + "For saving the policy of the DQN agent we can use the next code which save also the information of the rewards obtained, the length of the episodes and the losses during the training." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "6b11688b-92dc-4723-9ceb-25522bf338c1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model saved to dqn_lunar_lander.pth\n" + ] + } + ], + "source": [ + "torch.save({\n", + " \"model\": policy_net.state_dict(),\n", + " \"rewards\": dqn_rewards,\n", + " \"lengths\": dqn_lengths,\n", + " \"losses\": dqn_losses,\n", + "}, \"dqn_lunar_lander_example.pth\")\n", + "print(\"Model saved to dqn_lunar_lander.pth\")" + ] + }, + { + "cell_type": "markdown", + "id": "de58d79d-4eba-4cfd-96df-ae9b832de08e", + "metadata": {}, + "source": [ + "#### Loading model" + ] + }, + { + "cell_type": "markdown", + "id": "a801b198-17a5-43b2-be5a-9560a4245edf", + "metadata": {}, + "source": [ + "We can get all the information save with the code before using the next code." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "9216c304-3b38-4b44-a595-c2714b6c043b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model loaded successfully!\n" + ] + } + ], + "source": [ + "policy_net = DQN(n_observations, n_actions).to(device)\n", + "\n", + "checkpoint = torch.load(\"dqn_lunar_lander_example.pth\", weights_only=False)\n", + "\n", + "policy_net.load_state_dict(checkpoint[\"model\"])\n", + "dqn_rewards = checkpoint[\"rewards\"]\n", + "dqn_lengths = checkpoint[\"lengths\"]\n", + "dqn_losses = checkpoint[\"losses\"]\n", + "\n", + "print(\"Model loaded successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "0858cefd-17c5-442f-963b-4bf4197fd317", + "metadata": {}, + "source": [ + "#### Plots of the model training" + ] + }, + { + "cell_type": "markdown", + "id": "dd36be19-8d2a-46ea-a8fc-c41aafb60325", + "metadata": {}, + "source": [ + "The next code allows us to see the evolution of the rewards, length and losses obtained during the training." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "646414ee-68c3-4c84-a232-cfafc8a58433", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAASmCAYAAADBBeLHAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd4FGXXBvB704GQhN57kyYoKCK9SxGwAioCoiLYAJVXLKBYEFBRURE7RaUp2KgiSkc6SJXeOyS0JJDM98f5nkzZvtmWcP+uK9fO9tnN7O7MPWfOY9M0TQMREREREREREREREdmJCPUMEBERERERERERERGFK4boREREREREREREREROMEQnIiIiIiIiIiIiInKCIToRERERERERERERkRMM0YmIiIiIiIiIiIiInGCITkRERERERERERETkBEN0IiIiIiIiIiIiIiInGKITERERERERERERETnBEJ2IiIiIiIiIiIiIyAmG6ERERETk1muvvQabzRbU59y/fz9sNhu+/fbboD5vTte7d2+UL1/eb4936NAhxMXFYfny5X57TH/79ttvYbPZsH///lDPynXvxRdfRIMGDUI9G0RERER+xRCdiIiIKJdRgaKzv1WrVoV6FkPG+l4kJCSgWbNm+P3330M9a2FrxIgRaNCgARo1ahTqWaEcYODAgdi0aRN++eWXUM8KERERkd9EhXoGiIiIiCgwRowYgQoVKthdXrlyZa8f65VXXsGLL77oj9kKuTZt2uDhhx+Gpmk4cOAAxo8fjzvvvBNz585Fu3btQj17YeXUqVOYOHEiJk6cGOpZcalnz57o3r07YmNjQz0r173ixYujS5cuePfdd9G5c+dQzw4RERGRXzBEJyIiIsql2rdvj/r16/vlsaKiohAVlTtWHatWrYqHHnoo6/w999yDGjVq4MMPP8wRIXpqaipiYmIQERH4g0qnTJmCqKgo3HnnnQF/ruyIjIxEZGRkqGcj5C5duoR8+fKFejZw//3347777sPevXtRsWLFUM8OERERUbaxnQsRERHRdUr1HH/33XcxduxYlCtXDnny5EGzZs3w77//mm7rqCf6woUL0bhxYyQlJSE+Ph7VqlXDSy+9ZLrNyZMn0bdvXxQrVgxxcXGoU6eOw6rm8+fPo3fv3khMTERSUhJ69eqF8+fPO5zvHTt24N5770XBggURFxeH+vXrZ6t1RPXq1VG4cGHs2bPHdHlaWhqGDx+OypUrIzY2FmXKlMGQIUOQlpaWdZu7774bN998s+l+d955J2w2m2meVq9eDZvNhrlz5wIAzp49i+effx61a9dGfHw8EhIS0L59e2zatMn0WH/99RdsNhumTp2KV155BaVKlULevHmRkpICAJg9ezZq1aqFuLg41KpVC7NmzXL4GqdOnYp69eohf/78SEhIQO3atfHhhx+6fW9mz56NBg0aID4+3nR58+bNUatWLWzevBnNmjVD3rx5UblyZcycORMA8Pfff6NBgwbIkycPqlWrhj/++MPusTds2ID27dsjISEB8fHxaNWqlanV0Nq1a2Gz2RwuL/Pnz4fNZsNvv/0GwHFP9PLly6NTp05YtmwZbr31VsTFxaFixYqYNGmS3eOp15EnTx6ULl0ab775Jr755huP+qxv3rwZvXv3RsWKFREXF4fixYvjkUcewZkzZ7JuM3PmTNhsNvz99992958wYQJsNpvpM+fJMq5e899//40BAwagaNGiKF26NADgwIEDGDBgAKpVq4Y8efKgUKFCuO+++xy+Fm9e+9y5c9GkSRPky5cP+fPnR8eOHbF161a7x2zdujUA4Oeff3b53hERERHlFLmjnIiIiIiI7CQnJ+P06dOmy2w2GwoVKmS6bNKkSbhw4QKefPJJpKam4sMPP0TLli2xZcsWFCtWzOFjb926FZ06dcKNN96IESNGIDY2Frt37zYNPnnlyhU0b94cu3fvxlNPPYUKFSpgxowZ6N27N86fP49nn30WAKBpGrp06YJly5bhiSeeQPXq1TFr1iz06tXL4fM2atQIpUqVwosvvoh8+fJh+vTp6Nq1K3788UfcddddPr1P586dQ6VKlbIuy8zMROfOnbFs2TI8/vjjqF69OrZs2YKxY8di165dmD17NgCgSZMm+Pnnn5GSkoKEhARomobly5cjIiICS5cuzWpnsXTpUkRERGT1Fd+7dy9mz56N++67DxUqVMCJEycwYcIENGvWDNu2bUPJkiVN8/jGG28gJiYGzz//PNLS0hATE4MFCxZkVdGPHDkSZ86cQZ8+fbKCVGXhwoXo0aMHWrVqhVGjRgEAtm/fjuXLl2f9Dxy5evUq1qxZg/79+zu8/ty5c+jUqRO6d++O++67D+PHj0f37t3x3XffYeDAgXjiiSfwwAMPYMyYMbj33ntx6NAh5M+fH4D8H5s0aYKEhAQMGTIE0dHRmDBhApo3b54VwNevXx8VK1bE9OnT7ZaFadOmoUCBAm6PHNi9ezfuvfde9O3bF7169cLXX3+N3r17o169eqhZsyYA4MiRI2jRogVsNhuGDh2KfPny4csvv/S4NczChQuxd+9e9OnTB8WLF8fWrVvx+eefY+vWrVi1ahVsNhs6duyI+Ph4TJ8+Hc2aNbN7LTVr1kStWrWy3htvlvEBAwagSJEiGDZsGC5dugQAWLNmDVasWIHu3bujdOnS2L9/P8aPH4/mzZtj27ZtyJs3r9evffLkyejVqxfatWuHUaNG4fLlyxg/fjwaN26MDRs2mAazTUxMRKVKlbB8+XIMGjTIo/eRiIiIKKxpRERERJSrfPPNNxoAh3+xsbFZt9u3b58GQMuTJ492+PDhrMtXr16tAdAGDRqUddnw4cM146rj2LFjNQDaqVOnnM7HBx98oAHQpkyZknVZenq61rBhQy0+Pl5LSUnRNE3TZs+erQHQRo8enXW7a9euaU2aNNEAaN98803W5a1atdJq166tpaamZl2WmZmp3X777VqVKlXcvjcAtL59+2qnTp3STp48qa1du1a74447NADamDFjsm43efJkLSIiQlu6dKnp/p999pkGQFu+fLmmaZq2Zs0aDYA2Z84cTdM0bfPmzRoA7b777tMaNGiQdb/OnTtrN910U9b51NRULSMjw/TY+/bt02JjY7URI0ZkXbZ48WINgFaxYkXt8uXLptvXrVtXK1GihHb+/PmsyxYsWKAB0MqVK5d12bPPPqslJCRo165dc/v+GO3evVsDoI0bN87uumbNmmkAtO+//z7rsh07dmgAtIiICG3VqlVZl8+fP9/u/9i1a1ctJiZG27NnT9ZlR48e1fLnz681bdo067KhQ4dq0dHR2tmzZ7MuS0tL05KSkrRHHnkk6zK1zO/bty/rsnLlymkAtCVLlmRddvLkSS02NlZ77rnnsi57+umnNZvNpm3YsCHrsjNnzmgFCxa0e0xHrP8XTdO0H374we65e/TooRUtWtT0fzh27JgWERFh+p97uoyr19y4cWO7/62jeVq5cqUGQJs0aZLXr/3ChQtaUlKS9thjj5ke8/jx41piYqLd5ZqmaW3bttWqV69udzkRERFRTsR2LkRERES51CeffIKFCxea/lQ7EaOuXbuiVKlSWedvvfVWNGjQAHPmzHH62ElJSQCkXUNmZqbD28yZMwfFixdHjx49si6Ljo7GM888g4sXL2a1tpgzZw6ioqJMFc+RkZF4+umnTY939uxZ/Pnnn7j//vtx4cIFnD59GqdPn8aZM2fQrl07/Pfffzhy5Ijb9+Wrr75CkSJFULRoUdSvXx+LFi3CkCFDMHjw4KzbzJgxA9WrV8cNN9yQ9TynT59Gy5YtAQCLFy8GANx0002Ij4/HkiVLAEjFeenSpfHwww9j/fr1uHz5MjRNw7Jly9CkSZOsx4+Njc3qaZ6RkYEzZ85ktcRZv3693Tz36tULefLkyTp/7NgxbNy4Eb169UJiYmLW5W3atEGNGjVM901KSsKlS5ewcOFCt++NkWpHUqBAAYfXx8fHo3v37lnnq1WrhqSkJFSvXh0NGjTIulxN7927N+v1LliwAF27djX1yy5RogQeeOABLFu2LKtdTbdu3XD16lX89NNPWbdbsGABzp8/j27durl9DTVq1DC970WKFEG1atWy5gUA5s2bh4YNG6Ju3bpZlxUsWBAPPvig28cHYPq/pKam4vTp07jtttsAwPS/7NatG06ePIm//vor67KZM2ciMzMz67X4sow/9thjdv3gjfN09epVnDlzBpUrV0ZSUpJpnjx97QsXLsT58+fRo0cP0+chMjISDRo0yPo8GBUoUMDuSBgiIiKinIohOhEREVEudeutt6J169amvxYtWtjdrkqVKnaXVa1a1WUv6G7duqFRo0Z49NFHUaxYMXTv3h3Tp083BeoHDhxAlSpV7AbArF69etb16rREiRJ2fberVatmOr97925omoZXX30VRYoUMf0NHz4cgPRgd6dLly5YuHAhfv/996xe75cvXzbN53///YetW7faPU/VqlVNzxMZGYmGDRti6dKlACREb9KkCRo3boyMjAysWrUK27Ztw9mzZ01hbmZmJsaOHYsqVaogNjYWhQsXRpEiRbB582YkJyfbzXOFChVM59V75+h/Z33fBgwYgKpVq6J9+/YoXbo0HnnkEcybN8/t+6Romubw8tKlS9v1yU9MTESZMmXsLgOk/QsAnDp1CpcvX7abT0CWjczMTBw6dAgAUKdOHdxwww2YNm1a1m2mTZuGwoULZ+3QcKVs2bJ2lxUoUCBrXgB5LytXrmx3O0eXOXL27Fk8++yzKFasGPLkyYMiRYpk/b+M/8s77rgDiYmJdq+lbt26WcuVL8u4ddkApJXSsGHDUKZMGdPydf78edM8efra//vvPwBAy5Yt7eZrwYIFDj93mqbZLR9EREREORV7ohMRERGR1/LkyYMlS5Zg8eLF+P333zFv3jxMmzYNLVu2xIIFC+wqY/1BBfTPP/+8017YngSfpUuXzhr4sEOHDihcuDCeeuoptGjRAnfffXfWc9WuXRvvv/++w8cwBsWNGzfGW2+9hdTUVCxduhQvv/wykpKSUKtWLSxdujSrr7wxRH/77bfx6quv4pFHHsEbb7yBggULIiIiAgMHDnRY2W+sLPZW0aJFsXHjRsyfPx9z587F3Llz8c033+Dhhx92OGinonrnGwNnI2f/Y2eXOwvj3enWrRveeustnD59Gvnz58cvv/yCHj16ICrK/aaMv+fFkfvvvx8rVqzACy+8gLp16yI+Ph6ZmZm44447TP/L2NhYdO3aFbNmzcKnn36KEydOYPny5Xj77bezbuPLMu5o2Xj66afxzTffYODAgWjYsCESExNhs9nQvXt3p0eOuKLuM3nyZBQvXtzuekf/i3PnzqFw4cJePxcRERFROGKITkRERHSdU1WmRrt27TINFOhIREQEWrVqhVatWuH999/H22+/jZdffhmLFy9G69atUa5cOWzevBmZmZmmKu8dO3YAAMqVK5d1umjRIly8eNFUjb5z507T86nWH9HR0VkhuD/069cPY8eOxSuvvIK77roLNpsNlSpVwqZNm9CqVSu31bRNmjRBeno6fvjhBxw5ciQrLG/atGlWiF61alXTIK0zZ85EixYt8NVXX5ke6/z58x4Fj+q9c/S/s75vABATE4M777wTd955JzIzMzFgwABMmDABr776qtMdD2XLlkWePHmwb98+t/PjjSJFiiBv3rwO53PHjh2IiIgw7aTo1q0bXn/9dfz4448oVqwYUlJSTG1ksqtcuXLYvXu33eWOLrM6d+4cFi1ahNdffx3Dhg3LutzR/wWQ1zJx4kQsWrQI27dvh6ZpprY0/lrGZ86ciV69euG9997Luiw1NRXnz5833c7T164G3S1atKjH87Vv3z7UqVPHyzknIiIiCk9s50JERER0nZs9e7apz/I///yD1atXo3379k7vc/bsWbvLVF/ltLQ0AFLlffz4cVP7imvXrmHcuHGIj49Hs2bNsm537do1jB8/Put2GRkZGDdunOnxixYtiubNm2PChAk4duyY3fOfOnXKg1drLyoqCs899xy2b9+On3/+GYBUFx85cgRffPGF3e2vXLmCS5cuZZ1v0KABoqOjMWrUKBQsWBA1a9YEIOH6qlWr8Pfff5uq0AGpkLZWQ8+YMcOjnu6A9A+vW7cuJk6caGrPsXDhQmzbts10W9XbXImIiMCNN94IQP9fORIdHY369etj7dq1Hs2TpyIjI9G2bVv8/PPPppZBJ06cwPfff4/GjRsjISEh6/Lq1aujdu3amDZtGqZNm4YSJUqgadOmfpufdu3aYeXKldi4cWPWZWfPnsV3333n0WsB7CvbP/jgA4e3b926NQoWLJj1Wm699VZTOxZ/LeOOlq9x48YhIyPDdJmnr71du3ZISEjA22+/jatXr7qdr+TkZOzZswe33367R/NLREREFO5YiU5ERESUS82dOzer6tvo9ttvNw3oWLlyZTRu3Bj9+/dHWloaPvjgAxQqVAhDhgxx+tgjRozAkiVL0LFjR5QrVw4nT57Ep59+itKlS6Nx48YAgMcffxwTJkxA7969sW7dOpQvXx4zZ87E8uXL8cEHHyB//vwAgDvvvBONGjXCiy++iP3796NGjRr46aefHPYG/+STT9C4cWPUrl0bjz32GCpWrIgTJ05g5cqVOHz4MDZt2uTTe9W7d28MGzYMo0aNQteuXdGzZ09Mnz4dTzzxBBYvXoxGjRohIyMDO3bswPTp0zF//nzUr18fAJA3b17Uq1cPq1atwp133plVud60aVNcunQJly5dsgvRO3XqhBEjRqBPnz64/fbbsWXLFnz33Xem/4s7I0eORMeOHdG4cWM88sgjOHv2LMaNG4eaNWvi4sWLWbd79NFHcfbsWbRs2RKlS5fGgQMHMG7cONStWzerP70zXbp0wcsvv4yUlBRTsJ1db775JhYuXIjGjRtjwIABiIqKwoQJE5CWlobRo0fb3b5bt24YNmwY4uLi0LdvX7s++9kxZMgQTJkyBW3atMHTTz+NfPny4csvv0TZsmVx9uxZl0ciJCQkoGnTphg9ejSuXr2KUqVKYcGCBU6r96Ojo3H33Xdj6tSpuHTpEt5991272/hjGe/UqRMmT56MxMRE1KhRAytXrsQff/yR1aLH29eekJCA8ePHo2fPnrj55pvRvXt3FClSBAcPHsTvv/+ORo0a4eOPP8563D/++AOapqFLly5u55WIiIgoR9CIiIiIKFf55ptvNABO/7755htN0zRt3759GgBtzJgx2nvvvaeVKVNGi42N1Zo0aaJt2rTJ9JjDhw/XjKuOixYt0rp06aKVLFlSi4mJ0UqWLKn16NFD27Vrl+l+J06c0Pr06aMVLlxYi4mJ0WrXrp31/EZnzpzRevbsqSUkJGiJiYlaz549tQ0bNpjmV9mzZ4/28MMPa8WLF9eio6O1UqVKaZ06ddJmzpzp9r0BoD355JMOr3vttdc0ANrixYs1TdO09PR0bdSoUVrNmjW12NhYrUCBAlq9evW0119/XUtOTjbd94UXXtAAaKNGjTJdXrlyZQ2AtmfPHtPlqamp2nPPPaeVKFFCy5Mnj9aoUSNt5cqVWrNmzbRmzZpl3W7x4sUaAG3GjBkO5/nHH3/UqlevrsXGxmo1atTQfvrpJ61Xr15auXLlsm4zc+ZMrW3btlrRokW1mJgYrWzZslq/fv20Y8eOuX2/Tpw4oUVFRWmTJ082Xd6sWTOtZs2adrcvV66c1rFjR7vLHb3v69ev19q1a6fFx8drefPm1Vq0aKGtWLHC4Xz8999/WcvvsmXL7K5Xy/y+ffvczov1PdY0TduwYYPWpEkTLTY2VitdurQ2cuRI7aOPPtIAaMePH3c4T8rhw4e1u+66S0tKStISExO1++67Tzt69KgGQBs+fLjd7RcuXKgB0Gw2m3bo0CGHj+nJMq5e85o1a+zuf+7cuazPXXx8vNauXTttx44dWrly5bRevXr5/NoXL16stWvXTktMTNTi4uK0SpUqab1799bWrl1rul23bt20xo0bu3zfiIiIiHISm6b5cVQdIiIiIsox9u/fjwoVKmDMmDF4/vnnQz07FKb69u2LXbt2YenSpaGelaAaOHAgJkyYgIsXLwZkoNxwlp3Xfvz4cVSoUAFTp05lJToRERHlGuyJTkRERERETg0fPhxr1qzB8uXLQz0rAXPlyhXT+TNnzmDy5Mlo3Lhxrg/Q/f3aP/jgA9SuXZsBOhEREeUq7IlOREREREROlS1bFqmpqaGejYBq2LAhmjdvjurVq+PEiRP46quvkJKSgldffTXUsxZw/n7t77zzjp/nkIiIiCj0GKITEREREdF1rUOHDpg5cyY+//xz2Gw23Hzzzfjqq6/QtGnTUM9awF3Pr52IiIjIU+yJTkRERERERERERETkBHuiExERERERERERERE5wRCdiIiIiIiIiIiIiMgJ9kT3UmZmJo4ePYr8+fPDZrOFenaIiIiIiIiIiIiIyAeapuHChQsoWbIkIiKc15szRPfS0aNHUaZMmVDPBhERERERERERERH5waFDh1C6dGmn1zNE91L+/PkByBubkJAQ4rkhIiIiIiIiIiIiIl+kpKSgTJkyWZmvMzkmRB8/fjzGjx+P/fv3AwBq1qyJYcOGoX379gCA1NRUPPfcc5g6dSrS0tLQrl07fPrppyhWrFjWYxw8eBD9+/fH4sWLER8fj169emHkyJGIivL8bVAtXBISEhiiExEREREREREREeVw7tp255iBRUuXLo133nkH69atw9q1a9GyZUt06dIFW7duBQAMGjQIv/76K2bMmIG///4bR48exd133511/4yMDHTs2BHp6elYsWIFJk6ciG+//RbDhg0L1UsiIiIiIiIiIiIiojBn0zRNC/VM+KpgwYIYM2YM7r33XhQpUgTff/897r33XgDAjh07UL16daxcuRK33XYb5s6di06dOuHo0aNZ1emfffYZ/ve//+HUqVOIiYnx6DlTUlKQmJiI5ORkVqITERERERERERER5VCeZr05phLdKCMjA1OnTsWlS5fQsGFDrFu3DlevXkXr1q2zbnPDDTegbNmyWLlyJQBg5cqVqF27tqm9S7t27ZCSkpJVzU5EREREREREREREZJRjeqIDwJYtW9CwYUOkpqYiPj4es2bNQo0aNbBx40bExMQgKSnJdPtixYrh+PHjAIDjx4+bAnR1vbrOmbS0NKSlpWWdT0lJ8dOrISIiIiIiIiIiIqJwl6Mq0atVq4aNGzdi9erV6N+/P3r16oVt27YF9DlHjhyJxMTErL8yZcoE9PmIiIiIiIiIiIiIKHzkqBA9JiYGlStXRr169TBy5EjUqVMHH374IYoXL4709HScP3/edPsTJ06gePHiAIDixYvjxIkTdter65wZOnQokpOTs/4OHTrk3xdFRERERERERERERGErR4XoVpmZmUhLS0O9evUQHR2NRYsWZV23c+dOHDx4EA0bNgQANGzYEFu2bMHJkyezbrNw4UIkJCSgRo0aTp8jNjYWCQkJpj8iIiIiIiIiIiIiuj7kmJ7oQ4cORfv2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I0THMenzz52fzz/f+fnkk93333RTaQW6yexTXlOaNnV+NhcWPf74mj0/AAAAAAAAAEJ01BG//Sade660bJlv47/5xvn57LOdn089VbroIufjSy5xfu7Z09lKJS1NGjnSvXVLTTD7opu6davZ8wMAAAAAAACQajgWBKrHhAnOFi2ffebsI16R3budi3WGhUm9ezu32WzS3LnShx9KvXqVjj31VGnXLufYmuYaordoUb3tYwAAAAAAAAB4RiU66gS7vfTxypUVj/32W+fnk0+WEhNLt0dGSpdeWtqL3BSMAF1yD9GpQgcAAAAAAACCgxAddYJr0D1ihHT4sPexq1Y5P59+erVOyW/nnislJTkfn3deUKcCAAAAAAAAHLMI0VEnHDhQ+njjRum997yPXb3a+blLl+qdk79OOcXZeuaXX6Rrrw32bAAAAAAAAIBjEyE66gQzRO/a1fn588/Lj3E4pNGjpS+/dD4/5ZSamZs/YmOl9u2dPdsBAAAAAAAA1DxCdNQJZoh+5ZXOz59/7gzNTYYhvfKK9OKLpds6daq5+QEAAAAAAAAITYToqBMOHnR+HjRIql9f2r+/tOJckq65RrrxxtLn554rRUfX7BwBAAAAAAAAhB5CdIS8goLShUTT0pwLi0rS5MnOz3v3Sm+/7XycmCht3ix9/HGNTxMAAAAAAABACCJER8gzW7mEh0sJCdLYsVJYmPTVV9K2bdJrr0l2u9Stm7NivU0bKSIiqFMGAAAAAAAAECII0RHS3n5bOuss5+PkZOcCnM2bS717O7dlZEj33ut8fMMNznAdAAAAAAAAAHwVMpHiI488op49eyouLk5JSUkex+zYsUPnn3++4uLi1LhxY911110qKSlxG/P111/rlFNOUXR0tNq0aaOZM2dW/+RRLXJzpWHDnO1ZJOmvv0r3DR7sPnbkSOlf/6qxqQEAAAAAAACoI0ImRC8qKtJll12mm2++2eN+u92u888/X0VFRfr+++/1xhtvaObMmZo4caI1ZuvWrTr//PN11llnae3atRozZoz+9a9/6bPPPqupy0AA7dkjGUbpc9fHl1/u7H9+yinS6tXS9OlUoQMAAAAAAACoPJthuEaPtd/MmTM1ZswYZWdnu21fsGCBBg0apN27dys1NVWSNG3aNN1zzz3av3+/oqKidM899+iTTz7Rhg0brNcNHTpU2dnZ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QYHuueceXXnllUpISJDEvYra4/HHH1dERIRuu+02j/u5V1EdIoI9AQCoilGjRmnDhg1aunRpsKcClLNz507dfvvtWrRokWJiYoI9HcArh8Ohbt266dFHH5UkdenSRRs2bNC0adM0fPjwIM8OcDdnzhzNmjVLs2fPVqdOnbR27VqNGTNG6enp3K8AEEDFxcW6/PLLZRiGpk6dGuzpAG5WrVql5557TqtXr5bNZgv2dHAMoRIdPmnUqJHCw8O1d+9et+179+5VWlpakGaFY9Xo0aM1f/58ffXVVzruuOOs7WlpaSoqKlJ2drbbeNf7NC0tzeN9bO4DAmHVqlXat2+fTjnlFEVERCgiIkLffPONnn/+eUVERCg1NZV7FbVCkyZN1LFjR7dtHTp00I4dOySV3msV/fuflpZWbpHxkpISHTx4kHsVAXXXXXdZ1eidO3fW1VdfrTvuuMP6jR/uV9RGgbov+X8BaooZoG/fvl2LFi2yqtAl7lXUDt9++6327dun5s2bWz9rbd++XXfeeadatmwpiXsV1YMQHT6JiopS165d9eWXX1rbHA6HvvzyS/Xo0SOIM8OxxDAMjR49Wh988IEWL16sjIwMt/1du3ZVZGSk2326adMm7dixw7pPe/ToofXr17v9g2r+57BskARUVb9+/bR+/XqtXbvW+ujWrZuGDRtmPeZeRW3Qq1cvbdq0yW3bb7/9phYtWkiSMjIylJaW5nav5ubmavny5W73anZ2tlatWmWNWbx4sRwOh7p3714DV4FjxeHDhxUW5v7jS3h4uBwOhyTuV9ROgbove/TooSVLlqi4uNgas2jRIrVr104NGjSooatBXWcG6Js3b9YXX3yhhg0buu3nXkVtcPXVV+unn35y+1krPT1dd911lz777DNJ3KuoJsFe2RSh45133jGio6ONmTNnGj///LMxcuRIIykpycjMzAz21HCMuPnmm43ExETj66+/Nvbs2WN9HD582Bpz0003Gc2bNzcWL15srFy50ujRo4fRo0cPa39JSYlxwgknGOecc46xdu1aY+HChUZKSooxfvz4YFwSjiF9+/Y1br/9dus59ypqgxUrVhgRERHGI488YmzevNmYNWuWERcXZ7z11lvWmMcee8xISkoyPvzwQ+Onn34yLrroIiMjI8M4cuSINebcc881unTpYixfvtxYunSp0bZtW+PK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JHn8iI6OtsZt3brVkGTExsYaf/75p7V9+fLlhiTjjjvusLbdf//9hut/I5999llDkrF//36v85gyZYohyXjrrbesbUVFRUaPHj2MevXqGbm5uYZhGMa8efMMScYTTzxhjSspKTH69OljSDJef/11a3u/fv2Mzp07GwUFBdY2h8Nh9OzZ02jbtu1RvzaSjFGjRnnd/+233xqSjFmzZrltX7hwYbntLVq0MCQZS5Yssbbt27fPiI6ONu68805r26233mrYbDZjzZo11rYDBw4YycnJhiRj69at1vZOnToZffv2LTcv88+0f//+hsPhsLbfcccdRnh4uJGdnW0YhmF88MEHhiTjxx9/POrXoqzjjjvOGDJkSLnt5p/9yJEjrW0lJSXGcccdZ9hsNuOxxx6ztmdlZRmxsbHG8OHDrW2+3gefffaZIcn4+OOP3c5/3nnnGa1atbKem/et630xfPhwQ5IxadIkt9d26dLF6Nq1q/X8f//7nyHJmDJlirXNbrcbZ599drljelJQUGDY7Xa3bVu3bjWio6Pdzj19+nRDkrF+/Xq3sR07djTOPvts6/lDDz1kxMfHG7/99pvbuHHjxhnh4eHGjh073K45ISHB2Ldvn9vYkpISo7Cw0G1bVlaWkZqaalx33XVVuvbK/j179NFHDUnG3r17y+0DAAAIVbRzAQAAOAa8+OKLWrRokdvHggULyo0bPHiwmjZtaj0/7bTT1L17d3366adej52UlCRJ+vDDD93aTrj69NNPlZaWpiuvvNLaFhkZqdtuu035+fn65ptvrHERERFWtbAkhYeH69Zbb3U73sGDB7V48WJdfvnlysvL019//aW//vpLBw4c0IABA7R582bt2rXr6F+YCsydO1eJiYn6xz/+YR3/r7/+UteuXVWvXr1yLTI6duyoPn36WM9TUlLUrl07/fHHH9a2hQsXqkePHlZFsCQlJydr2LBhlZ7fyJEj3drq9OnTR3a7Xdu3b5dU+ucyf/58FRcXV+rYBw4cUIMGDbzu/9e//mU9Dg8PV7du3WQYhq6//npre1JSUrnr9/U+OPvss9WoUSOrql6SsrKytGjRIl1xxRU+XcNNN93k9rxPnz7l/iwiIyN1ww03WNvCwsI0atQon44fHR2tsDDnj1N2u10HDhywWhmtXr3aGnfJJZcoIiLC7Vo2bNign3/+2e1a5s6dqz59+qhBgwZu91v//v1lt9u1ZMkSt/MPGTJEKSkpbtvCw8Otyn2Hw6GDBw+qpKRE3bp1c5uTr9delb9n5n1T9jdfAAAAQhntXAAAAI4Bp512mk8Li7Zt27bctuOPP15z5szx+porrrhCr7zyiv71r39p3Lhx6tevny655BJdeumlVsi4fft2tW3b1npu6tChg7Xf/NykSRPVq1fPbVy7du3cnm/ZskWGYWjChAmaMGGCx3nt27fP7Q2Bytq8ebNycnLUuHFjr8d31bx583JjGjRo4NY/ffv27erRo0e5cW3atKn0/MqezwwvzfP17dtXQ4YM0YMPPqhnn31WZ555pgYPHqx//vOf5drHeGIYhs/nTkxMVExMjBo1alRu+4EDB6znvt4HERERGjJkiGbPnq3CwkJFR0fr/fffV3FxsU8hekxMTLmA2dOfRZMmTRQXF+c2ztc/C4fDoeeee04vvfSStm7d6tZv3bVNUqNGjdSvXz/NmTNHDz30kCRnK5eIiAhdcskl1rjNmzfrp59+KjdvU9n7LSMjw+O4N954Q08//bR+/fVXtzdPXMf7eu1V+Xtm3jdl100AAAAIZYToAAAA8EtsbKyWLFmir776Sp988okWLlyod999V2effbY+//xzhYeHB/ycZsX72LFjNWDAAI9jqhJMlz1H48aNNWvWLI/7PVUBe1JRGO2Po53PZrPpvffe0w8//KCPP/5Yn332ma677jo9/fTT+uGHH8q9UeGqYcOG5RZPPdq5A339Q4cO1fTp07VgwQINHjxYc+bMUfv27XXSSScd9bXVcc+V9eijj2rChAm67rrr9NBDDyk5OVlhYWEaM2ZMud/IGDp0qK699lqtXbtWJ598subMmaN+/fq5vengcDj0j3/8Q3fffbfH8x1//PFuz2NjY8uNeeuttzRixAgNHjxYd911lxo3bqzw8HBNnjxZv//+e6WvsSp/z8z7puwbKgAAAKGMEB0AAACWzZs3l9v222+/qWXLlhW+LiwsTP369VO/fv30zDPP6NFHH9V9992nr776Sv3791eLFi30008/yeFwuFUh//rrr5KkFi1aWJ+//PJL5efnu4W8mzZtcjtfq1atJDlbgfTv379K13o0rVu31hdffKFevXp5DCyrokWLFtqyZUu57Z62BaqS9/TTT9fpp5+uRx55RLNnz9awYcP0zjvvuLVkKat9+/baunVrQM7vytf7QJLOOOMMNWnSRO+++6569+6txYsXW4usBmouX331lQ4fPuxWke3pz8KT9957T2eddZZeffVVt+3Z2dnlAuTBgwfrxhtvtFq6/Pbbbxo/frzbmNatWys/P9+v+/m9995Tq1at9P7777vdP2UXNfX12qvy92zr1q1q1KiR14p6AACAUERPdAAAAFjmzZvn1uN4xYoVWr58uQYOHOj1NQcPHiy3zez5XVhYKEk677zzlJmZ6dYXuqSkRC+88ILq1aunvn37WuNKSko0depUa5zdbtcLL7zgdvzGjRvrzDPP1PTp07Vnz55y59+/f78PV1uxyy+/XHa73WrB4aqkpETZ2dmVPuaAAQO0bNkyrV271tp28OBBj9Xu8fHxVTqHKSsrq1wVeNk/F2969OihDRs2HHVcZfl6H0jON2YuvfRSffzxx/rvf/+rkpISn/uh+2LAgAEqLi7Wyy+/bG1zOBx68cUXfXp9eHh4ua/v3LlzPfbiT0pK0oABAzRnzhy98847ioqK0uDBg93GXH755Vq2bJk+++yzcq/Pzs5WSUmJT3OS3Kv/ly9frmXLlrmN8/Xaq/L3bNWqVR5bFgEAAIQyKtEBAACOAQsWLLCqfV317NnTqjaVnK0ZevfurZtvvlmFhYWaMmWKGjZs6LXFhCRNmjRJS5Ys0fnnn68WLVpo3759eumll3Tcccepd+/ekpyLYE6fPl0jRozQqlWr1LJlS7333nv67rvvNGXKFNWvX1+SdMEFF6hXr14aN26ctm3bpo4dO+r9999XTk5OufO++OKL6t27tzp37qwbbrhBrVq10t69e7Vs2TL9+eefWrdu3VG/LitXrtTDDz9cbvuZZ56pvn376sYbb9TkyZO1du1anXPOOYqMjNTmzZs1d+5cPffcc7r00kuPeg5Xd999t9566y394x//0K233qr4+Hi98sorat68uQ4ePOhWPdy1a1dNnTpVDz/8sNq0aaPGjRvr7LPP9vlcb7zxhl566SVdfPHFat26tfLy8vTyyy8rISFB5513XoWvveiii/TQQw/pm2++0TnnnFOpa6yIr/eB6YorrtALL7yg+++/X507d7Z6pwfC4MGDddppp+nOO+/Uli1b1L59e3300UfWm0JH+02AQYMGadKkSbr22mvVs2dPrV+/XrNmzXL7+1T2Wq666iq99NJLGjBggLXwq+muu+7SRx99pEGDBmnEiBHq2rWrDh06pPXr1+u9997Ttm3bjtoiZdCgQXr//fd18cUX6/zzz9fWrVs1bdo0dezYUfn5+VW69sr8Pdu3b59++uknnxdnBQAACBWE6AAAAMeAiRMnetz++uuvu4V+11xzjcLCwjRlyhTt27dPp512mv7v//5PTZo08XrsCy+8UNu2bdNrr72mv/76S40aNVLfvn314IMPKjExUZKzf/PXX3+tcePG6Y033lBubq7atWun119/XSNGjLCOFRYWpo8++khjxozRW2+9JZvNpgsvvFBPP/20unTp4nbejh07auXKlXrwwQc1c+ZMHThwQI0bN1aXLl28Xm9Zy5cv1/Lly8ttf+ihh9S7d29NmzZNXbt21fTp03XvvfcqIiJCLVu21FVXXaVevXr5dA5XzZo101dffaXbbrtNjz76qFJSUjRq1CjFx8frtttuU0xMjDV24sSJ2r59u5544gnl5eWpb9++lQrR+/btqxUrVuidd97R3r17lZiYqNNOO02zZs3yuiilqWvXrjrxxBM1Z86cgIbovt4Hpp49e6pZs2bauXNnQKvQJWfV9ieffKLbb79db7zxhsLCwnTxxRfr/vvvV69evdz+LDy59957dejQIc2ePVvvvvuuTjnlFH3yyScaN26cx/EXXnihYmNjlZeX5/Fa4uLi9M033+jRRx/V3Llz9eabbyohIUHHH3+829+liowYMUKZmZmaPn26PvvsM3Xs2FFvvfWW5s6dq6+//rpK116Zv2fvv/++oqOjdfnllx91rgAAAKHEZlTXSkcAAAAIGdu2bVNGRoaefPJJjR07NtjTOeaMGTNG06dPV35+fo0siumL//73vxo1apR27NhRrmq6Lps3b54uvvhiLV26tEpvlIQyf6+9S5cuOvPMM/Xss89Ww+wAAACCh57oAAAAQA06cuSI2/MDBw7ov//9r3r37l1rAnRJGjZsmJo3b+5zj/BQVPbPwuy/n5CQoFNOOSVIs6oZgb72hQsXavPmzeUWTAUAAKgLaOcCAAAA1KAePXrozDPPVIcOHbR37169+uqrys3N1YQJE4I9NTdhYWHasGFDsKdRrW699VYdOXJEPXr0UGFhod5//319//33evTRRxUbGxvs6VWrQF/7ueee69Z3HQAAoC4hRAcAAABq0Hnn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AwAAwKt+/fpp9OjR8nXaeObMGRUuXDhKUcVOvCTRN23apAYNGmjp0qVq1apVrMOBD+np6crMzFSBAgViGsfhw4dVoUIFffTRR7r//vtjGgsAAEB2QTkXAAAABKxFixaqXbu2NmzYoBtuuEGFCxfWc889J0maO3euOnTooAoVKigxMVFVq1bV8OHDlZGR4dCGc010a23st956Sx999JGqVq2qxMREXXPNNVq3bp3Dvu5qoickJKhfv36aM2eOateurcTERF111VVauHChS/wrVqxQo0aNVLBgQVWtWlXjxo0Le5316dOnq2HDhipUqJBKlSql7t2766+//nLYJiUlRffdd58qVaqkxMRElS9fXrfeeqv27t2btc369evVtm1blSpVSoUKFVKVKlX8Sm7OmTNHBQoU0A033OCw3Po8f/vtN3Xv3l3FixdX6dKlNXjwYFksFh04cEC33nqrkpKSVK5cOY0cOdKl7cOHD+uBBx5Q2bJlVbBgQdWtW1cTJkzIWn/hwgWVLFlS9913n8u+J06cUMGCBTVw4EBJ7muiW0vm/PXXX+rUqZOKFi2q0qVLa+DAgS7voyNHjujee+9VUlKSLrroIvXs2VNbtmzxq8760aNHNXDgQF199dUqWrSokpKS1K5dO23ZsiVrm0OHDilfvnwaOnSoy/47d+5UQkKCPvjgg6xlx48fV//+/VW5cmUlJiaqWrVqev3115WZmZm1jf17/d133816r+/YsUPnz5/XkCFD1LBhQxUvXlxFihTR9ddfr2+//dbl+IE8919//VW33367SpYsqYIFC6pRo0aaN2+eS5tlypRRnTp1NHfuXK+vHQAAQG6SL9YBAAAAID4dOXJE7dq101133aXu3btnlXYZP368ihYtqieffFJFixbV8uXLNWTIEJ04cUJvvvmmz3YnT56skydP6uGHH1ZCQoLeeOMN3XbbbdqzZ4/y58/vdd8ffvhBs2bNUp8+fVSsWDG999576tKli/bv36+LL75YkumhffPNN6t8+fIaOnSoMjIyNGzYMJUuXTr0F+X/jR8/Xvfdd5+uueYajRgxQocOHdKoUaP0448/atOmTbroooskSV26dNH27dv12GOP6bLLLtPhw4e1ZMkS7d+/P+vxTTfdpNKlS+vZZ5/VRRddpL1792rWrFk+Y1i1apVq167t8TW78847VbNmTb32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GjVqlC677DI98cQTkkxP5latWumOO+5QrVq1lC9fPs2ePVuHDh3SXXfdJcnUxv7www/VuXNnVa1aVSdPntTHH3+spKQktW/f3muMt956q4YPH66VK1fqpptuCuxF8uKhhx7SuHHj1KtXL23YsEGXXXaZZsyYoR9//FHvvvuuihUr5rD9nXfeqffff18vvviirr766qza6eHQqVMnNW7cWAMGDNDu3btVo0YNzZs3T0ePHpXku6b3f/7zHw0bNkz33XefmjZtqq1bt2rSpElZvbed3Xnnnerevbs+/PBDtW3bNmviV6unnnpK8+bN03/+8x/16tVLDRs21OnTp7V161bNmDFDe/fu9Vki5T//+Y9mzZqlzp07q0OHDvrjjz80duxY1apVS6dOnQrquY8ePVrXXXedrr76avXu3VuXX365Dh06pNWrV+vPP//Uli1bsrY9fPiwfv75Z78nZwUAAMgNSKIDAAAgbC6++GJ9/fXXGjBggF544QWVKFFC3bt3V6tWrTzWY462hg0b6ptvvtHAgQM1ePBgVa5cWcOGDdMvv/ySVZLEl/Pnz2vw4MEuy6tWrao+ffqoV69eKly4sF577TU988wzKlKkiDp37qzXX389K/FauXJldevWTcuWLdMXX3yhfPnyqUaNGpo2bZq6dOkiyUwsunbtWk2ZMkWHDh1S8eLF1bhxY02aNMnjpJT2z7NOnTqaNm1aWJPohQoV0ooVK/Tss89qwoQJOnHihKpXr67PPvtMvXr1ctm+adOmqly5sg4cOBDWXuiS6bU9f/58Pf7445owYYLy5Mmjzp0768UXX1SzZs1UsGBBr/s/99xzOn36tCZPnqypU6eqQYMGmj9/vp599lm3299yyy0qVKiQTp486fa5FC5cWCtXrtSrr76q6dOn6/PPP1dSUpKuvPJKDR06VMWLF/f5nHr16qWUlBSNGzdOixYtUq1atTRx4kRNnz5dK1asCOq516pVS+vXr9fQoUM1fvx4HTlyRGXKlFH9+vU1ZMgQh+PPmjVLiYmJuuOOO3zGCgAAkFskWLJTtyAAAAAgRjp16qTt27dr165dsQ4lbL744gv17dtX+/fvd+k1nZPNmTNHnTt31g8//KBmzZrFOpyoCvW5169fXy1atNA777wTgegAAADiEzXRAQAAkOucPXvW4fGuXbu0YMECtWjRIjYBRcg9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lh8/bi4mROLiuLe5yHwl1p0dPWq7708S3bqNtTynv/OtXXedGZ3gj/XrPcf09dfu93GejN3TKIh4LDMUZSTRgVhJSPCeNOck07sGDUwtvmCuTkdTjRrm1n7Sk2j8bpcvNyfbyFkCGXLqz/vs2DH/27v6av+3DYdgTqp/+skMJe7Z07bM3zqmnkplufvC4O4k+sIF9zU4rdtaT17t510IhvOXwlq1zMXExx4LrV17kS63wv83AIgthuyb8wx/X4dY/t+aPVu66irbY+cOFYsWmdtoTArob4Jt6VIzuvC223xve+ed5rZfP9uyyZNNp4nZs80kkNWqmc5TnjjX53/wQVMaKFwjJk+cMPOK/fWX723dHdPT++fDDx0fd+vmvta8p+fhvHzePHNu/9VXtmWdOpnzY/tzY3u7d5vSIlaHDknXX28mo7Q/51ywwP2xd+yQtm83I129+ecf6eWXbY+7dzfJ7v/8x/t+gYhEKcJALsYkJJjRE95KyHiyenXg+0hShw7B7eeJpxECyEISHQAiaetWc+LlqTaZL6FM6ujuRKJbt5w/SiG3sZ6Ye/uC56kHeyBfCo8f93/bcPB0PPvhvunpviepnD3b87odOwIOy61//pGKFzcTHPnizwn+kSOOE61Fm30PJnveevYAAOJHJObrcPb3367LsstF1GPHzLm5tUNTsHEtW2YmKIykTz7xb7uNGyMbh+R/ktLaqWDu3NCPae1h/sUXge33ySdm/pu77vK+XUqK7+T4o4+aOtbXXef7uKEmcoOdlN7Xe9i548z582a+gyuucCxr8sUXZkTn9OlmJKo/x/ZHmTKOE85a6+evWeO43eLF/rXn7vlGulyhv885kE5Pf//t2LM8UM4jd0N9DQ4fDm3/XIAkOgITzMQHiI433jB10IYPj3UksJcvX+BleuxPCux7sNsL9gStenX3Jx32NZyt2rUzt9HugYzwc574yZenngps+7NnpXfftQ0l/vNP6eabTU+YSZO8l2DxxFN9UvvRJ40bS4UKeW/H22RgnnqKnDtnO74/9cs//9xzj/d33/W+rzulSplhzNZh0xkZpkTMrFn+f7nwxlsMn3/uuVautYZnqNz12AcA5CzualSnppqex/Pmed7Pn97hXbuGVnbg55+D39de69ZmJFggic9A+XvO/803kYsh3NavlwYM8F2L3n5CdG88JZDX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2CfUL7nEcd3OndLatVK/ftGNCQAAAAAA5Hgk0QEA8WfNGumzz8z9226TrrxSKlhQKlxYyp8/trEBAAAAAIAchSQ6ACD+lCsn9eolZWZKM2c6rrNYbPf79rXd37FDatUqKuEBAAAAAICcgyQ6ACB++aqZft11tvs1a0qffx7ZeAAAAAAAQI6TL9YBAADgl0AmGbW6806zX6NGwbcBAAAAAAByNZLoAICcKyHBJNIBILsoUEA6fz7WUQAAAAAIAOVcAADxoXBh2337uuehsE5OCgD+GD069DY6dfK9zUUXhX6cQHz9dXSPBwAAAMQZkugAgPhw+eXSU09Jr7zivSzLZZf5117DhlKTJmEJDUAOdckltvuvvy716eN7n19/Df24R46E72KhP9q3j96xEH4DBkgtWsQ6CgAAgBwtRyTRR48ercsuu0wFCxbUtddeq7Vr13rcdvz48UpISHD4KViwYBSjBQAE7Y03pOee877NV19JHTpIP/3kfbtvvpFq1JBWrbItu/320GMEkHO0a2e7//TT/u1TvbqUL8SKiXn+/xR92TKpeHHHdQMGhNa2O8wXEd8SEqR77411FAAAADla3CfRp06dqieffFIvvviiNm7cqLp166pt27Y6fPiwx32SkpJ08ODBrJ99+/ZFMWIAQETVqGFKE1x7reu6EiVs962JqeRkacUK6bXXpE8/lcqWjUqYAHKgBQvM7eDBnrcZONDxca1anrdt2VI6elRKTzcXBtPSXP9GjRrlvtd6QoJ04ID0zDPSvn3S/ffb1vXqJfXu7fWpSDIJ+717fW+H2ONCCAAACFW9erGOIFuL+yT622+/rd69e+u+++5TrVq1NHbsWBUuXFiffvqpx30SEhJUrly5rJ+yJEwAIHcoWFDas0f64w8zuZ9V8+Ym0VSsmPTXX1JmppSaGrs4AURHs2be1193nbn1N0HZqJH37deula65xrGH+/bt0syZtsfOI2Ly5JHy5jUXBu3/bkkmyf3f/7o/lsUiVapkLhBecoljsv6zz0x99969pWnTzLJZs1zbqFjRfduIvVatbPdz+qja//5XKlfOlHQDAACR85//xDqCbC2uk+jnz5/Xhg0b1Lp166xlefLkUevWrbV69WqP+506dUqXXnqpKleurFtvvVXbt2+PRrgAgOygShXvddPz5jUJsKQk9+vfeSciYQGIgL/+8r5+1iwzz8LPP7tff8kl5qLbsWO2ZXXrem7POcntzPp3xbnn+G232e6XL++9DXtvveX/ts4XDPLnlz76SOra1Tzu3FnascNxG08JesTezTdLb78tNW5sLqZEuif6jz9Kd98d2D6JiVLbtv5vv3y5NHy447KxY837/O+/TUm35GTP+1erFlh8AADAUTTn5IlDcZ1E//fff5WRkeHSk7xs2bJKSUlxu0/16tX16aefau7cuZo4caIyMzPVtGlT/fnnn263T0tL04kTJxx+AAC5xIwZpqfmBx/Ylj3yiP+1kQHEzj33SBUquF+3aZN04oRUpoyZZ+Hqqz23c9lljnXJN2825VEuukjq39/0JH/nHfNj3S6QRLhV587m1p/JS4PRpIm0cqW0f7/nbWrWtN0vX95cVKxcOTLxxLtnn/VvuwYNTLI73Fq2lJ54QlqzxrwXI61pU+nOO22Pa9aUNmxwv+2oUaZ3/Lx5gSX3b7xReuEFs1/BgtLUqdLDD5sLPtZ2vH2537XL/2MBAABXlIfzKq6T6MFITk5Wjx49VK9ePTVv3lyzZs1S6dKlNW7cOLfbjxgxQsWLF8/6qcwXCQDIPbp0MT01reUVGjY0X+wLF7Ztc8MNsYkNQPASE035JntXXOG6nacvEpdcIh05YhLntWqZZHr//rb1PXtKHTua++5KDLpLBM6cKZ08aeZ1iJQbbvCdFC9SxNzec4+5zZPHdw/73GjECP+2e/1101vc3sMPmx7XixYFftx//jEXcho0cFzetKnt/uefm9vLL3fcxlf5IqvffzflfpzddJN05ZUmmb5tm2sMVv/9r3TqlNne/jN0333+Hb9jR7P/HXe4rgu0h9zQoe6XkyQAAMCVpw4okBTnSfRSpUopb968OnTokMPyQ4cOqVy5cn61kT9/ftWvX1+7d+92u37QoEFKTU3N+jlw4EDIcQMA4kzZsia5tWaNecyXbyB8+vZ1v/yLLxwfd+/u+NjdSX7z5q7L2rf3L44VK6SXXpLuvde/7fN4OY3On9/0prVYpB49/GsvIUEqWtS/bf3hz8Sh7mzfbhKow4bZlvlKXNpfWMwNnC/AeNK0qWRXdlKSuTgxdqzpcX3TTYEfu1Qp9yWFrrxS2rpVOnTIvIctFlMP32r9emnJEs/trlkjdepkbi+/3IyIuOUWx20KFpR+/VWaMsX2/neuU25NlOfNa25fecXcDhjgekHpP/+Rxo83Nfp//91xnXV/Z+4S65706eN5kt8tW8yFAGdTp/rfPgAAOQ0dxLyK6yR6gQIF1LBhQy1btixrWWZmppYtW6Zkb/Xy7GRkZGjr1q0q72HYbWJiopKSkhx+AAC5UNGi7r/UUzcOCM26de6Xd+8uzZ9vkuVLlkgTJpiRIVYtWphe4Pa9a+2ThCVLmtvrr3dt+8orXZdVqCC9+KKtF68kpaf7/TQCYu3lHUyvc1+lO2rWlObOld57L/C2JenSS03ysVAh2zLrBY0337Qtq1bN9BjeuVM6fjy4Y8WrLVu8r2/RQurWTfruO/PY/uJIlSr+HcPd3B3OCXlntWubEkXuNGzo+DuVzFwA998vPfig6S0/e7Zjr3lryZqrrrItc76I/Oqr0g8/SKdPS6tXS86je+vXl86ds9XvHzLEti4pyYza6NXLtde8J48/bkvM+zJ6tIn3yy9d1119tXlezhfNvF0cAwAgp+O7rVdxf5bw5JNP6uOPP9aECRP0yy+/6NFHH9Xp06d13//3gujRo4cGDRqUtf2wYcO0ePFi7dmzRxs3blT37t21b98+Pfjgg7F6CgCAnOTjjx0f164dmziA7OTGG6WqVd2v27fP837t25vJQVu3Nskt+97VBQqYnqQ//CD9+6+UlmZ6gE+ebCYzfOkl921u2OC5l6u7bSOhe3eTcFy7NvB9e/Y0pabGjnW/vkgR04O4YMHQYrR3552mvMbAgbZl111nettfeaV53Zs0Cd/xIm3pUv+2s0+o7txpLiKkprpPhO/ZY7vfp495H1rfZ94mo/V0zO+/d1y+Zo301Vf+t+OJ/WSxV18tffKJ6/8tq+RkM7Gut89BvnzmQlbhwuY9kD+/6zaJibb7nsqr+CtvXjOPQaVK/u9z112Oj+0vxn3yieM6+4sEt9/u/TiB9IqXpP/9z4y8+esvMy+Du1JPAAAg24r7JPqdd96pt956S0OGDFG9evW0efNmLVy4MGuy0f379+vgwYNZ2x87dky9e/dWzZo11b59e504cUKrVq1SrVq1YvUUAADxpl07c1uwoGuvvDp1oh8PkJ2sWOG67MYbpZ9+cr+93YjCgFk/fxdfbKvb3a2btHChrSe682c0kJ6mzrWsQ4lRkkqUsC1r0sT/siD2ChQwkx4//LDj8vfeM8/5f/8LPlZvrLXSPZk1yyQV3f3+rfr0MSVDgiljEk7BlM258kpzEcHdqNT//c8xsV6/vud2nHt49expRg9062YSq+np5oKQffL2oovMezHQCyPOPc+DcdlljknwcLj7bnM7YEDwbTRqFNx+Tz/teDEuf373ZV0kafp07yMH3I1okRwnYJXM8f74Q3rgATNReYUKUr16pvTN5Mne4z1zxvt6AADCiZ7oXsV9El2S+vXrp3379iktLU1r1qzRtddem7VuxYoVGj9+fNbjd955J2vblJQUzZ8/X/W9negCAODsmmvMMPi//3Zc/uGHrkk3TkSQ27irS54nj6nlbO+KK6Qff/S/vIUzfxOhHkr2+SUc8x/kySMtWGAS355KbYTDY4+ZSScD6fUcCufSieXLm3rSzZubyTQladIk24UDyZTXmD3bcYJJ51r30WD/ez1xIvT2qlUztwcOSBs32h67k5np+Hj8eGnHDpNMrVfPxGa9IPTee2ZOjr/+Ci6udu2kW291HJXRrZu5rV49uDbDYeJE87p7mpjUHx9/7D0J37at/23ZX1hzvsjm7W/A/fe7LluwwNSMt193ww3uy/NI5nfuTaFCvi86heNiCQAA8ClHJNEBAIi6q692TA5J0qOPum7nacI9f8sJAPGkZk33y90lon77zUy8WLiwtGuX/8nUjz825SM8lWtxds89JsHsLRZPwlUfuV07U4Il0qJRz3nnTlOG4oEHPG/z9NMmSXr33baLKhdfbFufL5/tvv0Eslu3OrZjsbheiJw/33eMRYua5LO9pk3db+ttNIC/F0GtZVsqVfLeCz1Qjz0mpaQEP3Fr3rzSnDmm1r9VkyZmEs/Nm8MRYXASEoIbhWGvVClTZ93dnAeSmbTU3o03mttevVy3tZ9nwPnvg7ve/1deaWrAV6liYhg8WPrlF+nIEdtItQ8+MHXe69e3zYHgTs2a0sqVtgla7X9X1hr4LVvaln34oeP+99xjyln5y1P5rJo1pfPn/W/HHefRMQAA5DAk0QEACIWn4dxWzz1neifaJ4okqVUr26RzQE4wdKj07bfu1116qfd9q1Vz/Yx48uCDpg66fVLWm7x5A59ks3dvk3SLpzrf0XLllaYnua+68tYk6f/+Z94b9hPIduxoesw/9JB5fOCAqfntzxwS7dtLN9/sfl2tWqbW/IkTjhdZzp93/F2GY4SBZOJv2dK1V7432WF00uWXh7dmfixNnCh17SqtWuW43Lnn99Kl0tGj7i/0lS8vffaZKd/i/N748EPznrevG5+QYLuwMWCANGyYmSTYWkJKMr3Df//djEzw9X674QbpjTdMYv6ll8zn4ZVXbKVennzS1G7fs8dxZE3XrmZ0RyAXWS65xPM6d/XsA2H9PAMA4ld2OE/JxhIsFl6hQJw4cULFixdXamqqktzVRAQA5C7HjknPPivde6+ZaE+yfWH+8kvHCc3sv0hb//2GK5kD9y67TOrf3/wgeF9/Le3eLb3wgplg8uuvXXt62p9S3n672f6VV0wt9KFDTS9pd58Be77Wh8La9r//+p+AR/RVqCAdPGjqj7/5plnm/L7Yv9/0KHa+aGP/nhk3TnrkEdvy5cvNxctChUzPX2vpLYtFysiQihc3SUx7TZua5GypUqZUTiisz+GZZ6TXXgutLXi2fLmZCHXgwOD+v373nW30hPPfoOrVzQia55+XXn459FiDMXu2dNtt5r59fIcPm4R9jx629+rateaigfWCVokS5kJC585mhIK9GjVMb/pQzkksFs5pACDebd4cvdKA2Yi/uV56ogMAEIoSJUyyxppAt2c/MZxkK1fhXEs9XKJRyiHcQq2HbN870Nno0WYyt8ceMxMaRoq3sgTPPRe54zobOjQy7aalSR06SI8/Lp08aRKNHTp432fGDDNJYocO0vDhtvfmkCHe95s1y9xGYnLMX381SSYS6Nnb9u3S99+bnrmeXHKJSZZ641wnumVLc0HnwAHXRF/evO7/hk+fbnoar17tX+yIvZYtTWmUYJO5118v/fe/0pgxrut+/NH8bfP1dyySPF1cLFPGjNCwf97XXOM4d4R1gtjZs10vggIAIPkeaZjLxeG3bQAA4tQXX5gvwJ4mOvQ16eD995ta0M612K3+/DO0+KKtUCHzmniacG33btuJnH0NZXsPPui5fWviPE8ek1B3Vws3HFJSPK975RWpcuXwHs/TZHzeJjP0pkYNk0AcPdp1Xb16tkkOrfwtHeAuiTV0qBm5MXKk+306dzalN7zV2w5W9erhrVeNyChRwrwf/UmCtmljbi+91Py9sHfnnVKLFo41pq+91lxEcVfK5MMPzWfB2qZkesW/9Vbwny171rrbJC+zt4QEadQo2ygGe6VKmbkNnP8mRlO4Ruj4+ny1aOF5Xf36UqdOjsu+/NL9tlOnBhKVMW5c4PsAAMLjqqtiHUG2RhIdAIDs4MorXRPCCxeaxPiDD5qh1598YmpBe/qy6ik5706wE9WFyj7RZU0GbNzout3AgVLVqqZO8k03meftyYwZrsumTQstzkD4ei0rVAjPcXr3Nj0gPfXA9XShwZdffjE9f9311g+1Rq47I0aYGr+eROKYyJlmzpTmzjWjDKpWdVyXmGjKvbibgPaqq8zf1RdesC27/HLzWVi4UBo0yJQsCqe9e80QaXc93gF/+Uqi+1vr3jmJ/tFH5vbVV838AV9/bUukd+tm227UKGnJEtOb3T7RYi1d5zy56B13uD9+UpL5/LpTo4b7kQDBmjfPNkkrAMQrb3NahMuWLZTl8oEkOgAA4dali+mp5c+khNZSIEOGSE8/bb60fvCBmUCsbVupYkVTsuTWW237WHs02rMm0K+/3nXdhAnmS68959q/kfLdd6Z8zcSJJonknOiSTM/TXbukhg1ty6yJgoYNpUWLbPWL3XHXM7tr18Bjde55YR9PIKxJu/Hjze2995rbqlXNugcflIoUsW3vb6mZmjVNT+7ixR2XP/20Scw59wyMNE+9yYFoKVZMuuWWwCfJTEgwf1eHD3ddlyePSST6KlkUqOLFc2WNUYSZr4uls2ZJVao4Xki2lk17/nnbMuv/i5Ilzegf67nDoEGmfFGRItJXX0mLFzteiHrgAVtJLHeJlg8+kN5+23N8r79u/r+nppra7iNGOK7v18/E4pyMd1aqlPf19jp29DyCL9SScgAQLR9+6Pi4Xr3wtv/111KdOuFtMwciiQ4AQLjNmGEmNvOnZ/Du3abn4913myTLt99KffuaL8GeNG5semrb+/13c/vdd67b9+jheFI0caLvuDx57z3f29iXzKhTxyT477nHlFzwpFo1af16z+sTEqT0dOnMGdMDznmdvSuvdN+G/WvQqJFJck+ebBIFP/5o7tuzTt5m9ddf5vfqy4svmiRBz57m8aOPmt/rxo1m3ccfO/5+e/f23JanUQfWes+XX26SEt9/b0oMLFvmuJ31BHv+fN9xB+rJJ6X77gt/u4AzazkVekcht2vf3kx4+/jj7tc3bGguwttfSB4/3ozW6NvXtqxnT+mbb8zoC0+jf4oWNeWNqlY1F5kbNXIceeXu85gvn/cL0M7nAc8+63hx6f33TbsJCdKRI7blzsmip5/2fAx73i7Av/WW6awQLp9/Hr62AITXM8/EOgIj2NGpN9zgOvfVjTf6t691knZv1q0Lf+eBHIokOgAAkeBvsqdMGfMlLpDkUEKC6wmR8yR67o7z9dcmmXvPPa7r/SmhkZlpJuns39/7dhs3SqdOSf/+69prWrL1qnfXzs03m1t3tc7z5jXPs1Mn06vd2pve/rWbNs0kC9zp18/0elu/3pws9uxphqn/5z8mKVGnjpk406p6dengQenQIZNAr1DB9Hp3V35myRLTO8/d8PQ8ecwIA/uZ3u1fl3r1pH373MdsHSIvOQ7jX7PG1Hz+5hvH7Vu2NLE2aGCS9evXm+fUvr3jdr//bl43X739fL0vX3vNPLdJk7xvB4Ri/nwzwsfbhTYgNyhQwFz0ffdd//fJm9f8P7P/e54nj/l/62suFuv+P/8srV3r2Ian/w/Oo7qs//MHDHA/SqxsWfftlCxpziWmTpVWrgysZJ31Ivizz5pb+3Iur79uSuUNGGB6qdtPvgogMAsXOp7fZhdNmzo+dvfdJxZWrjQTnAdq8mTXCT/dfcdy1ru3uYBar565+LpwofkutGGDY3mYRo0Cjym3siAgqampFkmW1NTUWIcCAMjt+ve3WCSL5fHHHZdPnGiWlytnsSxY4Hn/J56wWK64wmJJTbVYVq0y+3j6advWcd9///W8rS9nz1os331nsVy44LouI8NiOX7cdxv29u2zHfvEicD2dcfa1owZnrdZs8ZiqVbNYpk717YsM9P/Y/z2m8VSv77FMn2663GdX8s+fSyWypUDf12cObd7/rzrNuvWWSwrVpjft2SxfPFFaMcEAORM339v/k8MHeq67sABi+XIEXM/M9P9/3urnTvN+crbb3s/3smTFkvPnhbLV19ZLG+84f2cJSPDxGCVnm6xfPaZ+Z+Wnu7Y7vnzFsuhQxbLk086tlGzpsVyzTUWy8KFFsu5cxbLHXeY/9vujrd3rzln8BaTZLH07et7G35y5s+DD8Y+hmB+2rf3vO7dd22fo1CO0bGj+Qw6Ly9RwmLZsMFiOXPGYrn2Ws/7r11rsbz5pu3xY4+Zz7n18d13+x9jnjye1z3/vMWSmBj886xf3/Z6/f57YPtaLObvqH18L73kfZ/mzS2Wf/7x/De1WjXH9nM5f3O9CRaLxRLrRH48OXHihIoXL67U1FQlZccrbgCA3CMjQ9q6Vbr6atfeCWfO+Dd5qMViepOtW+d+2PMLL5jhffXqua877K4nWrRPLQ4csPWmSE0NvUeM9TmtXu1fXftw8fZaWn9P4Wrf1+/owgXTW71GjdCOCQDIuc6fN73jQxXo/7g33rCVZ1izRmrXTjp61LG9YJw7Z0a6/fWXqc3u7rk5xzlypClvlp5uetpfe60pFWNfjsYqM9O1JMPkyaakn1XFiub4Vq++anrhB1I+rUOHyJRxQ/AeeED65JNYR+G/Pn2kd94xn4GWLc1IVmf2n7Mbb5RWrPDe5s8/u6+5feyYme/J+bPVr58p8SSZ0aeeRo1YLNLo0WZ7+7is7a1aJSUnS0uXmhJV3jz/vBlhad0uIcF8t7DOYdW8ufvSmf5o0cLxdZw61XHEqTf23weefNKUubvtNu/lYXz9Hdy40YzuHTEi+/TUjyF/c72UcwEAIF7lzWuS284JdMm/BLpkO8Fs2FBq1Uq66SZTNmHpUmnTJjORZZMmnifus5ZX6NIl4PDDxv4LaTgS+AsWmNrv0UygS9Ly5bb7115ryrFYhaMW9Jgx5vazz3xvmz8/CXQAgHfhSKBLgf+Ps/9f37ixKR8XDgULmv99rVp5fm6ffWYS2q+9ZuoUW8ui5ctn5mx59lnXCQC9SUx0fDxokO3+LbeYx716mfJynTubcneXX+64T7Nm3o9hTS4idjIzYx1BYKwJdMnx8/nnn+6393XRxttk9Bdd5H65/aTGRYqYEk+hcL6A9b//SeXKOS7Ll8+Uf9q82ZRMzMy0JdAl6eWXXdstU8axZJS/brjBdv+OO2z37Y/nLCHB/G769jUX17Zvd92mXj0z35MvDRpI+/eTQA8QSXQAAGBOLJculRYtMhOjtmplTsKcTzidNWxoTjBnzDC9qb7/PirhOqhQwdQ+dK47Hqx27Uzt92i78UbTcy0zU/rpJ/d14UPxyCOmJ0+vXuFtFwCAWLJP8l1zTWSP1auX9Omnpif8ypUmuefMPiHmTZs2pmerPfsa8faTrpYrJ82aZS6w20+Eft11jhfhJfN6tGpl7g8ebHrzDh9uW3/qlOeJ4v3tGZubeOpIEghPnTz27w+9bXecJ/GVzIUff0yY4HgRyXphp1s3M1Li11/NRR17hQtL06d7bvPJJ93P3/Tii573ufhix8cHDkh//y0NG+a6rT+dh5KTbfeHDzejA667zv22deva5mmyd/31Zq6hK6+0LStTxsyNZFWjhhlBYvXmm1KJEtIHHzi2VaqU7b793EJTp0o7dvh+PpJUq5aUkmL2kUxv/02bzHxPiAiS6AAAIDTWL6/dunk+GY308X/4wXyJDEeP7VgqWTKyz8HfEQoAAGRX9eu7Ljt82JRtWL06+vG4066d720WL3btdWqx2EYC2vdKt2efjFy61H2v+aVLTdJx6FDz2H4SwiJFTGcBdyPOxo1zf8xAJnZu00aaO9eUFgznqD7rhYFo82fSxdOnTZkhT9wl0Zs0kSpXDj4ub9ydSz79tO/9MjKkHj0cl7VubT5f1kRv9equPbgl6fbb3bdpvYBTrZqZ3NI+Ce7pvHTbNtdlhQub3teDB0tbtjiuu/tuU3bGXU9xq0KFTAmqU6dMuUrJ9Oq25885eNGi0syZntdXrOjYzsCBZrSM86TL+fObhPypU6YH/Pbt0pQpJnlfs6bvOKzKljUX7iwWU+ITEUUSHQAAxL+EhPhPoAMAAN/atDHJpq1bbctKlzY9Td2VuIuFOXNsJSEkqXdvx/U//2xuCxRwTQjWqycNGeK+564kXXaZ7b5zORjJlsytVMn7udG2ba7JwKQk6Y8/pFGjHJc3bOi5HWeLF5tSNIUKmWR+uCxd6jkp725EgDfVqrkuu+UW99vedJP3tvr1Mwnep56yLatY0XEb+3IuP/wg9exp673811+mnvisWY6vc9eu7pPJ9m1v3Og+JndJ2IQEUy7QG08jUEuX9u88+847bffT06V9+0ydcat33zVJ8JEjTa/uPn1c22jRwjXh7CvOxERp2TLHY7mTP7/je6VSJenRR73v407t2lLVqua+c0lLd6+Tp9e1aFFbPLVqmdeP7zPZGkl0AAAAAAAQHxISTLKpdu1YR+JZgQK2khBHjpge3gkJ5v7Bg449Rt1NtuhNUpLpZX74sG3ZxImmPMT33/vfizVvXjM5obPLLjM1l+2T9cEqUsQkTWvVMiMF7LVvb7vvq9Tcs//X3r1HVVWnfxz/HMDDJeRSKHhBxbwrUqEiVuNqYoJ0Ubqany7HRmyaaSwsS2vSLlK6VmBlqzK7zPhLm1ZF2aRTgo5KXkYyb2lCGt00+hVgTQqYDirn+/tjLzYc4XDxhgfer7XOWmfv/Zy9n3Pw4bie/eX7nd348YYWvmzMl1/W3+ep0VmziG1Dbrih4alx+vd33+7Uqfb51VdLy5bVLpTZtas1rc/48daI/9WrrRsR77xjNZPLyqx1bXr3tv464eDBhnMeOdI6x5Il1iKmaWlWY3nWLGuaQEnKz2940Vup/tRCZyI727rG8ePWv68ePRpuCs+caS3Q6Wmx0Ka0pNHc0Kj5uur+bBq6KeXJ1q3WFDYPPeS+f/Bg6wZIzXO0KX6tnQAAAAAAAECbVHdBxKYWR2zuAundu7tvT55sTWnhqbnY0sXCfX2tEemrVtU2OnfskPbvd5/u43//15pbWpIWL254ypV582qn8Ni2zWrcP/WUNQ1gVZXVuCwosBrLnjS0OGrdaw8fbjW0165t2fusa8oU6y8ITud0WgvI1kx1s2eP9dcCknWjoaHPPDzcffumm6zR6CNGNJ3H6XNxd+5srWszbVr92LAwa478BQusGyk1o6Ol2s/z17+u3efrW//f4JNPSsnJ9Rv/Z2rUqHNznsbUbXYb0/DPYP16axqVmJjmnzc9vfmxnTq5T2GzbZt14yMjw5qm6ccf3adRQptAEx0AAAAAAMCbNTY6NynJGqHc2Oj9tLT6++ouUDhsmPWoaaIvWODekG1oao7TjRgh/d//1W7XNENjY63R9RERDU9jU3c6lBpTpljvqWaRx6ZuUHiyapU1N3lsrDUK/IMPrHmsExNrm/TXXFPbRI+Lsz6HnTvrj6B/+21rAcnnnrMWaa0Zkexw1J9/+2y8+aZ0+LC1gGjPntYNiTNVdxoab3H55dJtt1k3Kzz9u2/uHPp156U/fY2Clhgxwv0mSd2FQ8/GoEHn5jw4J2iiAwAAAAAAtLbmjkRvKYejtiHsSWJi886Vmmo1mm+91Rqdfq7UjK7/6CNrWpqYGGvBRKnhJrqfn/sUMQsXWg36u+6yRuVLVpN96VJripHXXrOaz3Pnup8nIKB2Sp2UlNqR4CUltQ3ampHnNT76SCotrb8w6IQJtTnXHaXcuXOTb79FzqZpLlnT42RlNTwVTWtrzpQqDof06qvn5npTp0qffy5dd925Od+5du21rZ0B6nAYc75+S7dNFRUVCg0NVXl5uUJCQlo7HQAAAAAA4M1qmrXZ2e6LM14I//M/1tQX33xTfxqShhhjTcMSEGAtkBoXV7v/XKq5hiT98IPUpYs1oj4vr+nrff+9VFRkTWVijFRRUX9qjZrPfPPm5jUqN22yFvVsaFFST3JyrGZ7UzcwLjRjrJsEXbu2dia1liyxpvnJzXWflqa9ev1160bB8uXnblQ7PGpur5cmegvRRAcAAAAAAOdMTUN3z57apvSFYoxUXW2N7D4Tb7xhjSI/FwtTni4zUzp2TJo/39r++mtr8cy//MUaCX82MjKsEchvveV5UVEA7QJN9POEJjoAAAAAADhnPv1UKi62pkoBAFxQze31Mic6AAAAAABAa4mLu/Aj0AEALcLfrAAAAAAAAAAA4EGbaKIvXrxYvXr1UkBAgBISErR9+/ZG45cvX64BAwYoICBAsbGxys3NvUCZAgAAAAAAAAC8idc30d9++23NnDlTGRkZ+uSTTxQXF6fk5GQdOnSowfiPPvpIkyZN0u23367du3dr3LhxGjdunAoLCy9w5gAAAAAAAACAi53XLyyakJCg4cOH64UXXpAkuVwuRUdH6+6779bs2bPrxU+cOFG//PKLVq1aZe8bOXKkrrjiCr388stNXo+FRQEAAAAAAADA+zW31+vVI9FPnDihXbt2KSkpyd7n4+OjpKQkbd26tcHXbN261S1ekpKTkz3GAwAAAAAAAADaL7/WTuBs/PTTT6qurlZkZKTb/sjISH3++ecNvqa0tLTB+NLS0gbjq6qqVFVVZW9XVFScZdYAAAAAAAAAAG/h1SPRL4TMzEyFhobaj+jo6NZOCQAAAAAAAABwgXh1Ez0iIkK+vr4qKytz219WVqaoqKgGXxMVFdWi+Dlz5qi8vNx+fPfdd+cmeQAAAAAAAADARc+rm+hOp1Px8fHKy8uz97lcLuXl5SkxMbHB1yQmJrrFS9K6des8xvv7+yskJMTtAQAAAAAAAABoH7x6TnRJmjlzptLS0jRs2DCNGDFCzz77rH755RfddtttkqQpU6aoW7duyszMlCTNmDFDo0eP1sKFCzV27FhlZ2dr586d+utf/9qabwMAAAAAAAAAcBHy+ib6xIkT9eOPP2ru3LkqLS3VFVdcoTVr1tiLhxYXF8vHp3bA/ahRo/Tmm2/qkUce0UMPPaS+fftq5cqVGjJkSGu9BQAAAAAAAADARcphjDGtnYQ3KS8vV1hYmL777jumdgEAAAAAAAAAL1VRUaHo6GgdOXJEoaGhHuO8fiT6hVZZWSlJio6ObuVMAAAAAAAAAABnq7KystEmOiPRW8jlcumHH35Qx44d5XA4WjudC67m7gwj8QHvRi0DbQO1DLQN1DLQNlDLQNtALbcvxhhVVlaqa9eublOCn46R6C3k4+Oj7t27t3YarS4kJIRfJEAbQC0DbQO1DLQN1DLQNlDLQNtALbcfjY1Ar+G5vQ4AAAAAAAAAQDtHEx0AAAAAAAAAAA9ooqNF/P39lZGRIX9//9ZOBcBZoJaBtoFaBtoGahloG6hloG2gltEQFhYFAAAAAAAAAMADRqIDAAAAAAAAAOABTXQAAAAAAAAAADygiQ4AAAAAAAAAgAc00dEiixcvVq9evRQQEKCEhARt3769tVMC2qTNmzcrNTVVXbt2lcPh0MqVK92OG2M0d+5cdenSRYGBgUpKStKXX37pFvPzzz9r8uTJCgkJUVhYmG6//XYdPXrULWbv3r269tprFRAQoOjoaD355JP1clm+fLkGDBiggIAAxcbGKjc3t8W5AO1VZmamhg8fro4dO6pz584aN26cioqK3GL++9//Kj09XZdddpmCg4N1yy23qKyszC2muLhYY8eOVVBQkDp37qwHHnhAp06dcovZuHGjrrrqKvn7+6tPnz5atmxZvXya+h5vTi5Ae/TSSy9p6NChCgkJUUhIiBITE7V69Wr7OHUMeJ+srCw5HA7de++99j5qGfAOjz32mBwOh9tjwIAB9nFqGeeFAZopOzvbOJ1O8+qrr5rPPvvM/OlPfzJhYWGmrKystVMD2pzc3Fzz8MMPm/fee89IMitWrHA7npWVZUJDQ83KlSvNp59+am666SYTExNjjh8/bsekpKSYuLg48/HHH5t///vfpk+fPmbSpEn28fLychMZGWkmT55sCgsLzVtvvWUCAwPNK6+8Ysfk5+cbX19f8+STT5p9+/aZRx55xHTo0MEUFBS0KBegvUpOTjZLly41hYWFZs+ePWbMmDGmR48e5ujRo3bMtGnTTHR0tMnLyzM7d+40I0eONKNGjbKPnzp1ygwZMsQkJSWZ3bt3m9zcXBMREWHmzJljx3zzzTcmKCjIzJw50+zbt88sWrTI+Pr6mjVr1tgxzfkebyoXoL16//33TU5Ojvniiy9MUVGReeihh0yHDh1MYWGhMYY6BrzN9u3bTa9evczQoUPNjBkz7P3UMuAdMjIyzODBg01JSYn9+PHHH+3j1DLOB5roaLYRI0aY9PR0e7u6utp07drVZGZmtmJWQNt3ehPd5XKZqKgo89RTT9n7jhw5Yvz9/c1bb71ljDFm3759RpLZsWOHHbN69WrjcDjM999/b4wx5sUXXzTh4eGmqqrKjnnwwQdN//797e0JEyaYsWPHuuWTkJBg/vznPzc7FwC1Dh06ZCSZTZs2GWOseunQoYNZvny5HbN//34jyWzdutUYY91U8/HxMaWlpXbMSy+9ZEJCQuz6/ctf/mIGDx7sdq2JEyea5ORke7up7/Hm5AKgVnh4uFmyZAl1DHiZyspK07dvX7Nu3TozevRou4lOLQPeIyMjw8TFxTV4jFrG+cJ0LmiWEydOaNeuXUpKSrL3+fj4KCkpSVu3bm3FzID258CBAyotLXWrx9DQUCUkJNj1uHXrVoWFhWnYsGF2TFJSknx8fLRt2zY75le/+pWcTqcdk5ycrKKiIh0+fNiOqXudmpia6zQnFwC1ysvLJUmXXnqpJGnXrl06efKkWw0NGDBAPXr0cKvn2NhYRUZG2jHJycmqqKjQZ599Zsc0VqvN+R5vTi4ApOrqamVnZ+uXX35RYmIidQx4mfT0dI0dO7ZevVHLgHf58ssv1bVrV/Xu3VuTJ09WcXGxJGoZ5w9NdDTLTz/9pOrqardfMJIUGRmp0tLSVsoKaJ9qaq6xeiwtLVXnzp3djvv5+enSSy91i2noHHWv4Smm7vGmcgFgcblcuvfee3X11VdryJAhkqwacjqdCgsLc4s9vc7OtFYrKip0/PjxZn2PNycXoD0rKChQcHCw/P39NW3aNK1YsUKDBg2ijgEvkp2drU8++USZmZn1jlHLgPdISEjQsmXLtGbNGr300ks6cOCArr32WlVWVlLLOG/8WjsBAACA9iA9PV2FhYXasmVLa6cC4Az0799fe/bsUXl5ud59912lpaVp06ZNrZ0WgGb67rvvNGPGDK1bt04BAQGtnQ6As3DjjTfaz4cOHaqEhAT17NlT77zzjgIDA1sxM7RljERHs0RERMjX17feCsJlZWWKiopqpayA9qmm5hqrx6ioKB06dMjt+KlTp/Tzzz+7xTR0jrrX8BRT93hTuQCQpk+frlWrVmnDhg3q3r27vT8qKkonTpzQkSNH3OJPr7MzrdWQkBAFBgY263u8ObkA7ZnT6VSfPn0UHx+vzMxMxcXF6bnnnqOOAS+xa9cuHTp0SFdddZX8/Pzk5+enTZs26fnnn5efn58iIyOpZcBLhYWFqV+/fvrqq6/4XsZ5QxMdzeJ0OhUfH6+8vDx7n8vlUl5enhITE1sxM6D9iYmJUVRUlFs9VlRUaNu2bXY9JiYm6siRI9q1a5cd8+GHH8rlcikhIcGO2bx5s06ePGnHrFu3Tv3791d4eLgdU/c6NTE112lOLkB7ZozR9OnTtWLFCn344YeKiYlxOx4fH68OHTq41VBRUZGKi4vd6rmgoMDtxti6desUEhKiQYMG2TGN1WpzvsebkwuAWi6XS1VVVdQx4CWuv/56FRQUaM+ePfZj2LBhmjx5sv2cWga809GjR/X111+rS5cufC/j/GntlU3hPbKzs42/v79ZtmyZ2bdvn7njjjtMWFiY22rGAM6NyspKs3v3brN7924jyTzzzDNm9+7d5ttvvzXGGJOVlWXCwsLMP//5T7N3715z8803m5iYGHP8+HH7HCkpKebKK68027ZtM1u2bDF9+/Y1kyZNso8fOXLEREZGmt///vemsLDQZGdnm6CgIPPKK6/YMfn5+cbPz888/fTTZv/+/SYjI8N06NDBFBQU2DHNyQVor+68804TGhpqNm7caEpKSuzHsWPH7Jhp06aZHj16mA8//NDs3LnTJCYmmsTERPv4qVOnzJAhQ8wNN9xg9uzZY9asWWM6depk5syZY8d88803JigoyDzwwANm//79ZvHixcbX19esWbPGjmnO93hTuQDt1ezZs82mTZvMgQMHzN69e83s2bONw+Ewa9euNcZQx4C3Gj16tJkxY4a9TS0D3mHWrFlm48aN5sCBAyY/P98kJSWZiIgIc+jQIWMMtYzzgyY6WmTRokWmR48exul0mhEjRpiPP/64tVMC2qQNGzYYSfUeaWlpxhhjXC6XefTRR01kZKTx9/c3119/vSkqKnI7x3/+8x8zadIkExwcbEJCQsxtt91mKisr3WI+/fRTc8011xh/f3/TrVs3k5WVVS+Xd955x/Tr1884nU4zePBgk5OT43a8ObkA7VVDdSzJLF261I45fvy4ueuuu0x4eLgJCgoy48ePNyUlJW7nOXjwoLnxxhtNYGCgiYiIMLNmzTInT550i9mwYYO54oorjNPpNL1793a7Ro2mvsebkwvQHv3hD38wPXv2NE6n03Tq1Mlcf/31dgPdGOoY8FanN9GpZcA7TJw40XTp0sU4nU7TrVs3M3HiRPPVV1/Zx6llnA8OY4xpnTHwAAAAAAAAAABc3JgTHQAAAAAAAAAAD2iiAwAAAAAAAADgAU10AAAAAAAAAAA8oIkOAAAAAAAAAIAHNNEBAAAAAAAAAPCAJjoAAAAAAAAAAB7QRAcAAAAAAAAAwAOa6AAAAAAAAAAAeEATHQAAAPBivXr10rPPPtvs+I0bN8rhcOjIkSPnLScAAACgLaGJDgAAAFwADoej0cdjjz12RufdsWOH7rjjjmbHjxo1SiUlJQoNDT2j650LNPIBAADgTfxaOwEAAACgPSgpKbGfv/3225o7d66KiorsfcHBwfZzY4yqq6vl59f0f9c7derUojycTqeioqJa9BoAAACgPWMkOgAAAHABREVF2Y/Q0FA5HA57+/PPP1fHjh21evVqxcfHy9/fX1u2bNHXX3+tm2++WZGRkQoODtbw4cO1fv16t/OePp2Lw+HQkiVLNH78eAUFBalv3756//337eOnjwJftmyZwsLC9K9//UsDBw5UcHCwUlJS3Jr+p06d0j333KOwsDBddtllevDBB5WWlqZx48Z5fL/ffvutUlNTFR4erksuuUSDBw9Wbm6uDh48qOuuu06SFB4eLofDoalTp0qSXC6XMjMzFRMTo8DAQMXFxendd9+tl3tOTo6GDh2qgIAAjRw5UoWFhWf4UwEAAACaRhMdAAAAuEjMnj1bWVlZ2r9/v4YOHaqjR49qzJgxysvL0+7du5WSkqLU1FQVFxc3ep7HH39cEyZM0N69ezVmzBhNnjxZP//8s8f4Y8eO6emnn9brr7+uzZs3q7i4WPfff799fMGCBXrjjTe0dOlS5efnq6KiQitXrmw0h/T0dFVVVWnz5s0qKCjQggULFBwcrOjoaP3jH/+QJBUVFamkpETPPfecJCkzM1N///vf9fLLL+uzzz7Tfffdp1tvvVWbNm1yO/cDDzyghQsXaseOHerUqZNSU1N18uTJRvMBAAAAzhTTuQAAAAAXiXnz5uk3v/mNvX3ppZcqLi7O3p4/f75WrFih999/X9OnT/d4nqlTp2rSpEmSpCeeeELPP/+8tm/frpSUlAbjT548qZdfflmXX365JGn69OmaN2+efXzRokWaM2eOxo8fL0l64YUXlJub2+h7KS4u1i233KLY2FhJUu/evd3elyR17txZYWFhkqSqqio98cQTWr9+vRITE+3XbNmyRa+88opGjx5tvz4jI8P+nF577TV1795dK1as0IQJExrNCQAAADgTNNEBAACAi8SwYcPcto8eParHHntMOTk5Kikp0alTp3T8+PEmR6IPHTrUfn7JJZcoJCREhw4d8hgfFBRkN9AlqUuXLnZ8eXm5ysrKNGLECPu4r6+v4uPj5XK5PJ7znnvu0Z133qm1a9cqKSlJt9xyi1tep/vqq6907Ngxt5sIknTixAldeeWVbvtqmuyS1ZDv37+/9u/f7/HcAAAAwNmgiQ4AAABcJC655BK37fvvv1/r1q3T008/rT59+igwMFC//e1vdeLEiUbP06FDB7dth8PRaMO7oXhjTAuzd/fHP/5RycnJysnJ0dq1a5WZmamFCxfq7rvvbjD+6NGjkqScnBx169bN7Zi/v/9Z5QIAAACcDeZEBwAAAC5S+fn5mjp1qsaPH6/Y2FhFRUXp4MGDFzSH0NBQRUZGaseOHfa+6upqffLJJ02+Njo6WtOmTdN7772nWbNm6W9/+5skyel02uepMWjQIPn7+6u4uFh9+vRxe0RHR7ud9+OPP7afHz58WF988YUGDhx4Vu8TAAAA8ISR6AAAAMBFqm/fvnrvvfeUmpoqh8OhRx99tNER5efL3XffrczMTPXp00cDBgzQokWLdPjwYTkcDo+vuffee3XjjTeqX79+Onz4sDZs2GA3unv27CmHw6FVq1ZpzJgxCgwMVMeOHXX//ffrvvvuk8vl0jXXXKPy8nLl5+crJCREaWlp9rnnzZunyy67TJGRkXr44YcVERGhcePGne+PAQAAAO0UI9EBAACAi9Qzzzyj8PBwjRo1SqmpqUpOTtZVV111wfN48MEHNWnSJE2ZMkWJiYkKDg5WcnKyAgICPL6murpa6enpGjhwoFJSUtSvXz+9+OKLkqRu3brp8ccf1+zZsxUZGWkvkjp//nw9+uijyszMtF+Xk5OjmJgYt3NnZWVpxowZio+PV2lpqT744AN7dDsAAABwrjnM2U52CAAAAKBdcblcGjhwoCZMmKD58+dfsOtu3LhR1113nQ4fPqywsLALdl0AAAC0b0znAgAAAKBR3377rdauXavRo0erqqpKL7zwgg4cOKDf/e53rZ0aAAAAcN4xnQsAAACARvn4+GjZsmUaPny4rr76ahUUFGj9+vUs5gkAAIB2gelcAAAAAAAAAADwgJHoAAAAAAAAAAB4QBMdAAAAAAAAAAAPaKIDAAAAAAAAAOABTXQAAAAAAAAAADygiQ4AAAAAAAAAgAc00QEAAAAAAAAA8IAmOgAAAAAAAAAAHtBEBwAAAAAAAADAA5roAAAAAAAAAAB48P96GIPRbYc3rQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rolling_length = 10\n", + "\n", + "fig, axs = plt.subplots(ncols=1, nrows=3, figsize=(15, 12))\n", + "\n", + "# Rewards\n", + "reward_ma = np.convolve(\n", + " np.array(dqn_rewards),\n", + " np.ones(rolling_length),\n", + " mode=\"valid\"\n", + ") / rolling_length\n", + "\n", + "axs[0].plot(reward_ma, color=\"blue\")\n", + "axs[0].set_title(\"Episode Rewards (moving average)\")\n", + "axs[0].set_xlabel(\"Episode\")\n", + "axs[0].set_ylabel(\"Reward\")\n", + "\n", + "\n", + "# Episode lengths\n", + "length_ma = np.convolve(\n", + " np.array(dqn_lengths),\n", + " np.ones(rolling_length),\n", + " mode=\"valid\"\n", + ") / rolling_length\n", + "\n", + "axs[1].plot(length_ma, color=\"green\")\n", + "axs[1].set_title(\"Episode Lengths (moving average)\")\n", + "axs[1].set_xlabel(\"Episode\")\n", + "axs[1].set_ylabel(\"Steps\")\n", + "\n", + "# Losses\n", + "loss_ma = np.convolve(\n", + " np.array(dqn_losses),\n", + " np.ones(rolling_length),\n", + " mode=\"valid\"\n", + ") / rolling_length\n", + "\n", + "axs[2].plot(loss_ma, color=\"red\")\n", + "axs[2].set_title(\"Training Loss (moving average)\")\n", + "axs[2].set_xlabel(\"Training step\")\n", + "axs[2].set_ylabel(\"Loss\")\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "2982403d-0487-45eb-ad68-2f8023802d37", + "metadata": {}, + "source": [ + "The training curves show that the DQN agent progressively learns an effective policy for the environment. At the beginning of training, the moving average reward is negative, which indicates that the agent mostly performs random actions and frequently fails to land correctly. As epsilon decreases and the agent starts exploiting the learned Q-values, the average reward increases significantly. Around the middle of the training process, the reward rises above 200, this suggests that the agent has learned a policy capable of solving the environment in many episodes.\n", + "\n", + "The episode length curve provides additional information about the learning process. During the first episodes, the lander probably fails quickly, resulting in short episodes. Later, the episode length increases considerably. This can be interpreted as the agent having learned to keep the landing module operational for longer, although not necessarily to land efficiently. Once the reward improves, the episode length decreases and becomes more stable, indicating that the agent is able to complete the task in fewer steps.\n", + "\n", + "The loss curve is initially high and unstable, which is expected in DQN because the network is still learning approximate Q-values from highly variable experiences. As training progresses, the loss decreases and stabilizes in a lower range. The loss does not need to converge to zero, since the target values in reinforcement learning are non-stationary and depend on the evolving policy and target network. Overall, the combination of increasing rewards, more stable episode lengths, and reduced loss suggests that the training process was successful." + ] + }, + { + "cell_type": "markdown", + "id": "ffd9821a-e56c-4d12-8f48-faaca9ea5e9f", + "metadata": {}, + "source": [ + "#### Video of the model" + ] + }, + { + "cell_type": "markdown", + "id": "75b85053-6636-415a-beef-f36dea9c2b8b", + "metadata": {}, + "source": [ + "Here we can see a video of the agent's behaviour." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "fde4ff85-f445-444f-b24a-31ef99cde2fb", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Takeoff...\n", + "Landing complete. Final reward: 270.33\n" + ] + } + ], + "source": [ + "# We put render_mode = human to see the agent in a video\n", + "test_env = gym.make(\"LunarLander-v3\", render_mode=\"human\",\n", + " continuous=False, gravity=-10.0,\n", + " enable_wind=False, wind_power=15.0, turbulence_power=1.5)\n", + "state, info = test_env.reset()\n", + "done = False\n", + "total_test_reward = 0\n", + "\n", + "print(\"Takeoff...\")\n", + "\n", + "while not done:\n", + " state_t = torch.tensor(state, dtype=torch.float32, device=device).unsqueeze(0)\n", + " \n", + " with torch.no_grad():\n", + " # We use the better action\n", + " action = policy_net(state_t).max(1).indices.item()\n", + " \n", + " state, reward, terminated, truncated, info = test_env.step(action)\n", + " total_test_reward += reward\n", + " done = terminated or truncated\n", + "\n", + "print(f\"Landing complete. Final reward: {total_test_reward:.2f}\")\n", + "test_env.close()" + ] + }, + { + "cell_type": "markdown", + "id": "7f8acac5-c8c5-46a6-8bc7-60cb64f3bc01", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "### Agent Wrapper" + ] + }, + { + "cell_type": "markdown", + "id": "bb58bde5-e5bb-412e-935c-af10ffd2d1f5", + "metadata": {}, + "source": [ + "In this case I create a wrapper for my DQN agent. It is important because it exposes the trained model thanks to the `act` function. Without it pgeon can not interact with the agent because can't know the agent's behaviour. Instead of this codde you can use the once in the next section because it is the implementation inside the *pgeon* library." + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "8ebca87c-f01b-49bb-8e14-e97aca9f1748", + "metadata": {}, + "outputs": [], + "source": [ + "class DQNAgentWrapper:\n", + " def __init__(self, model, device, epsilon=0.05):\n", + " self.model = model\n", + " self.device = device\n", + " self.epsilon = epsilon\n", + "\n", + " def act(self, observation):\n", + " # exploration\n", + " if np.random.random() < self.epsilon:\n", + " return np.random.randint(4)\n", + "\n", + " state_t = torch.tensor(\n", + " observation, dtype=torch.float32, device=self.device\n", + " ).unsqueeze(0)\n", + "\n", + " with torch.no_grad():\n", + " return self.model(state_t).argmax(dim=1).item()" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "id": "76ae676c-d869-4265-9fae-5c800bf1c464", + "metadata": {}, + "outputs": [], + "source": [ + "agent = DQNAgentWrapper(policy_net, device)" + ] + }, + { + "cell_type": "markdown", + "id": "0ddbda97-70b1-4a7b-a522-5a02c81a4e38", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "### Converting the Policy in an Agent" + ] + }, + { + "cell_type": "markdown", + "id": "5abda684-6ca3-4bb8-acae-1c59574fa586", + "metadata": {}, + "source": [ + "This part is important because transforms a raw neural network into a structured decision policy, separating the learning component from the actual action-selection logic. This step ensures that the resulting object is wrapped into a proper *pgeon* agent interface." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "4dd47f69-59cc-4bf9-9aff-074cc2da5684", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.agent import TorchPolicy\n", + "\n", + "policy = TorchPolicy(policy_net, device)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "1f7132f3-9c61-4228-93a5-2990d61ba62f", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.agent import CallableAgent\n", + "\n", + "agent = CallableAgent(policy)" + ] + }, + { + "cell_type": "markdown", + "id": "54f77e52-f1cd-4a5a-9f6a-8c28fc457adc", + "metadata": {}, + "source": [ + "### Approximator of the Agent" + ] + }, + { + "cell_type": "markdown", + "id": "7d9940e4-3cf2-441d-b54a-1d3d34992d2a", + "metadata": {}, + "source": [ + "To build the agent’s policy approximator, we first import two key classes from `pgeon`. `PolicyApproximatorFromBasicObservation` is responsible for constructing an approximation of the agent’s policy from direct interaction with the environment. Instead of using the internal parameters of the DQN, this class observes the behaviour of the already trained agent by running episodes in the environment. During each episode, the continuous observations produced by LunarLander are transformed into discrete predicate-based states using the discretizer. The resulting trajectories have the form:\n", + "\n", + "state → action → next state → action → next state ...\n", + "\n", + "These trajectories are then used to populate the policy representation. Each observed discrete state is added as a node in the Policy Graph, and each observed transition between two states through a given action is added as an edge. The frequency of states and transitions is also stored, allowing the approximator to later estimate probabilities for actions and transitions.\n", + "\n", + "`GraphRepresentation` defines how this information is stored as a graph. In this representation, nodes correspond to predicate-based states, while edges represent transitions observed when the agent performs an action. Therefore, the Policy Graph provides an interpretable abstraction of the agent’s behaviour: it does not explain the neural network directly, but it summarizes what the trained agent tends to do in the discretized environment.\n", + "\n", + "In this notebook, these two components are combined to create a Policy Graph from the trained DQN agent. The approximator runs the agent in the LunarLander environment, discretizes each observation, records the actions selected by the agent, and builds a graph-based representation of the observed policy." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "240f0f82-616f-4209-9919-549afbfd4b9b", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon import PolicyApproximatorFromBasicObservation, GraphRepresentation\n", + "\n", + "# Creating the representation\n", + "representation = GraphRepresentation()\n", + "\n", + "# Initializing the approximator\n", + "approximator = PolicyApproximatorFromBasicObservation(\n", + " discretizer, \n", + " representation, \n", + " env, \n", + " agent\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "1fb446a5-036f-423f-bc7b-cb9e1fca7075", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Fit 500" + ] + }, + { + "cell_type": "markdown", + "id": "98fdba87-4b1d-40f2-b7dc-92ebb2b5212c", + "metadata": {}, + "source": [ + "In this cell, the trained DQN policy is mapped into a `pgeon` Policy Graph. The method `fit(n_episodes=500)` runs the agent for 500 episodes, observes its decisions, discretizes the visited observations, and stores the resulting states and transitions in the graph representation. After the fitting process, the number of discovered states is printed to show how many different predicate-based states were observed during the mapping process." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "d3bd74e9-2e99-4e48-8206-14456b77f003", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initiating mapping of the DQN policy to pgeon...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Fitting policy approximator...: 100%|█████████████████████████████████████| 500/500 [00:50<00:00, 9.90it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡Mapping completed!\n", + "Discovered states: 5\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# Auto mapping of 500 episodes\n", + "print(\"Initiating mapping of the DQN policy to pgeon...\")\n", + "approximator.fit(n_episodes=500)\n", + "\n", + "print(f\"¡Mapping completed!\")\n", + "print(f\"Discovered states: {len(list(approximator.policy_representation.states))}\")" + ] + }, + { + "cell_type": "markdown", + "id": "030c58de-628d-412b-b782-34be432f0ab4", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Save Fit" + ] + }, + { + "cell_type": "markdown", + "id": "6e1e09da-064a-4b29-9ff4-2eff44cdf7f1", + "metadata": {}, + "source": [ + "The approximation can be saved using the following code. Later in this notebook, I explain how to export it in both `CSV` and `GRAM` formats." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "ae8fc212-6089-4fd0-93a3-59c9d84d5907", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator saved successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_fit_500_example.dill\", \"wb\") as f:\n", + " dill.dump(approximator, f)\n", + "\n", + "print(\"¡DQN approximator saved successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "1945717f-0b4f-4ed5-9454-6f7fb7bf1289", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Load Fit" + ] + }, + { + "cell_type": "markdown", + "id": "b0c4a820-243c-4638-b503-fad0607da962", + "metadata": {}, + "source": [ + "You can load the saved approximator with the next code." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "ec756925-adac-4f9b-a442-4138a6106024", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator loaded successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_fit_500_example.dill\", \"rb\") as f:\n", + " approximator_loaded = dill.load(f)\n", + "\n", + "print(\"¡DQN approximator loaded successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "13ccf0e2-ef56-433d-84ba-a675e2f1fb5e", + "metadata": {}, + "source": [ + "### Generating PG from Approximator" + ] + }, + { + "cell_type": "markdown", + "id": "8084280d-bba1-438c-8f7c-045f20a73672", + "metadata": {}, + "source": [ + "This cell retrieves the Policy Graph stored inside the loaded approximator and prints its size. The variable `pg` contains the policy representation generated during the fitting process. Its states correspond to the predicate-based abstractions discovered from the LunarLander observations, while its transitions represent the observed state-action-state relations followed by the trained agent." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "55cd3c7b-9b50-4a08-8871-63cf7811d79e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of states in the PG: 5\n", + "Number of transitions in the PG: 37\n" + ] + } + ], + "source": [ + "pg = approximator_loaded.policy_representation\n", + "print(f'Number of states in the PG: {len(list(pg.states))}')\n", + "print(f'Number of transitions in the PG: {len(list(pg.transitions))}')" + ] + }, + { + "cell_type": "markdown", + "id": "4275dd85-bc5a-4ce3-8930-dc7e29c86e29", + "metadata": {}, + "source": [ + "The loaded Policy Graph contains 5 states and 37 transitions. This means that, after applying the discretizer, the behaviour observed from the agent was summarized into 5 different symbolic states connected by 37 observed transitions. The small number of states is a consequence of the abstraction process: several continuous LunarLander observations can be mapped to the same predicate-based state." + ] + }, + { + "cell_type": "markdown", + "id": "b99cab01-aecd-40b4-8a97-3809f879b7a8", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Visualizing States" + ] + }, + { + "cell_type": "markdown", + "id": "f9983321-ccd1-4a42-8be0-1de897eedcc6", + "metadata": {}, + "source": [ + "This cell prints all the states discovered in the Policy Graph. Each state is a predicate-based abstraction of a continuous LunarLander observation. The index assigned to each state is only used to make the output easier to read." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "c448b1f4-c0ad-4eee-9396-7138f314bc8e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Estado 0: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Estado 1: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Estado 2: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Estado 3: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Estado 4: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n" + ] + } + ], + "source": [ + "for i, state in enumerate(pg.states):\n", + " print(f\"Estado {i}: {state}\")" + ] + }, + { + "cell_type": "markdown", + "id": "4f687e6a-a5a7-4b55-91b0-23dd7cb41812", + "metadata": {}, + "source": [ + "The discovered states describe stable situations of the lander. In all of them, the lander is centered, upright, has no horizontal movement, and has no angular velocity. The main differences between states are related to the vertical position of the lander and the contact with the ground. Some states represent the lander with no ground contact, while others represent contact with the left leg, the right leg, or both legs.\n", + "\n", + "This result suggests that the Policy Graph mainly captures the final landing phase of the trained agent. The small number of states is a consequence of the discretization process, since many different continuous observations are mapped to the same symbolic state." + ] + }, + { + "cell_type": "markdown", + "id": "49d909f6-ddbc-4991-972b-7e1389180abc", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Visualizing PG" + ] + }, + { + "cell_type": "markdown", + "id": "0bf7713b-467e-4eae-b12f-12c271501abf", + "metadata": {}, + "source": [ + "With this code you can generate a representation of the PG generated." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "76e3e48a-0be3-4105-9953-7273c0e0d389", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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jbVr1/LEE09Qt25dtm/fzocffsiePXtYsGDBZf8OZs+eTVpaGkOGDKFMmTL8+eefTJw4kWPHjjF79uw869rtdu6++26aNWvGe++9x/Lly3njjTfIycnhzTffBM79/T344IO0bduWcePGARAdHc26desYNmzYFd8PgN27d/Pggw8yaNAgBg4cSO3atQGYNGkS9evXp1u3bjg5ObFo0SKefPJJHA4HTz31VO7252fL69evz0svvYSfnx9btmxh+fLl9OnT57Lv58X8/PPPdOzYkerVqzN69GjS09OZOHEiLVq0YPPmzRdcitCrVy+qVavG2LFj2bx5M1988QVBQUG578d5TZo0wTAM1q9fT5cuXS779yQiIsWYISIiJd7XX39tAMbPP/9sxMfHG0ePHjV++OEHo0yZMoa7u7tx7NgxY+vWrQZgPP7443m2ff755w3A+PXXX3OXtW7d2mjdunXunw8ePGgAxtdff527rFWrVoa3t7dx+PDhPOM5HI7cr1966SXD1dXVOH36dO6ykydPGk5OTsYbb7xx2WPy9/c3GjZseMHylJQUIz4+PvdXampq7mtvvPGGARgPPvjgBdulpaVdsOz77783AGPNmjUXjNGtW7c86z755JMGYGzbti13GWC4uLgY+/bty122bds2AzAmTpx42eP7+eefDcBYtGjRBa/17dvXAAx/f3/j3nvvNT744AMjOjr6gvVmz55tAMaqVauu6ngHDRpkeHh4GBkZGbnLOnfubFSpUuWCdWfMmGFYrVbj999/z7N88uTJBmCsW7fussd3sf2PHTvWsFgseb5nHn30UQMwnn766dxlDofD6Ny5s+Hi4mLEx8cbhmEYw4YNM3x8fIycnJxL7vNy70eVKlUMwFi+fPlVZe3QoYNRvXr13D+fPn3a8Pb2Nm699VYjPT09z7r//J6/1Pt5sX9DDRs2NIKCgoxTp07lLtu2bZthtVqNvn375i47/z05YMCAPGPee++9RpkyZS7Y1/Hjxw3AGDdu3AWviYhIyaHT+EVESpG77rqLwMBAQkJCeOCBB/Dy8mL+/PlUrFiRpUuXAjBixIg82zz33HMALFmy5Kr3Ex8fz5o1axgwYACVK1fO89o/Z8j79u1LZmYmc+bMyV32448/kpOTw8MPP3zZfaSkpFx0VvSRRx4hMDAw99eLL754wTqDBw++YNk/r83OyMggISEh91r5zZs3X7D+P2d0AZ5++mmA3PfxvLvuuosaNWrk/jk8PBwfHx8OHDhwucPLvXzA39//gte+/vprPvnkE6pVq8b8+fN5/vnnqVu3Lm3btiUmJuay4573z+M9c+YMCQkJtGzZkrS0NHbt2nXF7WfPnk3dunWpU6cOCQkJub/OXxqyatWqq97/2bNnSUhIoHnz5hiGwZYtWy5Y/5+PMDz/SMOsrCx+/vln4Ny16GfPnmXlypVXzH4p1apVo0OHDpfNmpycTEJCAq1bt+bAgQMkJycD584sOHPmDKNGjbrg2vt/nxVyNWJjY9m6dSv9+vUjICAgd3l4eDjt2rW74PsMLvy+btmyJadOnSIlJSXP8vPfUwkJCdecS0REig+VfRGRUuTTTz9l5cqVrFq1ip07d+ZeBw1w+PBhrFYrNWvWzLNN+fLl8fPzu6bnvJ8vsqGhoZddr06dOtx888189913ucu+++47mjVrdkGOf/P29iY1NfWC5W+++SYrV668bOmrVq3aBcsSExMZNmwY5cqVw93dncDAwNz1zhe6f7rpppvy/LlGjRpYrdYLHuv27w874FzZSkpKumS+fzL+dV06gNVq5amnnmLTpk0kJCSwcOFCOnbsyK+//soDDzxwVePu2LGDe++9F19fX3x8fAgMDMz9gOVix/tve/fuZceOHXk+WAkMDKRWrVrAuUciXs6RI0dyi6yXlxeBgYG0bt36ovu3Wq1Ur149z7Lz+zn/fj/55JPUqlWLjh07UqlSJQYMGHDV90Y472LfFwDr1q3jrrvuyr1uPjAwkJdffjlP1vOXxFzpe/5qnf/3dv5Sgn+qW7cuCQkJnD17Ns/yf3+vnS/1//5eO/89dT0fQoiISPGha/ZFREqRW265Jfdu/JdS2AWgb9++DBs2jGPHjpGZmcnGjRv55JNPrrhdnTp12LZtG9nZ2XkeVxYeHn7FbS92h/VevXqxfv16XnjhBRo2bIiXlxcOh4O7774bh8NxxTEv9b7ZbLaLLr9Yif+n89fzX+lDgTJlytCtWze6devGHXfcwW+//cbhw4dzr+2/mNOnT9O6dWt8fHx48803qVGjBm5ubmzevJkXX3zxqo7X4XAQFhbG+PHjL/p6SEjIJbe12+20a9eOxMREXnzxRerUqYOnpycxMTH069fvqvb/b0FBQWzdupWIiAiWLVvGsmXL+Prrr+nbty/ffPPNVY1xse+L/fv307ZtW+rUqcP48eMJCQnBxcWFpUuX8uGHH15X1oJytd9r57+nypYtW+CZRETEPCr7IiICnLvxm8PhYO/evXluWnbixAlOnz592fL4b+dnYaOioq647gMPPMCIESP4/vvvc58z3rt37ytu16VLFzZu3Mj8+fPp1avXVWe7mKSkJH755RfGjBnD66+/nrt87969l9xm7969eWaC9+3bh8PhyLfnt59/wsD5JyVcjaZNm/Lbb78RGxtLlSpVLvkBxOrVqzl16hTz5s2jVatWucsvtq9LjVGjRg22bdtG27Ztr/kDou3bt7Nnzx6++eYb+vbtm7v8UmdjOBwODhw4kDubD7Bnzx6APO+3i4sLXbt2pWvXrjgcDp588kmmTJnCa6+9Rs2aNa/rg6xFixaRmZnJTz/9lGfm/N+XKZy/VCMqKuqyZ6VcbYbz/9527959wWu7du2ibNmy1/3IyPN/z//8dy4iIiWPTuMXEREAOnXqBJx7Vvs/nZ+57dy581WPFRgYSKtWrfjqq684cuRIntf+PctYtmxZOnbsyLfffst3333H3XfffVUzjkOGDKFcuXI8++yzucXvcvu5nPMzov/e5t/vxT99+umnef48ceJEADp27HjV+72cihUrEhISwt9//51neVxcHDt37rxg/aysLH755Zc8l2KcL4OnT5/Os+7FjjcrK4vPPvvsgnE9PT0velp/r169iImJYerUqRe8lp6efsEp5lfav2EYuY/Ju5h/nu1hGAaffPIJzs7OtG3bFuCCRyRardbcszzOPwrwUu/H5Vwsa3JyMl9//XWe9dq3b4+3tzdjx4694BGM/9z2Uu/nvwUHB9OwYUO++eabPHmjoqJYsWJF7r/X67Fp0yYsFstln3YhIiLFn2b2RUQEgAYNGvDoo4/y+eef557m/eeff/LNN99wzz33cOedd17TeB9//DG33347jRs35oknnqBatWocOnSIJUuWsHXr1jzr9u3bl/vvvx+At95666rGDwgIYP78+XTt2pUGDRrwwAMPcPPNN+Ps7MzRo0dzH992sWvm/83Hx4dWrVrx3nvvkZ2dTcWKFVmxYsVlZ9UPHjxIt27duPvuu9mwYQPffvstffr0oUGDBleV/2p0796d+fPnYxhG7ozwsWPHuOWWW2jTpg1t27alfPny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CB8fn9z1UlJSKFOmDJUrV77hm/PZ7XZWrlzJl19+ycKFC7FYLNx77708/fTTtGjRIr8OTYoolX0REREREZECtHr1avr3709cXBy9e/dm8ODB3HrrrZc8tT4mJoby5cvn6x344+PjmTFjBl988QXR0dE8/vjjvP/++/j5+eXbPqRoUdkXEREREREpAGlpaYwaNYqJEyfSunVrvv76a6pVq2ZqJofDwdSpU3nhhRfw9vZm0qRJdOvWzdRMUjB0i0YREREREZF8tmHDBho2bMgXX3zBRx99xK+//mp60QewWq0MGjSIHTt20LBhQ7p3784DDzxAfHy82dEkn2lmX0REREREJB8tXryYe++9l6ZNm/LNN99Qq1YtsyNdlGEYzJw5k2HDhuHj48Pq1aupXLmy2bEkn6jsi4iIiIiI5JOff/6Zzp0706VLF3788UecnJzMjnRFhw8f5s4778RisbBq1SoV/hJCZV9ERERERCQfrF27lg4dOtC6dWsWLFiAi4uL2ZGumgp/yaOyLyIiIiIicoP++usv2rZtS5MmTVi6dCnu7u5mR7pm/yz8q1evJiQkxOxIcgNU9kVERERERG7A2bNnqVevHsHBwaxcuRJvb2+zI123w4cP07p1a4KDg1m7dm2+Pv5PCpfuxi8iIiIiInIDRo8ezcmTJ5k5c2axLvoAVapU4bvvvuOPP/5g4sSJZseRG6CZfRERERERkeu0detWmjZtyttvv82oUaPMjpNvnnnmGb744gu2b99OjRo1zI4j10FlX0RERERE5DrY7XaaN2/O2bNn2bJlC87OzmZHyjepqamEhYVRrVo1fv75Z6xWnRRe3OhvTERERERE5DpMmzaNP//8kylTppSoog/g5eXF1KlTWbVqFTNmzDA7jlwHzeyLiIiIiIhch6ZNm1KxYkUWLlxodpQC061bN2JiYti0aZPZUeQaaWZfRERERETkGm3fvp1NmzbRv39/s6MUqEGDBrF582b+/vtvs6PINVLZFxERERERuUbffPMNgYGBdO7c2ewoBeruu+8mJCSEzz//3Owoco1U9kVERERERK5BdnY2M2bM4KGHHipx1+r/m81m4/HHH2fmzJmkpKSYHUeugcq+iIiIiIjINfj11185efIk/fr1MztKoRgwYADp6enMnTvX7ChyDVT2RURERERErsGmTZvw8/MjPDzc7CiFolKlStSrV48//vjD7ChyDVT2RURERERErkFUVBShoaFYLBazoxSaRo0asWXLFrNjyDVQ2RcREREREbkG58t+adKoUSMiIyPJyckxO4pcJSezA4iIiIiIiBQX2dnZ7Nq1i0GDBhXePu0OjiWlk5aVQ2aOg2y7A2ebFVcnKx4uTlTyd8fZVrDzuA0bNiQjI4M9e/ZQr169At2X5A+VfRERERERkau0b98+srOzqV+/foGMn213sPdkKlExyWyPSWbr0dPsiksh225cchtnm4U65X1oGOJHWEVfQiv6clOQV75+ANCwYUMAtm7dqrJfTKjsi4iIiIiIXKX09HQAfHx88nXcbUdPM2PjIRZFxpKZ4wDAyWohx3Hpkn9ett1ge0wy0bEpzPj/9V2drHQND6bvbVUJr+R3w/n8/f2xWCykpqbe8FhSOFT2RURERERErpKT07kKlR/Xrmdk2/lp23GmrT/EztgUbFYL9n+U+6sp+v/0z/UzcxzM33qcOZtjqF/Bh37Nq9I1vAJuzrYbzi3Fg8q+iIiIiIjIVbLZzpVlu91+3WNkZNv5ZNU+pq0/RGpmDtb/v6m//RrL/ZWcHy86NoUX5kQyZtFO+jevylN31lTpLwVU9kVERERERK7Sjc7sbzqcxIhZWzmalMb5bp/PHf8C58dPzczh09X7+GnbcT7s3ZDGlf0LdsdiKj16T0RERERE5Cpdb9nPyLbz7tJo7p+8Pk/RL2wOA44mpdFj0nreXRpNRvbVnaFgGAaGYVJouS4q+yIiIiIiIlcpKCgIi8XCoUOHrnqbzUeS6DBhDV+sPYBBwc/kX4nDAAOYuvYAHSasYfORpCtuExMTA0C5cuUKOJ3kF5V9ERERERGRq+Tt7U3t2rXZtGnTVa2/dHssPadsMHU2/1KM/5/l7zllA0u3x1523S1btgDQqFGjwogm+UBlX0RERERE5Bo0bdqUv//++4rr/fjXEZ6auRmHwyhyRf88hwEOh8FTMzcz6++jl1xv69at+Pv7ExISUojp5EboBn0iIiIiIiLXoEmTJsyZM4fs7GycnZ0vus6Pfx3hxXnbCznZ9Tn/OcTIuZEA9Gp6YaHfsmULjRo1wjAMEhISiIuLIy4ujhMnThAXF0dSUhJ2ux2Hw3HB7w6HA1dXVwICAihTpgxlypTJ83WZMmXw8vIqxCMuHVT2RURERERErkHTpk3JyMhgx44dNGzY8ILXl26PZVQxKfr/9uLcSLxcnbi1ggvbtm3L/bVkyRKcnZ1xcXG54LGD3t7e+Pv74+TkhM1mw2q1XvB7RkYGp06dIjEx8aI3NwwKCqJevXrUrVs3z+/ly5fHYrEU1uGXKBZDt1QUERERERG5aunp6ZQvX56nn36at99+O89rm48k0XPKBhwOg2JZtAwHhmEQ9+1Iso7vxs3NjRo1arBjxw769OlDy5YtKV++POXKlcv93cPD4+qHNwzOnDlDYmIip06d4tSpU8THx7N3716io6PZuXMne/bsISsrCwBfX19uvvlm2rVrR7t27WjQoAFWq65Gvxoq+yIiIiIiItfo6aefZvbs2Rw5cgQXFxfg3OP1OkxYUyRvxnctLBgEuBh81bMGoXVrM3ToUBYtWsShQ4dyHz1YkHJycjhw4ADR0dHs2LGDtWvX8ttvv5GWlkZgYCBt27alffv2tGvXjkqVKhV4nuJKZV9EREREROQa7dixg9DQUGbNmkXPnj0BeHdpNF+sPVCsi/55Fgs80bI6T7cMoUKFCjz77LOMGTPGtDyZmZmsX7+elStXsnLlSjZt2oRhGNx555089dRTdOvW7ZL3TyitVPZFRERERESuQ6tWrXBycuLXX39l0+Ek7p+8vnieun8JFuDRigm8NWwABw8epHLlymZHynXq1CmWLl3KlClTWLduHRUqVGDQoEEMHDiQ4OBgs+MVCSr7IiIiIiIi12HmzJk89NBD/LV5K8/9nMixpDTsJahdWS3A2VPUOTCXpYsWmh3nkrZt28Znn33Gt99+S1ZWFvfffz9jx46latWqZkczlcq+iIiIiIjIdcjMzKRBgwY4NbqHtGotS8Tp+/9mGA6613Tj48fbmR3lipKTk/nmm294//33SUpK4p133mHo0KHYbDazo5lCtzEUERERERG5Dq6urkye+iUpwU1KZNEHsFisrDrmICPbfuWVTebr68szzzzDzp076d+/P88++ywtWrQgKirK7GimUNkXERERERG5TvEelbG6uJsdo0CdycxhcWSs2TGumre3NxMnTmTt2rWkpKTQuHFj3nnnHUrbSe0q+yIiIiIiItfp63WHsFotZscoUFYLfL3+oNkxrlnz5s3ZsmULL7zwAq+++iovv/xyqSr8Bf+QRBERERERkRJo29HT7IxNMTtGgXMYsON4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Urt2bcLCwjh8+DBBQUH89ttvHDt2jCZNmpgdT0SKIZV9ERERERGTxMXFER4eTvXq1dmzZw8BAQEsWbKEEydO0KpVK7PjiUgxprIvIiIiIlLIEhMTueWWWwgODmb79u34+Pgwa9YsTp06RadOncyOJyIlgMq+iIiIiEghSU1NpXXr1pQpU4a//voLDw8PvvjiC5KTk+nZs6fZ8USkBFHZFxEREREpYFlZWXTs2BFvb2/WrFmDq6srH374IWfPnuWxxx4zO56IlEAq+yIiIiIiBcRut9OzZ0/c3NxYvnw5Li4uvPnmm2RkZDB8+HCz44lICeZkdgARERERkZLGbrczcOBAvvnmGxwOB05OTgwbNowPPvjA7GgiUkpYDMMwzA4hIiIiIlJSDBs2jE8//RS73Y7VamXgwIFMnjzZ7FgiUspoZl9EREREJB+88sorvPfee+Tk5GCxWOjTpw/Tp0/HZrOZHU1ESiGVfRERERGRGzBu3Dhef/11srKysFgsdO/enblz56rki4ipVPZFRERERK7DpEmTeO6550hPTwfgrrvu4qeffsLd3d3kZCIiKvsiIiIiItfk22+/ZciQIaSmpgLQvHlzli5diq+vr8nJRET+R2VfREREROQq/PTTTzz66KOcPn0agEaNGhEREUFgYKC5wURELkJlX0RERETkMn799Vd69+5NQkICAHXr1mX58uVUrlzZ5GQiIpemsi8iIiIichF//vkn99xzD7GxsQDUqFGDpUuXUqtWLZOTiYhcmcq+iIiIiMg/REVF0blzZ44cOQJASEgIP/30Ew0bNjQ3mIjINbCaHUBEREREpCjYv38/N910E2FhYRw5coRy5cqxdu1ajhw5oqIvIsWOyr6IiIiIlGpxcXGEhYVRs2ZN9u3bR0BAAMuXLycuLo4WLVqYHU9E5Lqo7IuIiIhIqZSYmMjNN99McHAwUVFR+Pj4MGfOHE6dOkWHDh3MjicickNU9kVERESkVElNTaVVq1aUKVOGv//+G09PT77++muSk5Pp0aOH2fFERPKFyr6IiIiIlApZWVncfffdeHt78/vvv+Pm5sbHH39Mamoq/fr1MzueiEi+UtkXERERkRLNbrfTo0cP3NzciIiIwMXFhbfeeov09HSefvpps+OJiBQIPXpPREREREoku93OgAED+Pbbb3E4HDg5OTFixAjGjRtndjQRkQJnMQzDMDuEiIiIiEh+Gjp0KJMnT8Zut2O1Whk0aBCfffaZ2bFERAqNZvZFREREpMR46aWX+OCDD8jJycFisfDwww8zbdo0bDab2dFERAqVyr6IiIiIFHtjx45l9OjRZGVlYbFYuOeee5gzZ45KvoiUWir7IiIiIlJsffLJJ7zwwgtkZGQA0L59exYsWIC7u7vJyUREzKWyLyIiIiLFzvTp03nyySc5e/YsALfffjvLli3Dy8vL5GQiIkWDyr6IiIiIFBvz58+nf//+JCcnA9CkSRNWrFhBQECAyclERIoWlX0RERERKfJWrlzJgw8+yKlTpwCoX78+ERERVKxY0eRkIiJFk8q+iIiIiBRZGzdu5N577yUuLg6AmjVrsnz5cmrUqGFyMhGRok1lX0RERESKnMjISLp06cLRo0cBCAkJYfHixYSHh5ucTESkeFDZFxEREZEiY//+/dx9993s27cPgPLlyzN//nyaNWtmcjIRkeLFanYAEREREZGYmBhCQ0OpWbMm+/bto0yZMqxYsYLY2FgVfRGR66CyLyIiIiKmSUxMpEmTJlSqVIkdO3bg6+vLvHnzSEhIoF27dmbHExEptlT2RURERKTQpaamcvvtt1OmTBk2b96Mp6cn33zzDadPn+bee+81O56ISLGnsi8iIiIihSYrK4sOHTrg7e3NunXrcHNzY+LEiaSmptK3b1+z44mIlBgq+yIiIiJS4Ox2O/feey9ubm6sWLECFxcX3n33XdLT0xk6dKjZ8UREShzdjV9ERERECozdbqdfv37MnDkTh8OBk5MTzz//PGPHjjU7mohIiWYxDMMwO4SIiIiIlDxPPvkkU6ZMweFwYLPZGDx4MJ988onZsURESgWVfRERERHJVy+++CLjx48nJycHq9XKI488wpdffonNZjM7mohIqaHT+EVEREQkX7z99tu89dZbZGVlYbFYuO+++5g1a5ZKvoiICVT2RUREROSGTJw4kZEjR5KRkQFAhw4d+Omnn3BxcTE5mYhI6aWyLyIiIiLXZdq0aQwdOpSzZ88C0LJlS5YuXYqXl5fJyURERGVfRERERK7J3LlzGTBgACkpKQA0bdqUiIgIAgICTE4mIiLnqeyLiIiIyFWJiIigT58+JCYmAhAaGsry5cupWLGiyclEROTfVPZFRERE5LLWrVtHjx49OHHiBAA33XQTy5Yto0aNGiYnExGRS1HZFxEREZGL2rp1K127duXYsWMAVK5cmSVLlhAaGmpyMhERuRKr2QFEREREpGjZs2cPNWvWpFGjRhw7dozg4GA2bNjA4cOHVfRFRIoJzeyLiIiICAAxMTG0a9eO6OhoAMqWLcuPP/5ImzZtTE4mIiLXSjP7IiIiIqVcfHw8jRs3plKlSkRHR+Pn58fChQuJj49X0RcRKaZU9kVERERKqdTUVFq0aEFQUBBbtmzBy8uLGTNmkJSURLdu3cyOJyIiN0BlX0RERKSUSU9P56677sLb25v169fj7u7OZ599xpkzZ3j44YfNjiciIvlAZV9ERESklLDb7XTv3h1PT09++eUXXFxc+M9//kNaWhpDhgwxO56IiOQjlX0RERGREs5ut/PQQw/h7OzMTz/9hM1m4+WXXyYzM5MXX3zR7HgiIlIAdDd+ERERkRJs8ODBTJ06FYfDgc1mY8iQIUycONHsWCIiUsAshmEYZocQERERkfw1cuRIPvzwQ3JycrBarTz66KNMnToVm81mdjQRESkEmtkXERERKUHeeust3n77bbKysrBYLNx///388MMPKvkiIqWMyr6IiIhICTBhwgReeuklMjIyAOjUqRPz58/HxcXF5GQiImIGlX0RERGRYuzLL7/kmWeeIS0tDYBWrVqxZMkSvLy8TE4mIiJmUtkXERERKYZmz57N448/TkpKCgA333wzy5cvJyAgwORkIiJSFKjsi4iIiBQjERER9OnTh8TERADCwsJYsWIF5cuXNzmZiIgUJSr7IiIiIsXAmjVr6NmzJydPngSgVq1aLF++nGrVqpmcTEREiiKVfREREZEibOvWrXTp0oWYmBgAqlatyqJFiwgNDTU5mYiIFGUq+yIiIiJF0J49e+jYsSMHDhwAoEKFCsyfP59bbrnF5GQiIlIcWM0OICIiIiL/c+TIEerWrUvt2rU5cOAAZcuWZdWqVcTExKjoi4jIVVPZFxERESkC4uPjadSoEVWqVGHXrl34+fmxcOFC4uPjueOOO8yOJyIixYzKvoiIiIiJkpOTad68OUFBQWzduhVvb2++++47kpKS6Natm9nxRESkmFLZFxERETFBeno6bdu2xc/Pjw0bNuDu7s7kyZNJSUmhT58+ZscTEZFiTmVfREREpBBlZWXRtWtXPDw8+PXXX3F1dWXcuHGkpaUxaNAgs+OJiEgJobIvIiIiUgjsdjt9+vTBzc2NxYsX4+zszKuvvkpGRgYjR440O56IiJQwevSeiIiISAGy2+0MGTKEL7/8EofDgc1mY+jQoUyYMMHsaCIiUoJZDMMwzA4hIiIiUhI9//zzfPTRR+Tk5GC1WunXrx+ff/45NpvN7GgiIlLCaWZfREREJJ+NGTOGd955h+zsbCwWC7169WLmzJkq+SIiUmhU9kVERETyyfjx43n55ZfJzMwEoHPnzsybNw8XFxeTk4mISGmjsi8iIiJyg6ZOncrw4cNJS0sDoHXr1ixbtgx3d3eTk4mISGmlsi8iIiJynWbPns3jjz9OSkoKALfccgsrVqzA19fX5GQiIlLaqeyLiIiIXKOlS5fy8MMPk5SUBEB4eDgRERGUL1/e5GQiIiLnqOyLiIiIXKU1a9bQs2dPTp48CUDt2rVZtmwZ1apVMzmZiIhIXir7IiIiIlewadMmunfvTkxMDABVq1Zl6dKl1K1b1+RkIiIiF6eyLyIiInIJ0dHRdOrUiUOHDgFQsWJFFi5cSJMmTcwNJiIicgVWswOIiIiIFDUHDx6kTp061KtXj0OHDhEYGMiqVas4duyYir6IiBQLKvsiIiIi/y8+Pp6GDRtSvXp1du/ejb+/P4sWLeLkyZPccccdZscTERG5air7IiIiUuolJydz2223ERQUxLZt2/D29uaHH34gMTGRLl26mB1PRETkmqnsi4iISKmVnp5OmzZt8PPzY+PGjXh4ePD555+TkpJC7969zY4nIiJy3VT2RUREpNTJysqiS5cueHh4sGrVKlxdXfnggw84e/YsAwcONDueiIjIDVPZFxERkVLDbrfzwAMP4ObmxpIlS3B2dub1118nIyOD5557zux4IiIi+UaP3hMREZESz26388QTTzBt2jQcDgc2m41nnnmG8ePHmx1NRESkQFgMwzDMDiEiIiJSUIYPH84nn3yC3W7HarUyYMAAJk+ejM1mMzuaiIhIgdHMvoiIiJRIb7zxBmPHjiU7OxuLxULv3r357rvvVPJFRKRUUNkXERGREuW///0vr7zyCpmZmQB06dKFuXPn4uLiYnIyERGRwqOyLyIiIiXClClTePbZZ0lPTwegTZs2LF68GHd3d5OTiYiIFD6VfRERESnWfvzxRwYOHMiZM2cAuO2221i2bBm+vr4mJxMRETGPyr6IiIgUS4sXL6Zv374kJSUB0LBhQ1asWEFgYKDJyURERMynsi8iIiLFyurVq+nVqxfx8fEA1KlTh4iICCpXrmxyMhERkaJDZV9ERESKhU2bNtGtWzeOHz8OQLVq1ViyZAl169Y1OZmIiEjRo7IvIiIiRVp0dDSdOnXi0KFDAFSsWJGFCxfSpEkTc4OJiIgUYVazA4iIiIhczMGDB6lduzb16tXj0KFDBAUF8dtvv3Hs2DEVfRERkStQ2RcREZEiJS4ujgYNGlC9enX27NlDQEAAS5Ys4cSJE7Rq1crseCIiIsWCyr6IiIgUCcnJydx6660EBwcTGRmJj48Ps2bN4tSpU3Tq1MnseCIiIsWKyr6IiIiYKj09nTvuuAM/Pz/+/PNPPDw8+OKLL0hOTqZnz55mxxMRESmWVPZFRETEFFlZWXTu3BkPDw9+++03XF1d+e9//8vZs2d57LHHzI4nIiJSrKnsi4iISKGy2+307NkTNzc3li5diouLC6NHjyYjI4MRI0aYHU9ERKRE0KP3REREpFDY7XYGDhzIN998g8PhwMnJiWHDhvHBBx+YHU1ERKTEsRiGYZgdQkREREq2YcOG8emnn2K327FarTz22GNMmjQJm81mdjQREZESSTP7IiIiUmBee+01xo0bR3Z2NhaLhT59+jB9+nSVfBERkQKmsi8iIiL57r333uP1118nMzMTi8VCt27dmD17Ni4uLmZHExERKRVU9kVERCTfTJkyhWeffZb09HQA2rZty6JFi3B3dzc5mYiISOmisi8iIiI3bObMmQwaNIjU1FQAmjdvztKlS/H19TU5mYiISOmksi8iIiLX7aeffuLRRx/l9OnTADRq1IiIiAgCAwPNDSYiIlLKqeyLiEiB+fPPPzEMg1tvvdXsKJLPfv31V3r37k1CQgIAderUISIigsqVK5ucTERERACsZgcQEZGS67HHHqNZs2a0a9eODRs2mB1H8sGff/5JhQoVaNu2LQkJCVSvXp3du3cTHR2toi8iIlKEqOyLiEiByc7OBmDVqlU0b95cpb8Yi4qKomrVqtx6663ExsZSqVIltmzZwv79+6lVq5bZ8URERORfLIZhGGaHEBGRksdut3PTTTdx8ODB3GUWiwXDMKhatSrvvfcec+bMwdXVFTc3N9zc3KhSpQphYWGEh4dTrlw5LBaLiUcgAAcPHqRDhw7s3bsXgHLlyjF37lxatGhhcjIRERG5HF2zLyIi+eLQoUMsXbqUrVu3snXrVqKionIfv3be+c+XMzIySE9PJzExkczMzNw/HzhwgLS0NAACAwMJDw8nLCyMBg0a0KVLF8qWLVvox1VaxcXF0a5dO6KiogAICAhg5syZdOjQweRkIiIicjU0sy8iItctJyeHJUuWMGXKFJYvX47NZqN+/fo0aNCAhg0b8uGHH3L06FFsNht2u51mzZrx9ttv06ZNm4vO2jscDg4cOEBkZCSRkZFs376dyMhI9u/fj7OzM/feey+PP/44bdq0wWrVlWgFITExkbvvvpu//voLAB8fH7766it69OhhcjIRERG5Fir7IiJyzY4dO8YXX3zBF198QUxMDE2bNmXw4ME88MADeHp65q5Xv359du7cecWSfyXx8fHMmDGDL774gujoaKpWrcqAAQPo378/lSpVys9DK7VSU1Pp3Lkza9asAcDDw4OPP/6Yxx57zORkIiIicj1U9kVE5Krl5OTw/vvvM3r0aJydnXnooYcYNGgQjRs3vuj6a9aswW63c8cdd+TL9feGYbBx40a++OILfvzxRzIzMxk1ahSvvvoqrq6uNzx+aZSVlUX37t1Zvnw5AG5ubowdO5bhw4ebG0xERERuiMq+iIhcld27d/Poo4/y119/8fzzz/PKK6/g4+NjWp4zZ87wwQcfMHbsWGrWrMlXX31Fs2bNTMtT3Njtdnr37s28efMwDAMXFxdeffVVXnvtNbOjiYiISD7QBY8iInJZDoeDDz/8kIYNG5KYmMjatWsZN26cqUUfwNvbmzFjxrBp0ya8vLxo3rw5zz77LGfPnjU1V1Fnt9vp168fLi4uzJ07F5vNxgsvvEBmZqaKvoiISAmimX0REbmkzMxM7rvvPpYuXcqwYcN499138fDwMDvWBXJycvjoo4949dVXCQkJ4ZdffiEkJMTsWEXOsGHD+PTTT7Hb7VitVgYOHMjkyZPNjiUiIiIFQGVfREQuKjs7m/vvv5+IiAgWLFjA3XffbXakK9qzZw8dOnTAarWyevVqFf7/98orr/Dee++Rk5ODxWLhoYceYtq0adhsNrOjiYiISAFR2RcRkQvY7XYeeugh5s2bx4IFC+jUqZPZka7aoUOHuPPOO1X4gXHjxvH666+TlZWFxWKhW7duuafui4iISMmmsi8iInk4HA4ef/xxvvnmG2bNmlUsn69e2gv/pEmTeO6550hPTwfgrrvu4qeffsLd3d3kZCIiIlJYdIM+ERHJ4z//+Q/Tpk3jm2++KZZFH6Bq1aqsWrUKh8NBhw4dyMjIMDtSofj222/x9vbmySefJD09nRYtWnDmzBlWrlypoi8iIlLKaGZfRERy7d27l7CwMIYNG8a4cePMjnPDdu7cSaNGjRgxYgRjx441O06BmT9/Pv379yc5ORmAxo0bs3z5cgIDA01OJiIiImZR2RcREQAMw6B9+/bs27ePHTt2FMm77l+Pd955hzfeeIM//viDJk2amB0nX/3666/06tWLU6dOAVC/fn0iIiKoWLGiyclERETEbCr7IiICwHfffcfDDz/M0qVL6dixo9lx8k12dja33HILDoeDv/76CxcXF7Mj3bA///yTe+65h9jYWABq1qzJkiVLqFWrlsnJREREpKjQNfsiIsLp06cZMWIEPXv2LFFFH8DZ2ZmvvvqKHTt28N5775kd54ZERUVRpUoVbr31VmJjYwkJCWHbtm3s3btXRV9ERETyUNkXERFmzJhBYmIiH374odlRCkSjRo14+umnGT9+fO4d6ouT/fv3c9NNNxEWFsaRI0coV64ca9eu5ciRI4SHh5sdT0RERIoglX0REeHrr7+mS5cuJfpa76eeeoqkpCTmzJljdpSrFhMTQ1hYGDVr1mTfvn2UKVOGFStWEBcXR4sWLcyOJyIiIkWYyr6ISCm3bds2tmzZQr9+/cyOUqBq1qxJ27Zt+fzzz82OckWJiYk0bdqUSpUqERUVha+vL3PmzCEhIYF27dqZHU9ERESKAZV9EZFSbtq0aQQGBtKpUyezoxS4J554grVr17Jjxw6zo1xUamoqLVu2pEyZMmzatAlPT0++/vprTp8+TY8ePcyOJyIiIsWIyr6ISCmWk5OTexd+Z2dns+MUuHvuuYfAwEC++OILs6PkkZWVxd133423tzdr167Fzc2Njz/+mNTU1BJ/xoWIiIgUDJV9EZFSbM+ePcTHx9O1a1ezoxQKFxcXunXrxurVq82OAoDdbqdHjx64ubkRERGBi4sLb731Funp6Tz99NNmxxMREZFiTGVfRKQUi4qKAiAsLMzkJIWnUaNG7Nixg6ysLNMy2O12Hn30UVxcXJg3bx42m42RI0eSmZnJq6++alouERERKTlU9kVESrGoqCjKly9P2bJlzY5SaBo2bEh2djY7d+40Zf9Dhw7F1dWV6dOnAzBkyBCys7MZN26cKXlERESkZHIyO4CIiJgnKiqK0NDQQttftt3BsaR00rJyyMxxkG134Gyz4upkxcPFiUr+7jjbCvZz6AYNGmCxWNiyZQsNGzYs0H3900svvcQHH3xATk4OVquVvn378tVXX2Gz2Qotg4iIiJQeKvsiIqVYVFQUnTt3LpCxs+0O9p5MJSomme0xyWw9eppdcSlk241LbuNss1CnvA8NQ/wIq+hLaEVfbgryytcPALy8vLjpppvYsmUL/fv3z7dxL2Xs2LGMHj2arKwsLBYL99xzD3PmzFHJFxERkQKlsi8iUoolJCQQHBycr2NuO3qaGRsPsSgylswcBwBOVgs5jkuX/POy7QbbY5KJjk1hxv+v7+pkpWt4MH1vq0p4Jb98yVi5cmXi4uLyZaxL+eSTT3jhhRfIyMgAoH379ixYsAB3d/cC3a+IiIgIqOyLiJRqNpsNu91+w+NkZNv5adtxpq0/xM7YFGxWC/Z/lPurKfr/9M/1M3MczN96nDmbY6hfwYd+zavSNbwCbs7XPzNusViue9srmT59Ok8++SRnz54F4Pbbb2fZsmV4eXkV2D5FRERE/k1lX0SkFHNyciInJ+e6t8/ItvPJqn1MW3+I1MwcrP/foe3XWO6v5Px40bEpvDAnkjGLdtK/eVWeurPmDZX+/DR//nz69+9PcnIyAE2aNGHFihUEBASYnExERERKI5V9EZFS7EZm9jcdTmLErK0cTUrjfLfP545/gfPjp2bm8Onqffy07Tgf9m5I48r+Bbvjy1i5ciUPPvggp06dAiA0NJTly5dTsWJF0zKJiIiI6NF7IiKl2PXM7Gdk23l3aTT3T16fp+gXNocBR5PS6DFpPe8ujSYj+8YvR7gWGzduJDg4mPbt23Pq1Clq1qzJvn372L59u4q+iIiImE5lX0SkFPP19SU+Pv6q1998JIkOE9bwxdoDGBT8TP6VOAwwgKlrD9Bhwho2H0m6qu2SkpLw9PS8rn1GRkZSuXJlbrvtNuLi4ggJCWHbtm3s3buXGjVqXNeYIiIiIvlNZV9EpBRr1KgRmzZtuqp1l26PpeeUDabO5l+K8f+z/D2nbGDp9tjLrpuTk8P27dtp0KDBNe1j//793HTTTTRo0ICjR49Svnx5NmzYwJEjRwgPD7+R+CIiIiL5TmVfRKQUa9q0Kdu3bycrK+uy6/341xGemrkZh8MockX/PIcBDofBUzM3M+vvo5dcb9euXWRmZtKoUaOrGjcmJobQ0NDc0/TLlCnDihUriI2NpVmzZvkVX0RERCRf6QZ9IiKlWJMmTcjKyiIqKorGjRtfdJ0f/zrCi/O2F3Ky63P+c4iRcyMB6NU05IJ1tmzZAkDDhg3/t51hkJycTFxcHAkJCWRnZ5OYmMioUaPYt28fAB4eHjz99NO0aNECd3d3oqOjCQgIICAgAGdn5wI9LhEREZFrZTEMo4jO0YiISEFLS0vDx8eHzz77jCeeeOKC15duj+WpmZspjj8oLMCnfRrTKSwYwzA4evQo27ZtY9y4cURGRtKyZUv++usvXFxcSEhIIDMz87r35ePjQ0BAAGXKlCEkJIR69epRt25d6tWrR506dfDw8Mi/AxMRERG5Cir7IiKlXNOmTalcuTLz5s3Ls3zzkSR6TtmAw2EUy7IPBhbDoFzUTHavW87p06eBc48b9PX1xTAMkpKS8PHx4e233yYgIIAJEybw999/A+Dm5sbLL7/MgAEDsFqtWK1WbDYbOTk5JCYmkpiYyKlTp3J/P//r0KFD7Ny5k5iYGAAsFgtVqlShXr16NGjQgLZt29KiRQvc3NzMemNERESkFFDZFxEp5T755BOGDx/OkSNHqFChAnDu8XodJqwpkjfjuyYOO672s/TxO0iThuE4HA66d+/O0KFD+eSTT3JXa9WqFb///juGYeDi4sLo0aN56aWXbmjXycnJ7Nq1i+joaHbu3El0dDR//fUXJ06cwN3dnVatWtGuXTvatWtHWFgYFovlRo9WREREJJfKvohIKZecnEyFChUYNWoUr732GgDvLo3mi7UHinfR/38WCzzRsjovdazLgAEDWLlyJTExMfz7x5+TkxPPP/88Y8eOLbAshmGwfft2Vq5cycqVK/ntt9/IyMigXLly9OjRgyeffJL69esX2P5FRESk9FDZFxERBg4cyPLlyzl48CDbYs5w/+T1xfTU/YuzANMfCadD09oApKenX7DOL7/8Qps2bQo1V0ZGBuvWrWP58uXMmDGDEydO0Lp1a5588knuvfde3fhPRERErpvKvoiIsHnzZpo0acKseQv4ZJ8Px5LSsJegnw5WC/hYs4kc1xsj5+KPGQwICODUqVOFnOx/srKymD9/Pp9++im///47wcHBDBw4kGHDhhEQEGBaLhERESmeVPZFRAQ4d916TJnGOOq2oyT+ZDAMB8nrZ5H8+7cXfd3T05PU1NRCTnVxkZGRTJo0iRkzZuDp6cnEiRPp2bOnrusXERGRq6ayLyIiAGyJjKL7tGisriX3MXGeLlbWPtcSH093bDab2XGu6Pjx4zz99NPMmzePrl278tlnn1GpUiWzY4mIiEgxYDU7gIiIFA37sn2xurqbHaNAnc1y8Mve08Wi6ANUqFCBuXPnMnfuXP766y/q16/PlClTLri5oIiIiMi/qeyLiAgAX687hLWEnyZutcDX6w+aHeOa3XfffURHR9OrVy8GDx7MSy+9pMIvIiIil+VkdgARETHftqOn2RmbYnaMAucwYMfxFLYdPU2DED+z41wTPz8/pk6dSr169RgxYgSurq6MGTPG7FgiIiJSRKnsi4gIMzYewma1YHeU/Nlim9XCt38cLnZl/7xnn32WrKwsRo0ahaenJyNHjjQ7koiIiBRBOo1fRKSUy7Y7WBQZWyqKPoDdYfDTtuPk2B1mR7luL774Ii+99BIvvfQSf/31l9lxREREpAjSzL6ISCm392QqmTnFt/hej8wcB3tPplI32MfsKNftvvvu4+uvv6Zjx44MGDAg96aDHh4eDBs2DB+f4ntsIiIicuNU9kVESrmomOTcr7NOHiJ53UwyY/diP3sam7s3zmUr417zVnyads1dL3n9LJzLhuBR67br2mdWwhHSon/HK+wunPzK3fAx/JNhOEj5Yx5ntizDnpqIc0BFfG/riWe91nnW2x6TXKzL/pIlS4iLiwNg/PjxWK1W7HY7DoeDHj16UK9ePZMTioiIiJl0Gr+ISCm3PSYZJ6uFjGPRxH4znKyTB/Fq0IGA9oPxatABLBbO/P1Tnm2SN8wibc/G695ndsIRktd9T07yiRuNf4HTv03n9OppuFdtSEC7QTj5BJLw0/uc3flb7jpOVkueDzmKoyeeeAIXFxcA7HY72dnZWCwW2rZtq6IvIiIimtkXESntth49TY7DIGXDj1hdPQl+9EOsbl551rGfPW1OuGuUcyaBlD8X4N24MwHthwDg1aADJ74bRdKqr/GoczsWq40ch8HWo6fNDXuDgoODGTJkCBMnTsThOHcZht1u58033zQ5mYiIiBQFKvsiIqVYtt3Brrhzj9zLTorDuWzlC4o+gM3TL/frw//pAsDZqF84G/ULAJ6hbSnb5Vlykk+SvHEOGYe3YU+Jx+LkiluVcPzvHJB7un5q5M+cWjoBgBPfv5w7brkH38WtSjgA6fv/JnnDLLJO7AeLFbeQ+vjd0R+XwCqXPZ70vX+AIwevxp1zl1ksFrwbdyLhp/fJjNmFW0h9AKLjUsixO3CyFd+T3F588UU+++wzHA4HVquVO++8k+bNm5sdS0RERIqA4vs/HBERuWHHktLJtp+7C7+TbyBZcfvIij902W3KdHkObM64VqpPmS7PUabLc3g3uhuAzNg9ZMZE41m3Ff53PYFXo45kHN5G3MyXcGRnAOBaORTvJueu//e5rVfuGM5lQwBIjfqVk7PHYHFxx++Ofvg2701WwlFOfDuSnNOXP+0/68R+LM5uOJcJybPcJbjW/79+IHdZtt3gaFL6Vb5TRVNwcDBPPvkkAA6Hg7feesvkRCIiIlJUaGZfRKQUS8vKyf3a55b7ODnrDWK/egbXCrVwrVQft6oNcKscjsX2vx8XXqF3khjxKU5+5fEKvTPPeO41bsazzu15lnnUvIW4Gc+Ttns9XqFtcPYrj2tIfc5sWoR71Ya5s/kAjqx0klZOwatBe8p0fPp/+wxrS8zng0neMCvP8n+zpyZh8/TDYrHkWW7z8v//10/lWZ6ebb/SW1Tkvfjii3z00UdUr16d2267vhsmioiISMmjsi8iUor985F77tUaUb7vByRvmE3Gwc1kxuwi5Y+5WD18KdPxGTxuuvWK41mdXXO/Nuw5OLLScPIPxurqSVbcfghtc9ntMw5uwZF5Fs96rbGn/eMGehYrrhVqkXEk8rLbGzmZWGzOFyy3OLn8/+tZeZZnloCyHxwczMsvv0y7du3MjiIiIiJFiMq+iEgplm135Pmza3Atgu57BcOeTdbJg6Tt2cCZvxYSP38swQM+xqVs5cuO58jOJGXDbFK3/4z9zCnA+N9rmWevnCfpOJD3Wv5/srh6XHZ7i5Mrhj37guXnS/750n9e1r+Ov7iaPXs2Li4u3HHHHWZHERERkSJCZV9EpBRzvsTN6Sw2Z1yDa+EaXAtn/4qcWjqBtF1rcbm9z2XHS1o5hdTtP+PdtBuuFetgdfUEi4WEhe+BYVx2WyB3nTJdnss99T5PLsvlbzVj8/In40gkhmHkOZXfnpr0/6+XybO+SzG+Od8/nTp1Cicn/UgXERGR/9H/DERESjFXpyuXXZfgmgDYUxP/t/Bf18Sfd3b3OjxD2xDQ9vHcZUZOFo6M1H+tefHtnfyDAbB5+uJeteEVs12QNag6qdtWkH3qaJ6zELKO7z73erlqedZ3dbZd8z6KmtjYWBITE6lXr57ZUURERKQIKRlTGiIicl08XP73mW/G4XMz4v+Wvv9vAJwDKuUuszi7XvS0/IvNvKdsWgRG3tPlrS5uwIWn9rtXa4zF1YPk9bMw7Dn8W57r+C/C/aZmYHUidfOS3GWGYXBmyzJs3mVwrVg37/oloOxv2rQJgMaNG5ucRERERIoSzeyLiJRilfzdcbZZyLYbJK6cjJGdiXut23AuUwnsOWTERJMW/Ts233J4hd+Vu51r+ZpkHNpKyp/zsXkF4ORXHtcKtXGveTNno37F6uqBc9nKZMbsIuPQVqzuPnn26xJUHSxWkjfOwZGZhsXmhFuVBtg8/SjT/kkSFo8ndtowPOu2wurhS05KPOn7/sKtUl0C2g+55PE4+ZTF5+ZupPwxD8NhxyX4JtL3bCTz2A7Kdn0ei/V/5d7ZZiHE3z3/39RCNmvWLKpXr07lype/n4KIiIiULir7IiKlmLPNSp3yPmyPSca/zWOc3bWW9AN/k7otAsOejZNPIN6NO+PbvDdWN6/c7fzbPM6p5Z9wes23GDmZeIa2xbVCbQLuegIsVs7uWI1hz8a1Yl3KPfA2J358Pc9+bV7+BNz9FCkbZnNq6UdgOCj34LvYPP3wrH8HNq8AkjfOIfmPeWDPxuZVBteQ+niGX/mO83539MPq5sWZLctJ3f4zzv4VKNP1OTzr35FnvbrlfXAq5tfsJyYmMmvWLMaMGXPB4wZFRESkdLMYFztnU0RESo3XFkbx/Z9HyHGUnh8HTlYLfW6pzJvdQ82OckOGDx/O1KlTOXjwIEFBQWbHERERkSKkeE9piIjIDQur6Fuqij5AjsMgtKKv2TFuyN9//83EiRN58803VfRFRETkAir7IiKlXHEvvdcrrBgf97Fjx+jRowcNGzZk2LBhZscRERGRIkhlX0SklLspyOuqHsFXkrg6WbkpyOvKKxZBp06dokOHDgAsXLgQJyfdfkdEREQuVLr+dyciIhdwtlnpGh6MzVo6bvBms1ro1qBCsbw5X1JSEl26dOHkyZOsWLGCSpUqXXkjERERKZWK3/90REQk3z3SrCr2UnLdvt1h8EizKmbHuGbLly8nNDSUXbt2sWzZMmrXrm12JBERESnCVPZFRIQGIX7UC/ahpM/tWy1Qv4IP4ZX8zI5y1VJTUxk8eDAdO3YkLCyMqKgomjZtanYsERERKeJU9kVEBID+zatS0p/G6jCgf/NqZse4amvWrKFBgwbMmDGDSZMmsWzZMipWrGh2LBERESkGdFcfEZFSZP/+/URGRpKTk5Pn17x581j5628EDfoSq6uH2TELjKvVQZfwYLNjXJbdbmfx4sWMHz+eNWvW0Lx5cyIiIqhZs6bZ0URERKQYUdkXESlF+vbty/r16y/5uuuh9djr3EWJvHzfMDi7eQlWowNgMzvNBc6ePcu0adOYMGEC+/bto3nz5syZM4d77rkHm63o5RUREZGiTafxi4iUIo899thFl1ut534cTH/pYUL8PShpN+a3WiDYx5mYlV+xYMECs+PkysrK4pdffmH48OGEhIQwbNgwmjRpwsaNG1m3bh09evRQ0RcREZHropl9EZFSxNPTE4vFcsG1+Y0bNwbgtpubMD4oifsnX3r2vzgyDPj04VsYvrwZkydPplevXqZlOX78OMuWLWPJkiWsXLmS1NRUKlSowIABA3j66aepUqX4PSlAREREih6VfRGRUmDlypU88MADJCYm5llutVrp27cv06dPZ/LkyQA0qeLPwJbV+WLtgRJxOr8FGNC8Mo0r+zN48GAeeughdu3aRZ06dQp832fOnCEqKorIyEi2b9/O+vXr2bJlC1arlWbNmjFq1Cg6d+5MgwYNsFhK2OkUIiIiYiqVfRGREmzjxo3cc889nDhxAoCaNWuydOlSunfvTnR0NHXr1qVChQp4eHjwwAMP5G43ol0tInbEcTQprVgXfsNhJ/v0Ccbcfz/f16hGvXr18PDw4Nlnn+W5554jMDCQoKAgypYti7Oz8zWPn5GRQXx8PCdPnsz9fe/evbnl/uDBgwDYbDZq165N48aNef755+nQoQNlypTJ78MVERERyWUxSvpzlkRESqGoqCg6d+7MkSNHAAgJCWHx4sWEh4cDsGLFCh5//HEiIiJ4+OGHqV+/PtOnT88zxuYjSfScsgGHw6BY/qAwHFitVka38CEjJprIyEgiIyP5448/yMrKumD1gIAAAgMDKVu2LE5Ol/4sPDMzk/j4eOLj40lJSbng9fLlyxMeHk54eDhhYWGEh4dTp04d3Nzc8vXwRERERC5HZV9EpAQ5ePAgd999N3v27AGgXLlyzJ07lxYtWlywrmEY5OTk4OXlxQcffMDTTz99wTpLt8fy1MzNxbLsG4aDhAX/wTiyha5duzJ69Gjq1q3LzJkzeeihh9i8eTNZWVm5M/LnZ+cTEhJwOByXHNfZ2ZnAwMDcswKCgoJyvw4MDFSpFxERkSJBZV9EpASIj4+nXbt2bNu2DQB/f3++/fZbOnXqdNnttm3bRsOGDfn999+5/fbbL7rOrL+PMnJuZL5nLmgd/OL5fFT/PMusVivlypUjNjaWFStW0K5dO5PSiYiIiBQsPXpPRKQYS0lJoXnz5gQFBbFt2za8vb354YcfSExMvGLRB9iyZQsADRo0uOQ6vZqG8F6PcCycu9ldUXY+43s9wpnyYr8LrsN3OBzExsYCsGbNmsIPKCIiIlJIVPZFRIqhrKws2rVrh6+vLxs2bMDd3Z1JkyaRkpJC7969r3qcLVu2ULNmTby9vS+7Xq+mIXzapzFWqwVrEW38VgtYrRY+e6gxvZqGAPDwww9fdF1PT0+io6MLM56IiIhIoVLZFxEpRux2Oz169MDNzY2ff/4ZFxcX/vOf/5CWlsbgwYOvebwDBw5Qu3btq1q3U1gwswfdRoi/R5Er/BYLhPh7MHvQbXQMDc5dfv5xgv/2wAMP5N7XQERERKQkUtkXESkG7HY7/fr1w8XFhXnz5mGz2Rg5ciSZmZm8+OKL1z2uYRiXvfP8vzWu7E/E8FY8fnt1LGB66bdazp22/0TL6kQMb0Xjyv55XndxcaFWrVoXbPfll1+SmppaSClFRERECp/KvohIETd8+HBcXV355ptvABg8eDDZ2dmMGzfOlDxuzjZe7lSXOYObmzrLf342f+6Q5rzUsS5uzraLrjd16lTg3M35Tp48mXsjwoMHD7J8+fJCyysiIiJSmFT2RUSKqDFjxuDi4sJHH32Ew+HgwQcfJCsri0mTJpkdDYAmVc7N8j91R028Xc+dHWAp4OJ//oMFb1cnht5R86Kz+f/WqlUrPv/8cw4ePEhgYCC///47YWFhAHTs2JEJEyYUbGgRERERE+jReyIiRcyECRMYNWoUmZmZAHTu3Jl58+bh4uKS7/vq0qULTk5OLFiw4IbGyci2syjyONPWH2LH8RRsVgt2R/79eDk/XmgFH/o1r0aX8OBLzuRfjddff52PP/6Y5ORkAAYOHMjnn3+eX3FFRERETHf1F2qKiEiBmj59OkOGDCEtLQ04NyO9ZMkSvLy8CmyfTk5OZGRk3PA4bs42ejYJoWeTELYdPc23fxzmp23HycxxAGDYc7DYrv5HjpPVQs7/f1jg6mSlW4MKPNKsCuGV/G44K0BOTg6+vr58++23dO3alalTp7Jnzx5Wr16dL+OLiIiImE0z+yIiJluwYAH9+vXLnWVu2rQpERERBAQEFPi+X3rpJWbMmMGxY8fyfewcu4O9J1PpOWgExzOcadG1D7tOnCHbfukfO842C3XL+9AwxI/Qir6EVfTlpiAvnGz5e9XZfffdx5kzZ1i5ciW7d++mXr16OBwOqlWrxoEDB/J1XyIiIiJmUNkXETHJ6tWr6dmzJwkJCQDUr1+fiIgIKlasWGgZZs2aRe/evTl58iSBgYH5Pn5cXBzBwecehWe323EYcDQpnfRsO5nZdrLsDlxsVlydbbg72wjxd8/3Yn8xtWrVonPnznz44YcAJCcnU65cOTIzM/Hx8eHUqVPX9JQCERERkaJG/5MRESlkmzZtolu3bhw/fhyA6tWrs2zZsos+Iq6gNWrUCICtW7fSrl27fB3b4XDQrFmz3D+vXLmSDh06UK2sZ77u51qlp6ezb98+QkNDc5f5+vqSmppKcHAwCQkJuLu7ExsbS9myZU1MKiIiInL9dDd+EZFCsmvXLqpVq0bTpk05fvw4FStWZPPmzezfv9+Uog9Qo0YNvLy82LJlS76P3b9/fw4fPpz758mTJ+f7Pq5HdHQ0hmHkKftw7v4F8fHx1KtXj5ycHIKCgti8ebNJKUVERERujMq+iEgBi4mJoW7dutStW5dDhw4RGBjIb7/9xrFjx3Jn1s1itVpp1KgR69aty9dx58yZw/Tp0/MsKyo3v/vzzz+xWCzUq1fvoq/v2LGDTp06YRgGTZo04YcffijkhCIiIiI3TmVfRKSAJCYm0qRJEypVqsSuXbvw8/Nj4cKFnDx5klatWpkdL1fPnj1ZunQpcXFx+TJeXFwcDz744AXLT58+nW/7uBHffvst7dq1w9vb+5LrLFmyhBEjRgDw4IMP8vrrrxdWPBEREZF8obIvIpLPUlNTadmyJWXKlGHz5s14enoyY8YMkpKS6Natm9nxLvDwww/j5OTE119/nS/jrVu3jpycnIu+9vHHH+fLPq7X3r17WbduHf369bviuv/973/58ssvAXjrrbfo2bNnAacTERERyT8q+yIi+SQrK4uOHTvi7e3N2rVrcXNzY+LEiaSmpvLwww+bHe+S/P396dWrF1OnTsXhcNzweD169ODo0aN89tlnucs8PDyAc7P7Zpo2bRq+vr7cc889V7X+gAED+P3337FYLMyZM4cmTZoUbEARERGRfKJH74mI3CC73U6fPn2YPXs2hmHg4uLCq6++ymuvvWZ2tKu2fv16WrRowYoVK/Ltrvw5OTk4Ozvj5+dHUlJSvox5I+x2O1WrVqVz587XfLPAY8eOUbVqVex2O+XLlyc2NraAUoqIiIjkD83si4jcgCeeeAIXFxdmzZqF1Wrl2WefJTMzs1gVfYDbbruNsLAw3nzzzXyZ3Ydz18YDl7wRXmGbOXMmx44do3///te8baVKlUhNTcXT05O4uDg8PDzIyMgogJQiIiIi+UNlX0TkOowcORJnZ2emTp0KnDvdOzMzk/Hjx5uc7PpYLBYmTpzI2rVrmTRpUr6Mef4eAEXhEobExESee+45evXqxa233npdY7i5uZGamkqlSpVIT0/H09OTQ4cO5W9QERERkXyi0/hFRK7B2LFjGT16NFlZWVgsFnr06MEPP/yAzWYzO1q+ePLJJ5k+fTpRUVFUrVr1hsYqU6YMiYmJZGdn4+TklD8Br9PAgQOZNWsWu3btIjg4+IbHa9asGX/88QcAv/zyC23atLnhMUVERETyk8q+iMhVmDRpEiNGjMg9dbtDhw789NNPuLi4mJwsf6WkpBAaGkrt2rVZsWIFFovlusdycnLCbrdj9o+Z33//nVatWvHZZ58xZMiQfBv34Ycf5rvvvgPgk08+4amnnsq3sUVERERulMq+iMhlzJw5k0GDBpGamgpAixYtWL58OV5eXiYnKzjLly+nY8eOTJgwgWHDhl33OBaLBTc3N9LT0/Mx3bU5ffo0t912G76+vqxfvx6rNX+vXnvnnXd49dVXARg6dCgTJ07M1/FFRERErpeu2RcRuYglS5bg7+/PQw89RGpqKo0aNeLkyZOsXbu2RBd9gLvvvpvnnnuO4cOHM2XKlOsaY+/evQBUqFAhP6Ndk9TUVDp16sSJEyf46quv8r3oA7zyyivMnTsXODe73759+3zfh4iIiMj1MPciShGRIub333/n/vvv5+TJkwDUqVOHiIgIKleubHKywvX++++TnZ3N4MGDARg0aNA1bT9u3DgA2rZtm+/ZrkZ6ejrdunUjKiqKX375pUCfCHDfffcRFRVFWFgYK1eupHbt2uzevbvA9iciIiJyNVT2RUSAyMhIOnfuzLFjxwCoWrUqS5cupW7duiYnM4fFYmHChAkA11X4V61aBZx7akFhy8rK4v777+ePP/4gIiKCm2++ucD3Wb9+fRITEwkKCmLPnj34+/sTHx9v+o0JRUREpPTS/0JEpFTbv38/HTp0YP/+/QAEBwezYMECbrnlFpOTme/fhf/QoUO88cYbuLm5XXHb48ePA1CzZs2CjHiBmJgY+vXrx++//87ixYu5/fbbC23ffn5+pKWlERQURFJSEh4eHpw8eRI/P79CyyAiIiJynq7ZF5FSKS4ujrCwMGrWrMn+/fspU6YMv/zyC8ePH1fR/4fzhf/dd99l/PjxNGzYkHXr1l1xu4yMjEJ9HKFhGMyYMYPQ0FB27NjBkiVLuOuuuwpt/+c5OTmRmJhIrVq1yM7OJiAggMjIyELPISIiIqKyLyKlSnJyMrfccgvBwcFERUXh4+PDnDlzSEhI0LPSL8FisfDSSy+xZcsW/P39admyJU8//TRnzpy56Po5OTkA+Pr6Fkq+EydOcO+999K3b186d+5MVFSUafcKOG/37t20b98ewzBo0KAB8+bNMzWPiIiIlD4q+yJSKqSnp3PnnXfi5+fHX3/9hYeHB1988QXJycn06NHD7HjFQr169Vi7di3jx4/nq6++IjQ0lAkTJpCQkJBnvUmTJgEQFhZWoHlOnDjBf/7zH0JDQ1m/fj3z5s3j22+/JSAgoED3e7UiIiJ45plnAOjRowfvvPOOyYlERESkNFHZF5ESLSsri65du+Lh4cHq1atxdXXlv//9L2fPnuWxxx4zO16xY7PZGD58ONu3b6dZs2aMHDmSihUr0rt3b1auXInD4WDmzJkADBgw4Lr2sW7dOtq1a8fQoUMveM0wDH799Vd69+5NSEgIY8aMoXv37uzYsYN77733ho6tIHz00Ue5H368+uqrPPTQQyYnEhERkdLCYhiGYXYIEZH8Zrfb6du3L99//z2GYeDs7MxLL73EmDFjzI5WosTHxzNjxgy+/PJLdu7cSdWqVYmNjSUzM5P9+/dTrVo1LBbLVY21bt06Xnvttdw7+Tdq1IjNmzdz8uRJtm3bxp9//sn06dPZs2cPdevWZdCgQfTt2xd/f/+CPMR8sWrVqtzLRG655Rb++OMPkxOJiIhISaeyLyIlztChQ5k8eTJ2ux2bzcZTTz3FRx99ZHasEs0wDDZu3MiXX37Jl19+mbvc19eXsLAwwsLCCA8Pp0aNGri5ueHq6oqbmxt16tRh6dKlvPPOO/z9999YrVYcDgcA3t7eeHl5ERsbC4Cnpyfdu3dn0KBBtGzZ8qo/RCgqDh06RM2aNbHb7VSqVImjR4+aHUlERERKMJV9ESkxXnnlFd577z1ycnKwWq08/PDDfPXVV4V6V3g5d0M/Nzc35syZQ2RkJNu3bycyMpLdu3fn3rzvvMceeyzPhwP/5OPjwzPPPEODBg1o2LAh1atXx2ot3lefZWRkEBAQQHp6Op6eniQkJFzVowxFRERErpXKvogUe++//z6vvvoqWVlZWCwWunfvzpw5c1TyTbB582aaNGlCrVq12L17d57XMjMzOX78OJmZmWRmZpKRkUFYWBjff/8977//Prt3784zs3/+NP6SKDg4mLi4OGw2G4cOHaJSpUpmRxIREZESpnhPkYhIqTZ16lQ8PDwYOXIkWVlZtG3blrNnzzJ//nwVfZP897//BeDuu+++4DVXV1eqVatGnTp1aNCgAbfeeiseHh489thjREdHs2TJEho0aFDYkU0RGxtL48aNsdvtVK5cmbVr15odSUREREoYlX0RKXbmzJmDr68vTzzxBOnp6TRr1ozTp0/z888/4+7ubna8Uu18aX3hhReuaTuLxUKnTp3YtGkTS5YsoWnTpoSHhxdExCJj06ZN9OzZE8MwaNmy5SUvZxARERG5HjqNX0SKjYiICPr06UNiYiJw7jnuK1asoHz58iYnk/NcXV3JyspCP1qu3uuvv85bb70FwIgRI3LPjhARERG5ESr7IlLkbdy4kXvuuYcTJ04AcNNNNxEREUG1atVMTib/ZrFYsNlsF9yITy7vhx9+4MEHHwSgU6dOLFmyxOREIiIiUtyp7ItIkRUVFUXnzp05cuQIACEhISxevLjEn95dXGVkZODu7k5gYCAnT540O06xs3nzZpo2bYphGNSrV48dO3aYHUlERESKMV2zLyJFzsGDB6lVqxZhYWEcOXKEcuXKsXbtWo4cOaKiX4RNmDABgMaNG5sbpJhq3LgxJ0+exNnZmZ07d1K2bFmdISEiIiLXTWVfRIqM+Pj43Oep7927F39/f5YvX05cXBwtWrQwO55cwezZswEYMmSIyUmKr7Jly5KWloavry+nTp3C09OT5ORks2OJiIhIMaTT+EXEdCkpKdx9991s2LABAG9vb6ZOnUrv3r1NTibXwtfXl5SUFN2cL5/UrFmT/fv3Y7FYiI6Opnbt2mZHEhERkWJEM/siYpqsrCzatWuHr68vGzZswN3dncmTJ5OSkqKiXwydOXMGi8VidowSY9++fdx5550YhkGdOnVYvHix2ZFERESkGFHZF5FCZ7fbue+++3Bzc+Pnn3/GxcWF//znP6SlpTFo0CCz48l1MgwDDw8Ps2OUKL/++isDBw4EoGvXrrz//vsmJxIREZHiQmVfRAqN3W6nX79+uLi4MH/+fGw2G6NGjSIzM5MXX3zR7HhyA9asWQNA1apVzQ1SAn3++ed8+OGHAIwcOZL+/fubnEhERESKA5V9ESkUw4cPx9XVlW+++QY4dxO37Oxsxo4da3IyyQ/n78TfpUsXc4OUUMOHD2fFihUATJs2jdtvv93kRCIiIlLU6QZ9IlKgRo8ezbvvvkt2djYWi4UHHniAGTNmYLPZzI4m+ahixYocP36cU6dOERAQYHacEmvfvn3Url0bh8NBlSpVOHTokNmRREREpIhS2ReRAjFhwoTcU/QBOnfuzLx583BxcTE5mRQEFxcXsrOzdSf+QpCamkpgYCAZGRl4eXmRlJSEk5OT2bFERESkiFHZF5F8NX36dIYMGUJaWhoArVu3ZtmyZbi7u5ucTAqSxWLBycmJ7Oxss6OUCjk5OVSsWJGTJ0/i5OTE0aNHKV++vNmxREREpAjRNfsiki8WLFiAn58fjz76KGlpaTRt2pRTp06xevVqFf0S7vTp0wD8H3v3HR5VtbZx+DctkwapQEIJvYUkVFFQUZAmYEUsWEBRj+2zt2NBPbZjxS72gmIBbCAdRZAmSElC74GEENLrJNO+PzCjOXRIslOe+7q8IDt79n4GITPvrLXeFRkZaWyQesRqtbJ//34SEhJwuVw0bdqU5cuXGx1LREREahAV+yJySn799VcaNWrEJZdcQl5eHl26dGHv3r2sXLlSa7friVdeeQWA3r17G5yk/lm3bh0XX3wxXq+XPn368PnnnxsdSURERGoIFfsiclL+/PNPmjZtyoABA8jMzKRNmzZs3ryZ5ORkmjVrZnQ8qUY//vgjAHfddZfBSeqn77//nn//+98AjBkzhkceecTgRCIiIlITaM2+iJyQTZs2cf755/u6gDdr1owZM2bQrVs3Q3OJcYKDgykqKlJzPoN9/vnnjBkzBoCLL76Y77//3uBEIiIiYiQV+yJyXPbs2cPgwYPZtGkTAI0aNWLq1Kn069fP4GRiNLP54CQxj8djcBJZuXIlp59+Ol6vl4SEBNatW2d0JBERETGIin0ROars7GwGDhzImjVrAAgNDWXSpEmMGDHC4GRSU5hMJoKDgykoKDA6igDp6ek0b94ct9tN48aNSU1N1dZ8IiIi9ZDW7IvIYRUWFnL22WcTERHBmjVrCA4OZtKkSeTk5KjQF5/Zs2cD0L59e4OTSLmoqCgcDgfBwcFkZGTQoEEDCgsLjY4lIiIi1UzFvohUUFZWxvnnn0+DBg34/fff8ff3580336SgoIBrrrnG6HhSw7z55psAXHLJJQYnkX+yWq0UFBQQExODw+EgJCSEbdu2GR1LREREqpGm8YsIAG63m6uuuoqpU6fi9Xrx8/Pj8ccf57HHHjM6mtRgUVFR7N+/n4KCAoKDg42OI4dx9tln8/vvvwMwd+5cBg0aZHAiERERqQ4a2Rep5zweDzfffDN+fn5MmTIFs9nMfffdR2lpqQp9OaasrCwAFfo12OLFi7n++usBGDx4sG82hoiIiNRtKvZF6rEHH3wQu93OBx98AMC4ceMoLS3l5ZdfNjiZ1BYulwubzWZ0DDmGjz/+mBdffBGAO++8k5tvvtngRCIiIlLVNI1fpB56/vnnefLJJykrK8NkMjFy5Ei+/vprLBaL0dGkFklPTyc6OprmzZuzZ88eo+PIcZgxYwYXXHABAP379+eXX34xOJGIiIhUFY3si9Qjb7/9NgEBATzyyCOUlZUxZMgQHA4HU6ZMUaEvJ+yll14CoG/fvgYnkeM1YsQINm3ahMlk4tdff6Vdu3ZGRxIREZEqopF9kXpg8uTJ/Otf//Jtv3XmmWcye/ZsrbOWUxIbG8vGjRv5448/OO2004yOIycgNzeXqKgoSktLadiwIVlZWVitVqNjiYiISCVSsS9Sh/38889cc8015ObmAtC9e3fmzJlDo0aNjA0mdUJQUBDFxcXoZaR2crlcREVFkZWVhc1mIy0tjcjISKNjiYiISCXRNH6ROmjRokU0adKEESNGkJubS6dOndi9ezerV69WoS+VpqSkBLNZLyO1ldVqJTMzk9jYWJxOJ40bN2b16tVGxxIREZFKondpInXIunXraNGiBeeccw4ZGRm0atWKDRs2sHHjRmJiYoyOJ3WIy+XC6/XSoEEDo6PIKVq/fj3Dhg3D6/XSs2dPvv76a6MjiYiISCVQsS9SB2zfvp127drRrVs39u7dS3R0NCtWrGDnzp107tzZ6HhSB02dOhWAjh07GpxEKsPPP//MvffeC8BVV13F+PHjDU4kIiIip0rFvkgtlp6eTnx8PO3atWP79u1ERESwYMEC0tLS6N27t9HxpA778MMPgYOFodQNr7zyiu//69NPP80VV1xhcCIRERE5FWrQJ1IL5eTkMGTIEFauXAlAw4YN+fTTT7nkkksMTib1RaNGjcjMzKSkpAR/f3+j40gl+v333+nXr59vWv+qVauMjiQiIiInQcW+SC1SUlLCsGHDWLhwIQCBgYG8/fbbjB071tBcUv9YrVbcbrc68ddRe/fupVWrVrjdbqKioti3b5/RkUREROQEaRq/SC1QVlbGBRdcQGBgIAsXLsRut/PKK69QVFSkQl8M4Xa7sdvtRseQKtK8eXMKCwsJCgoiPT2dwMBAHA6H0bFERETkBKjYF6nB3G43V199Nf7+/syYMQObzcb48eNxOBy+Zloi1W3Xrl0AREdHGxtEqpS/vz+FhYU0a9aMkpISgoODff/vRUREpOZTsS9SQ9122234+fkxefJkzGYzd955J2VlZTz11FNGR5N67oUXXgCgX79+BieR6rB371569+6N2+2mdevW/Prrr0ZHEhERkeOgYl+khnn00Uex2Wy8++67AIwZM4bS0lJef/11g5OJHDR//nwAHnzwQYOTSHVZsWIFo0ePBmDAgAFMnDjR4EQiIiJyLGrQJ1JDvPjiizz++OOUlZVhMpm46KKLmDp1KhaLxehoIhUEBATgcDjUnK8eevrppxk/fjwAd955pz6EFBERqcFU7IsY7IMPPuCuu+6ipKQEgPPOO4/p06cTEBBgcDKRwzOZTJjNZtxut9FRxADfffcdI0eOBGDw4MHMmTPH4EQiIiJyOCr2RQwyZcoUxo0bR0FBAQBnnHEGs2fPJiQkxOBkIkfmcrmw2WyEhYWRnZ1tdBwxSGJiIt26dcPr9dKhQwc2b95sdCQRERH5H1qzL1LN5syZQ0REBJdffjkFBQUkJCSwb98+li1bpkJfarxPP/0UgC5duhgbRAyVkJBAdnY2NpuNLVu2EB4ejsvlMjqWiIiI/IOKfZFqsnz5cqKiohg6dCjZ2dm0b9+eHTt2sG7dOqKiooyOJ3JcPv/8cwCuvfZag5OI0UJDQykuLiY0NJScnBwCAwPJzc01OpaIiIj8RdP4RapYcnIyw4cPJyUlBYCYmBhmzJhBfHy8wclETlxERATZ2dk4nU6sVqvRcaSG6NixI1u2bMFkMpGUlKSZHyIiIjWARvZFqsjOnTvp0KED8fHxpKSk0KRJE5YsWcLu3btV6EutlZeXB6BCXyrYvHkzAwcOxOv1EhcXx3fffWd0JBERkXpPxb5IJTtw4ABdu3alTZs2bN26lfDwcGbPnk16ejp9+/Y1Op7IKXG73fj7+xsdQ2qgefPmcccddwAwcuRInn32WYMTiYiI1G8q9kUqSV5eHn379qVx48YkJibSoEEDvv32W7KyshgyZIjR8URO2fr16wFo3ry5wUmkpnrzzTd59913AXjsscfU20FERMRAKvZFTpHD4WDgwIGEhoaybNkyAgICeO+998jPz2fUqFFGxxOpNC+99BIAAwcONDiJ1GS33HILCxYsAOCLL76gT58+BicSERGpn9SgT+Qkud1uLrvsMn788Ue8Xi9+fn48/fTTPPjgg0ZHE6kSrVu3ZteuXezcuZNWrVoZHUdquF27dtG2bVs8Hg/Nmzdnz549RkcSERGpV1TsV6HU1FQaN26MzWYzOopUIrfbzbhx45g0aRIejwer1cr999/P888/b3Q0kSrl7+9PaWkpetmQ4+VwOAgPD6ekpISgoCAyMzPV80FERKSaaBp/FXE4HLRt25Z27drxySef4HQ6jY4kleDuu+/Gbrfz2WefAXDrrbfidDpV6Eu9UFpaisViMTqG1CL+/v4UFxcTFRVFUVERwcHB7N271+hYIiIi9YKK/SridDopLS0lJSWFG264QUV/LffEE0/g5+fH66+/jsfjYfTo0ZSVlfHOO+8YHU2kWjgcDgDCwsIMTiK10b59++jRowdut5uYmBh+//13oyOJiIjUeZrGX0UKCgpo2LDhIcdDQ0O577776N27N5s2bcJut2O32wkMDKRjx4506tQJu91uQGI5nNdee42HH36Y0tJSAEaMGMG0adPw8/MzOJlI9Xrttde45557OO+885g/f77RcaSWGjVqFFOnTgXgww8/ZNy4cQYnEhERqbtU7FeS4uJiVq9ezbp161i7di2rV69m9erVhz23adOm9OjRgwULFuBwOCqsf7VarXTq1In4+HgSEhJISEige/fuREdHV9dTEeDzzz/n1ltvpbi4GIBzzz2XmTNnEhAQYHAyEWOcfvrp/PHHH3z11VdceeWVRseRWmz8+PE8/fTTANx///2+XR5ERESkcqnYP0VJSUm89957TJo0ifz8fGw2G126dCE2NpbJkycDYDKZ8Hq9tGzZkqeeeoqrr74aq9UKgNfrxeVyUVhYyMaNG0lMTPT9l5SURH5+PnBwq6tx48Zx8cUXq7lRFfr++++5/vrrycvLA+C0005jzpw5mros9V5oaCh5eXk4nU7fzy+Rk/X1119z1VVXAQdnTE2fPt3gRCIiInWPiv2TUFJSwtSpU3nvvfdYsmQJTZo0Ydy4cYwaNYrY2Fj8/PwqTOM/XJF/PLxeLykpKfzyyy98/PHH/P7774SHh3PNNddw4403Eh8fX1VPsd755ZdfuPzyy8nKygIgLi6O2bNn06xZM4OTidQMFosFr9eLx+MxOorUEatXr6ZXr154vV66dOlCcnKy0ZFERETqFBX7J8Dr9fLBBx/w73//m+zsbAYOHMi//vUvLrrookO21/N6vdxzzz107979hIv8I9m0aRMff/wxn332GRkZGfTr14+JEyfSuXPnU752ffXnn39ywQUXsG/fPgDatm3LnDlzaNu2rcHJRGoWk8lEYGAgRUVFRkeROiQzM5Po6GhcLheRkZHs27dPM0dEREQqiYr947R3715uvPFG5syZw/XXX8+///1v2rdvb0gWp9PJ9OnTeeSRR9i5cyfjx4/nwQcfPOQDBzmyjRs3MmzYMHbt2gVA8+bNmT59Ot26dTM0l0hNtHLlSnr37k3nzp3ZsGGD0XGkjnG5XERERJCfn4/dbiczM5Pg4GCjY4mIiNR62nrvGLxeL59//jlxcXEkJSUxc+ZMPv74Y8MKfQCbzcall17K2rVrue+++3jiiSfo1asXf/75p2GZaouUlBQ6d+5MbGwsu3btonHjxvz222/s2bNHhb7I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M844g2XLlhkdR8RQV199NZMnTwYOFrM333xzpd9j3759dO7cmV69ejFjxoxqXTZQ2coL/tdee823raGIiBir3hf7TqeTmJgYRo4cyVtvvQXAczM38uHvO2p1oV/OZIKbz27DJa1NdO7cmaCgoEPW5dvtdhwOR7XmKi4uZtGiRcybN4+ff/6ZzZs307FjR2677TbGjBlDSEhIteYREejfvz8LFy7kzTff5I477jA6jojhnn76acaPHw/AnXfeyeuvv16p17/iiitYuHAhGzduJDw8vFKvbYQ777yTjz76iKSkJNq0aWN0HBGReq/eF/sAjz32GG+88QZpaWlsznJy2cSltXLq/pGYgHPKVvLF688ccR3uxIkT+de//lW9wf7i9XpZtGgR77zzjm8K4zXXXMPtt99OQkKCIZlE6qPIyEiysrJwOp21as2wSFWaOnUqo0aNAmDo0KHMmjWrUq47c+ZMhg8fzpdffsno0aMr5ZpGKywsJD4+ntatW7NgwQLN1hMRMZiKfSAlJYW2bdvy0COPsTi4H3tzinHXoT8VswnKsveR9tHteF1lhz1n+PDhzJgxo5qTHSotLY0PP/yQ9957j7S0NG688UZeeuklQkNDjY4mUudZrVbcbrc68Yv8j8TERLp164bX66VTp05s3LjxlK5XVFREly5d6NChA3PmzKlTRfH8+fMZNGhQlS19EBGR46di/y/jx4/nrUW7CelzeZ0a1S/n9Xro5N7NuNMaExISgt1ur/Bf586dMZvNRsf0cTqdfPTRRzz00EMEBgby9ttvc+mllxodS6ROM5lMhizrEakNcnNzady4MU6nk/DwcPbv33/SM2AeeeQRXn31VZKTk2nXrl0lJzXejTfeyLfffsumTZto2rSp0XFEROotFft/yS8qIeGJmWCrvc1xjqWB3crKRwfib7MYHeW4paamcvvtt/Pjjz9yySWX8NZbb+mNg0gV2LZtG+3bt6d169bs2LHD6DgiNZLL5aJRo0bk5ubi5+fH/v37T3jmmcPhoGnTptx44428+OKLVRPUYLm5ubRo0YL77ruPJ5980ug4IiL1Vs0ZyjXYnE2ZdbrQBygodTEjcZ/RMU5Is2bN+P777/n2229ZsmQJ3bp1Y/369UbHEqlzyouOAQMGGJxEpOayWq3k5OTQvn17ysrKCA8PP+HXpOnTp5OTk8O4ceOq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XzkWLVrEZZdd5tuxAqB79+7MnTuXyMhIA5OJiIiIHKQ1+yJySjp27EhhYSFTp07FYrFQUlJC9+7diYqKIi8vz+h4lcrj8XDJJZewceNG5syZY1ihX17gh4SEnPBj/f39+f777zn33HMZMWIEy5cvr+x4ddqjjz6K3W7nnHPO4cCBA1itVm655Ra8Xi+rV69WoS8iIiI1hop9EakUI0eOxOVy8fDDD2Mymdi/fz+hoaH07NnT6GiV5v3332fBggV899139OrVy7AcH374IQBdunQ5qceXF/wJCQmMHTv2kK37pKLi4mL69euH2Wzmueeeo6ysjNDQUKZNm4bT6eTdd981OqKIiIjIIVTsi0ilev755/F4PAwbNgyA1atXYzKZuO666wxOdmrS09N5+OGHGTdunOFT37/44guAU+qP4O/vzyeffMLOnTt56qmnKitanbJs2TKaNm1KUFAQixcvxuv1EhcXx759+8jJyeHSSy81OqKIiIjIEWnNvohUGafTSVxcHFu2bAEOrjN/+eWXuffeew1OduKuuuoqFixYwKZNmwgPDzc0S3h4ODk5OTidTqxW6yld69lnn+WJJ55gxYoVdWoWxql45plnePbZZ30zHiwWC9dccw2ffvqpscFEREREToCKfRGpcvv27SM2Npbc3FwA/Pz8mD17Nv379zc22HGaM2cOQ4cO5fPPP+faa681Og4WiwWv14vH4znlazmdTnr37o3H42HlypX4+flVQsLax+FwMGLECH755RffDgcNGzbk3XffZfTo0QanExERETlxKvZFpNr8+uuvDBkyxLcPeWhoKBs2bCA6OtrgZEfXq1cvgoOD+fXXXzGZTEbHwWQy4e/vT0lJSaVcb82aNfTs2ZOPPvqI66+/vlKuWVusXr2aCy+8kNTUVN+xjh07MnfuXGJiYgxMJiIiInJqtGZfRKpN//79KSsr48UXX8RkMpGbm0vTpk3p2LGj7wOAmiYpKYk///yTu+66y9BCf+vWraSnp7N+/XoAWrRoUWnX7t69O4MHD+b999+vtGvWdK+88gqBgYH07NmT1NRULBYLV155JU6nk02bNqnQFxERkVpPxb6IVLsHHngAj8fDVVddBcCWLVvw8/Nj+PDhBic71GeffUZkZKSh2TweDx06dCA6Opq4uDgACgsLeeSRR9i5c2el3OPmm29m+fLlJCYm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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "G = pg.graph.backend\n", + "\n", + "mapping = {state: f\"State {i}\" for i, state in enumerate(G.nodes())}\n", + "G_labeled = nx.relabel_nodes(G, mapping)\n", + "\n", + "plt.figure(figsize=(10, 7))\n", + "pos = nx.spring_layout(G_labeled, seed=42)\n", + "\n", + "nx.draw(\n", + " G_labeled,\n", + " pos,\n", + " with_labels=True,\n", + " node_size=2000,\n", + " arrows=True\n", + ")\n", + "\n", + "plt.title(\"Policy Graph (State abstraction)\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "4a3f057f-82e2-4758-a188-058a1bbdc423", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### P(s) of each State" + ] + }, + { + "cell_type": "markdown", + "id": "fa61fccb-b611-46b1-be64-96c6cd8072a9", + "metadata": {}, + "source": [ + "This next cell prints the states of the Policy Graph together with their associated metadata. For each state, the number of visits indicates how many times the state appeared in the trajectories collected during the fitting process. The value `p(s)` represents the normalized probability of observing that state." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "11176185-6eed-4e12-a850-369fa191ff5d", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Estado 0: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 78283\n", + " p(s): 0.509\n", + "Estado 1: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 7543\n", + " p(s): 0.049\n", + "Estado 2: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 36876\n", + " p(s): 0.240\n", + "Estado 3: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 4996\n", + " p(s): 0.032\n", + "Estado 4: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 26066\n", + " p(s): 0.170\n" + ] + } + ], + "source": [ + "for i, state in enumerate(pg.states):\n", + " data = pg.states[state]\n", + "\n", + " print(f\"Estado {i}: {state}\")\n", + " print(f\" Times visited: {data.metadata.frequency}\")\n", + " print(f\" p(s): {data.metadata.probability:.3f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "0da5d029-a198-4a2a-92dc-e6bc2aa2f148", + "metadata": {}, + "source": [ + "The most frequent state is `State 0`, with a probability of `0.509`. This state represents the lander centered, upright, stable, and in the descent zone, but without ground contact. `State 2` is also highly frequent, with a probability of `0.240`, and represents the lander with both legs in contact with the ground. This suggests that the agent frequently reaches a stable landing configuration.\n", + "\n", + "`State 4`, with probability `0.170`, corresponds to a stable high-altitude situation before the final descent. `States 1 & 3` have lower probabilities and represent intermediate landing situations where only one leg is touching the ground.\n", + "\n", + "Overall, the state probabilities show that the observed behaviour is concentrated around stable and controlled landing configurations." + ] + }, + { + "cell_type": "markdown", + "id": "1af9e8be-bccf-4977-975f-5f73f72cb1ce", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### P(a|s) for each State" + ] + }, + { + "cell_type": "markdown", + "id": "38a38b39-2512-4f20-9fce-2181d5647e54", + "metadata": {}, + "source": [ + "This cell analyzes the action distribution associated with each state of the Policy Graph. For every discovered state, the method `question1` is used to answer the question: what actions would the agent take in this state?\n", + "\n", + "The output shows the conditional probability `P(a|s)` for each available action. This probability represents how often the agent selected each action when it was observed in the corresponding symbolic state during the fitting process. The numeric action identifiers are converted into readable action names using the `action_names` dictionary.\n", + "\n", + "This information provides an interpretable view of the approximated policy, since it shows the agent's preferred actions in each predicate-based state." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "8334f074-e251-4bf5-a4b5-19e88493ad55", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Estado 0: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Right engine: 0.872\n", + " -> Do nothing: 0.041\n", + " -> Right engine: 0.036\n", + " -> Do nothing: 0.031\n", + " -> Left engine: 0.005\n", + " -> Do nothing: 0.005\n", + " -> Right engine: 0.005\n", + " -> Main engine: 0.005\n", + "\n", + "Estado 1: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Right engine: 0.480\n", + " -> Left engine: 0.220\n", + " -> Left engine: 0.171\n", + " -> Left engine: 0.049\n", + " -> Left engine: 0.049\n", + " -> Main engine: 0.008\n", + " -> Right engine: 0.008\n", + " -> Do nothing: 0.008\n", + " -> Main engine: 0.008\n", + "\n", + "Estado 2: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Main engine: 0.965\n", + " -> Main engine: 0.011\n", + " -> Main engine: 0.011\n", + " -> Do nothing: 0.004\n", + " -> Left engine: 0.002\n", + " -> Right engine: 0.002\n", + " -> Right engine: 0.002\n", + " -> Left engine: 0.002\n", + " -> Right engine: 0.002\n", + "\n", + "Estado 3: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Left engine: 0.710\n", + " -> Right engine: 0.145\n", + " -> Do nothing: 0.092\n", + " -> Main engine: 0.038\n", + " -> Do nothing: 0.008\n", + " -> Right engine: 0.008\n", + "\n", + "Estado 4: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Right engine: 0.742\n", + " -> Left engine: 0.161\n", + " -> Do nothing: 0.032\n", + " -> Left engine: 0.032\n", + " -> Do nothing: 0.032\n" + ] + } + ], + "source": [ + "for i, state in enumerate(pg.states):\n", + "\n", + " print(f\"\\nEstado {i}: {state}\")\n", + " print(\"P(a|s):\")\n", + "\n", + " actions_probs = approximator_loaded.question1(state)\n", + "\n", + " for action, prob in actions_probs:\n", + " print(f\" -> {action_names[action]}: {prob:.3f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "688eb3b8-1720-4ddb-9837-0d458cddec3d", + "metadata": {}, + "source": [ + "Several important patterns can be visualized in this results:\n", + "- The policy is strongly biased toward a single dominant action in every states.\n", + "- The agent rarely chooses the `do nothing` action.\n", + "- Side engines are used much more frequently than the main engine. However, when the rocket has landed as is the case of `state 2`, the most probable action is `main engine`.\n", + "- Some action distributions appear asymmetric, which may indicate policy bias or imperfect convergence.\n", + "\n", + "In conclusion, the no-contact descent states, the policy is dominated by lateral engine corrections. In the one-leg contact states, the agent also performs corrective actions, which can be interpreted as attempts to stabilize the landing. Finally, the both-legs contact state is strongly associated with the main engine." + ] + }, + { + "cell_type": "markdown", + "id": "594c41bd-04c7-475d-b9c6-83b94469760f", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### P(s', a|s) for each State" + ] + }, + { + "cell_type": "markdown", + "id": "8bbe993e-dc54-4596-beb0-d07de67a472d", + "metadata": {}, + "source": [ + "This cell prints all the transitions stored in the Policy Graph. Each transition represents an observed relation of the form state-action-next state. For each transition, the output shows the origin state, the action selected by the agent, the destination state, the number of times the transition was observed, and its conditional probability.\n", + "\n", + "The value `p(s_to, a | s_from)` represents the probability of observing both the action and the destination state given the origin state. Therefore, it is more specific than `P(a|s)`, since it also includes the resulting state after executing the action." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "73b07025-350d-47c8-ad9c-1522cf3c3283", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Transition 0\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 8\n", + " p(s_to,a | s_from): 0.041\n", + "\n", + "Transition 1\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 2\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 170\n", + " p(s_to,a | s_from): 0.872\n", + "\n", + "Transition 3\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 4\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 7\n", + " p(s_to,a | s_from): 0.036\n", + "\n", + "Transition 5\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 6\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 6\n", + " p(s_to,a | s_from): 0.031\n", + "\n", + "Transition 7\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 8\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 21\n", + " p(s_to,a | s_from): 0.171\n", + "\n", + "Transition 9\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 10\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 6\n", + " p(s_to,a | s_from): 0.049\n", + "\n", + "Transition 11\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 12\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 13\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 6\n", + " p(s_to,a | s_from): 0.049\n", + "\n", + "Transition 14\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 59\n", + " p(s_to,a | s_from): 0.480\n", + "\n", + "Transition 15\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 27\n", + " p(s_to,a | s_from): 0.220\n", + "\n", + "Transition 16\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 17\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.002\n", + "\n", + "Transition 18\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.002\n", + "\n", + "Transition 19\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 6\n", + " p(s_to,a | s_from): 0.011\n", + "\n", + "Transition 20\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.002\n", + "\n", + "Transition 21\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.002\n", + "\n", + "Transition 22\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.002\n", + "\n", + "Transition 23\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 6\n", + " p(s_to,a | s_from): 0.011\n", + "\n", + "Transition 24\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.004\n", + "\n", + "Transition 25\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 528\n", + " p(s_to,a | s_from): 0.965\n", + "\n", + "Transition 26\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 93\n", + " p(s_to,a | s_from): 0.710\n", + "\n", + "Transition 27\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 19\n", + " p(s_to,a | s_from): 0.145\n", + "\n", + "Transition 28\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 29\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 12\n", + " p(s_to,a | s_from): 0.092\n", + "\n", + "Transition 30\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 5\n", + " p(s_to,a | s_from): 0.038\n", + "\n", + "Transition 31\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 32\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 23\n", + " p(s_to,a | s_from): 0.742\n", + "\n", + "Transition 33\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.032\n", + "\n", + "Transition 34\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.032\n", + "\n", + "Transition 35\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 5\n", + " p(s_to,a | s_from): 0.161\n", + "\n", + "Transition 36\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.032\n", + "\n" + ] + } + ], + "source": [ + "for i, transition in enumerate(pg.transitions):\n", + " from_state = transition.from_state\n", + " to_state = transition.to_state\n", + " action = transition.transition.action\n", + "\n", + " print(f\"Transition {i}\")\n", + " print(f\"From: {from_state}\")\n", + " print(f\"Action: {action_names[action]}\")\n", + " print(f\"To: {to_state}\")\n", + " print(f\" Times visited: {transition.transition.frequency}\")\n", + " print(f\" p(s_to,a | s_from): {transition.transition.probability:.3f}\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "1a9df77a-6702-42cf-ac15-a07921ebca6c", + "metadata": {}, + "source": [ + "The most frequent transitions describe the final landing process. From the high-altitude stable state, the agent usually moves into the descent zone. From the no-contact descent state, the dominant transition leads to a one-leg contact state. From the one-leg contact states, the most relevant transitions lead to the both-legs contact state, which represents a stable landing configuration.\n", + "\n", + "Some transitions have very low probabilities and correspond to rare behaviours observed during the approximation process. The self-loop in the both-legs contact state with the main engine should be interpreted carefully, since the discretized state may group together continuous observations that are similar but not exactly equivalent. Overall, the transition probabilities show that the Policy Graph captures meaningful patterns of the trained agent's landing behaviour. The learned landing process can be summarized as:\n", + "\n", + "Hovering --> Single-leg contact --> Both-leg contact --> Stable landed state" + ] + }, + { + "cell_type": "markdown", + "id": "0c8ed075-845a-4370-aeb9-2478eb5f4f60", + "metadata": {}, + "source": [ + "### Registering a Desire in the Approximator (First Attempt)" + ] + }, + { + "cell_type": "markdown", + "id": "b262b6b2-c1b4-44d3-a2f4-225af1ef038e", + "metadata": {}, + "source": [ + "This cell creates a new graph representation prepared for intention-aware analysis. Instead of using the default state metadata, the graph is initialized with `IntentionalStateMetadata`. This type of metadata allows each state to store not only basic information such as frequency and probability, but also information related to desires and inferred intentions.\n", + "\n", + "This step is required before building an Intention Policy Graph, because the intention-aware approximator expects the policy representation to use a metadata class capable of storing intentional information." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "22a9cc19-dac4-4648-a5c4-3fc6fd45b7fb", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.desire import IntentionalStateMetadata\n", + "\n", + "representation = GraphRepresentation(\n", + " state_metadata_class=IntentionalStateMetadata\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "751e16de-5a81-4cbd-99d0-bd1784f64291", + "metadata": {}, + "source": [ + "This cell creates an `IntentionAwarePolicyApproximator`, which will be used to construct an intention-aware representation of the trained DQN policy. Unlike a basic policy approximator, this class is prepared to work with desires and intentions, allowing the resulting graph to be extended from a Policy Graph into an Intention Policy Graph.\n", + "\n", + "The approximator receives the discretizer, the intention-compatible graph representation, the LunarLander environment, and the trained agent. During the fitting process, it will observe the agent interacting with the environment, discretize the continuous observations into predicate-based states, and store the observed transitions in the graph. Since the graph representation uses `IntentionalStateMetadata`, the resulting states will also be able to store intention-related information as I said before." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "8d5ccec3-29cd-409d-a2bf-e343d7587d4d", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon import IntentionAwarePolicyApproximator\n", + "\n", + "approximator = IntentionAwarePolicyApproximator(\n", + " discretizer=discretizer,\n", + " policy_representation=representation,\n", + " environment=env,\n", + " agent=agent,\n", + " verbose=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "2d73a8f1-f643-47c1-ac6e-31806fcacb6e", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Fit 500" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "feffe2d2-fbad-4374-bc1e-aba925401757", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initiating mapping of the DQN policy to pgeon...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Fitting policy approximator...: 100%|█████████████████████████████████████| 500/500 [00:49<00:00, 10.06it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡Mapping completed!\n", + "Discovered states: 5\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(\"Initiating mapping of the DQN policy to pgeon...\")\n", + "approximator.fit(n_episodes=500)\n", + "\n", + "print(f\"¡Mapping completed!\")\n", + "print(f\"Discovered states: {len(list(approximator.policy_representation.states))}\")" + ] + }, + { + "cell_type": "markdown", + "id": "e761bb09-b545-4fa5-a319-6fb9a05792e9", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Save Fit" + ] + }, + { + "cell_type": "markdown", + "id": "9ca92daa-5dda-4c4f-93c3-4906ec350269", + "metadata": {}, + "source": [ + "The approximation can be saved using the following code as was done with the PG approximator." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "68a685ab-61f8-48f1-8d41-66681355e04a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator saved successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_intention_fit_500_example.dill\", \"wb\") as f:\n", + " dill.dump(approximator, f)\n", + "\n", + "print(\"¡DQN approximator saved successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "f8d9d736-c868-48c9-b0fb-48ef0c01bcf5", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Load Fit" + ] + }, + { + "cell_type": "markdown", + "id": "0d906381-f886-48f7-8db1-02555bebaa49", + "metadata": {}, + "source": [ + "You can load the save policy with the next code." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "53425e2a-fbd1-4687-a69a-ff42533df841", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator loaded successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_intention_fit_500_example.dill\", \"rb\") as f:\n", + " approximator = dill.load(f)\n", + "\n", + "print(\"¡DQN approximator loaded successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "7880afb2-b1f3-4ea8-8c86-38569aae106d", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Declaring the desire and registering in the Approximator" + ] + }, + { + "cell_type": "markdown", + "id": "33e09073-98eb-4abf-9d0e-f2123443cf01", + "metadata": {}, + "source": [ + "Here we define a symbolic goal state using a set of predicates. Each predicate represents a relevant condition of the LunarLander environment. In this case, the goal state requires the lander to be upright, centered, and in contact with the ground with both legs.\n", + "\n", + "This goal state does not describe the full environment state, but only the subset of conditions that are relevant for the desired behaviour. Therefore, it can be used later to define a desire associated with achieving a stable landing configuration." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "08a0d0ae-70c9-4b23-be32-ecabaeb92ea1", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.discretizer import Predicate, PredicateBasedState\n", + "\n", + "goal_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.UPRIGHT),\n", + " Predicate(Contact.BOTH_LEGS),\n", + " Predicate(XPos.CENTER_POS)\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "fe896d35-1f83-4f32-8d86-25a79e9fd33e", + "metadata": {}, + "source": [ + "This next cell defines a desire named `rest_after_landing`. The desire is composed with the goal state defined before and an associated action. The associated action is `Action(0)`, which corresponds to `doing nothing`.\n", + "\n", + "Therefore, this desire expresses that, once the lander has reached a stable landing configuration, the expected behaviour is to remain still and avoid activating any engine. This desire will later be used to analyze whether the agent's policy is aligned with this interpretable objective." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "a5ee911d-ebab-41da-9f9c-8892687a5edc", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.desire import Desire\n", + "from pgeon.discretizer import Action\n", + "\n", + "rest_after_landing = Desire(\n", + " name=\"rest_after_landing\",\n", + " action=Action(0),\n", + " clause=goal_state\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "00eb8637-3ca1-469d-bdd1-7cf00b25f382", + "metadata": {}, + "source": [ + "Once the desire is created, it is registered in the IPG and it is calculated the statistics of this desire." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "c77d9792-8f76-4e65-95ba-e8712fede3a8", + "metadata": {}, + "outputs": [], + "source": [ + "approximator.register_desire(rest_after_landing)" + ] + }, + { + "cell_type": "markdown", + "id": "86ba9ec7-29cc-42f1-8907-8c48afb86532", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Computing P(a∊ Ad | s∊Sd)" + ] + }, + { + "cell_type": "markdown", + "id": "4a9ce8f5-0797-4943-9113-3adf37542cee", + "metadata": {}, + "source": [ + "The method `compute_desire_statistics` identifies all states that satisfy a given desire and returns both the probability of executing the desire-related action in those states and the corresponding state descriptions." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "1704789c-2859-4eda-a86a-83d019bd3457", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([0.003656307129798903],\n", + " [[('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]])" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "approximator.compute_desire_statistics(rest_after_landing)" + ] + }, + { + "cell_type": "markdown", + "id": "00a2b9de-5807-4841-a954-0b426250e957", + "metadata": {}, + "source": [ + "The result shows that only one symbolic state satisfies the clause of the desire. This state corresponds to a stable landing configuration, where the lander is centered, upright, has no horizontal movement, no angular velocity, and both legs are in contact with the ground. However, the probability of executing the desired action in this state is only approximately 0.0036.\n", + "\n", + "This indicates that the learned policy is not aligned with the defined desire. Although the agent reaches the symbolic state associated with a successful landing, it almost never selects the action `Do nothing` in that state. Therefore, the desire analysis reveals a mismatch between an interpretable expected behaviour and the behaviour captured from the trained DQN policy. It is expected that once the agent land correctly it does not move anymore." + ] + }, + { + "cell_type": "markdown", + "id": "ec97caf4-fa79-409c-a3bd-98786709af07", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Computing Id(s)" + ] + }, + { + "cell_type": "markdown", + "id": "a088a30d-d6b8-4add-baaa-63d7c7cc64f5", + "metadata": {}, + "source": [ + "This cell prints the intention values associated with each state of the graph. For every symbolic state, `get_intentions` returns the desires linked to that state and their corresponding intention value `I_d(s)`." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "f797920f-cc20-4211-a767-9bf09cac2e90", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.08129309914492598\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.06298460108429736\n", + "\n", + "State: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.10240405880570613\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.07489236263422541\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.07197581477705343\n", + "\n" + ] + } + ], + "source": [ + "for s in approximator.get_all_state_ids():\n", + " intentions = approximator.get_intentions(s)\n", + " \n", + " print(f\"State: {s}\")\n", + " \n", + " for d, I_ds in intentions.items():\n", + " print(f\" Desire: {d.name} -> I_d(s) = {I_ds}\")\n", + " \n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "af564bfb-1164-47d9-8ef2-920f3572ea7a", + "metadata": {}, + "source": [ + "In this example, only the desire `rest_after_landing` is evaluated. The highest value appears in the state where the lander has both legs in contact with the ground, which is coherent with the definition of the desire. The one-leg contact states also obtain non-zero values, since they are close to the final landing condition.\n", + "\n", + "However, all intention values are relatively low. This suggests that, although the agent reaches states related to the desired landing configuration, its behaviour is not strongly aligned with the expected action of the desire, which was to do nothing after landing." + ] + }, + { + "cell_type": "markdown", + "id": "3963e62b-2f2e-4c28-9c28-73fcdc9e0d4c", + "metadata": {}, + "source": [ + "### Registering more Desires in the Approximator (Second Attempt)" + ] + }, + { + "cell_type": "markdown", + "id": "cba3f667-1744-466a-9120-a0ea53f4c836", + "metadata": {}, + "source": [ + "The new desire, `stable_rocket`, represents a general stability condition. It is satisfied when the lander is upright and has no angular velocity. The associated action is `Do nothing`, meaning that if the rocket is already stable in terms of orientation, the expected behaviour is to avoid unnecessary corrections." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "eb89a9e0-60f7-49d4-8883-514dff3d3343", + "metadata": {}, + "outputs": [], + "source": [ + "goal_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.UPRIGHT),\n", + " Predicate(AngularVel.NO_ROTATION)\n", + " }\n", + ")\n", + "\n", + "stable_rocket = Desire(\n", + " name=\"stable_rocket\",\n", + " action=Action(0),\n", + " clause=goal_state\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "1626be97-9307-45d8-a0d0-53005159d75d", + "metadata": {}, + "outputs": [], + "source": [ + "approximator.register_desire(stable_rocket)" + ] + }, + { + "cell_type": "markdown", + "id": "0602a684-f5e0-476d-9671-3ef6a3fe9a4f", + "metadata": {}, + "source": [ + "The other desire, `center_controlled_descending`, represents a more specific controlled descent condition. It requires the lander to be upright, not rotating, horizontally centered, and with a controlled vertical velocity. The associated action is also `Do nothing`, meaning that if the lander is already centered and descending in a stable way, the expected behaviour is to remain inactive.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "dda5e7e3-6947-4ed4-8102-5de5d5ac14ab", + "metadata": {}, + "outputs": [], + "source": [ + "goal_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.UPRIGHT),\n", + " Predicate(AngularVel.NO_ROTATION),\n", + " Predicate(XPos.CENTER_POS),\n", + " Predicate(YVel.HOVERING)\n", + " }\n", + ")\n", + "\n", + "center_controlled_descending = Desire(\n", + " name=\"center_controlled_descending\",\n", + " action=Action(0),\n", + " clause=goal_state\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "id": "49485d66-3034-4092-a487-2739018d5625", + "metadata": {}, + "outputs": [], + "source": [ + "approximator.register_desire(center_controlled_descending)" + ] + }, + { + "cell_type": "markdown", + "id": "fad6668e-7770-4813-ac1b-979557525ed4", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Computing P(a∊ Ad | s∊Sd)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "ade3cf97-ab7f-43a9-9eb6-281d89b6d48a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([0.09923664122137404,\n", + " 0.06451612903225806,\n", + " 0.003656307129798903,\n", + " 0.008130081300813009,\n", + " 0.07692307692307693],\n", + " [[('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]])" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "approximator.compute_desire_statistics(stable_rocket)" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "id": "025c4a0a-a8fe-4bc2-9119-db4286eaa80c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([0.09923664122137404,\n", + " 0.06451612903225806,\n", + " 0.003656307129798903,\n", + " 0.008130081300813009,\n", + " 0.07692307692307693],\n", + " [[('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]])" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "approximator.compute_desire_statistics(center_controlled_descending)" + ] + }, + { + "cell_type": "markdown", + "id": "e3b7b1cf-6ebc-4bff-9174-791560180168", + "metadata": {}, + "source": [ + "The results for `stable_rocket` and `center_controlled_descending` are identical because all states discovered in the Policy Graph satisfy the predicates required by both desires. Although the second desire is more restrictive, every state in the graph is already upright, centered, non-rotating, and classified as hovering.\n", + "\n", + "The returned probabilities correspond to the probability of executing the desired action, `Do nothing`, in each state that satisfies the desire. These probabilities are low in all cases. The highest value is approximately 0.099, while the both-legs contact state has a probability of only approximately 0.0036.\n", + "\n", + "This indicates that, even in states that appear stable according to the symbolic abstraction, the trained agent rarely chooses to remain inactive. Therefore, these desires reveal that the learned policy is not strongly aligned with the expected action `Do nothing`. This may be because the agent has learned to perform constant corrections, or because the discretization groups together continuous situations that still require control actions." + ] + }, + { + "cell_type": "markdown", + "id": "e042f390-c5ef-41b9-927b-90e3c9f9f324", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Computing Id(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "eb4cde67-e262-4a95-8e43-d8cd3be5fac1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.08129309914492598\n", + " Desire: stable_rocket -> I_d(s) = 0.22392419467708874\n", + " Desire: center_controled_descending -> I_d(s) = 0.22392419467708874\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.06298460108429736\n", + " Desire: stable_rocket -> I_d(s) = 0.3143789598250324\n", + " Desire: center_controled_descending -> I_d(s) = 0.3143789598250324\n", + "\n", + "State: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.10240405880570613\n", + " Desire: stable_rocket -> I_d(s) = 0.1568512016860673\n", + " Desire: center_controled_descending -> I_d(s) = 0.1568512016860673\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.07489236263422541\n", + " Desire: stable_rocket -> I_d(s) = 0.15005727140368555\n", + " Desire: center_controled_descending -> I_d(s) = 0.15005727140368555\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.07197581477705343\n", + " Desire: stable_rocket -> I_d(s) = 0.2725255466124548\n", + " Desire: center_controled_descending -> I_d(s) = 0.2725255466124548\n", + "\n" + ] + } + ], + "source": [ + "for s in approximator.get_all_state_ids():\n", + " intentions = approximator.get_intentions(s)\n", + " \n", + " print(f\"State: {s}\")\n", + " \n", + " for d, I_ds in intentions.items():\n", + " print(f\" Desire: {d.name} -> I_d(s) = {I_ds}\")\n", + " \n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "efe3c143-2d7a-42c2-af4b-ecbc878de929", + "metadata": {}, + "source": [ + "The intention values show how strongly each state is associated with each defined desire. The desires `stable_rocket` and `center_controlled_descending` obtain exactly the same values in all states because, in the generated Policy Graph, all discovered states satisfy the predicates required by both desires. Although the second desire is more specific, the available graph only contains states that are already upright, centered, non-rotating, and classified as hovering.\n", + "\n", + "The desire `rest_after_landing` obtains lower values in all states. Its highest value appears in the state where both legs are in contact with the ground, which is coherent with the definition of the desire. However, the value is still low, indicating that the agent does not strongly express the expected behaviour of doing nothing after landing.\n", + "\n", + "The highest intention values for `stable_rocket` and `center_controlled_descending` appear in the no-contact states, especially the high-altitude state. This suggests that the trained policy is more strongly associated with maintaining stability during flight than with remaining inactive after landing." + ] + }, + { + "cell_type": "markdown", + "id": "5abe90ec-0874-428c-827d-b96955bae7ed", + "metadata": {}, + "source": [ + "### Trying Saving Policy Representation in CSV and GRAM extension" + ] + }, + { + "cell_type": "markdown", + "id": "3467527d-664d-4849-b77c-0812ff61d4b8", + "metadata": {}, + "source": [ + "To avoid having to recreate all the policy representation we can save it in different formats such as CSV or GRAM. In this part we have an example of both options." + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "id": "1a45b47d-b765-4e64-bf41-4be82b1ad3a8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator loaded successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_fit_500_example.dill\", \"rb\") as f:\n", + " approximator = dill.load(f)\n", + "\n", + "print(\"¡DQN approximator loaded successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "cb8994a3", + "metadata": {}, + "source": [ + "Saving as csv." + ] + }, + { + "cell_type": "markdown", + "id": "a50bfa00-e5ac-4ea5-9082-196d0f5d2e80", + "metadata": {}, + "source": [ + "#### Saving as CSV" + ] + }, + { + "cell_type": "markdown", + "id": "a98f1334-2f96-4777-9666-5738cc3b1ed1", + "metadata": {}, + "source": [ + "In the case of CSV we need to save the nodes and edges." + ] + }, + { + "cell_type": "code", + "execution_count": 84, + "id": "d0e4e0bf-ddcc-41ef-a01f-bd5fd69196e9", + "metadata": {}, + "outputs": [], + "source": [ + "from pathlib import Path\n", + "\n", + "approximator.policy_representation.save_csv(\n", + " discretizer=approximator.discretizer,\n", + " nodes_path=Path(\"policy_nodes.csv\"),\n", + " edges_path=Path(\"policy_edges.csv\"),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "67a636cc-0760-40f1-97e3-a31360e63d3c", + "metadata": {}, + "source": [ + "#### Saving as GRAM" + ] + }, + { + "cell_type": "markdown", + "id": "870a34e3-fe15-4eb7-ba0a-f793109d45f0", + "metadata": {}, + "source": [ + "In the case of GRAM it is not necessary to save separate node and edge files as in CSV, saving nodes and edges, because it is save the way to create the PG." + ] + }, + { + "cell_type": "code", + "execution_count": 85, + "id": "8f733f3d-10dc-45f5-a87f-1989b207fc95", + "metadata": {}, + "outputs": [], + "source": [ + "approximator.policy_representation.save_gram(\n", + " discretizer=approximator.discretizer,\n", + " path=Path(\"policy.gram\"),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "77a36322-5258-4792-bf2d-ded6b8fc4110", + "metadata": {}, + "source": [ + "#### Loading from CSV" + ] + }, + { + "cell_type": "markdown", + "id": "eef8a983-f19c-4fd6-85f0-21b9d476112f", + "metadata": {}, + "source": [ + "This is the form to load the policy from a CSV and how to recreate the approximator." + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "id": "59cd2990-4732-49ac-a85d-b99798c599f7", + "metadata": {}, + "outputs": [], + "source": [ + "loaded_policy = GraphRepresentation.load_csv(\n", + " graph_backend=\"networkx\",\n", + " discretizer=approximator.discretizer,\n", + " nodes_path=Path(\"policy_nodes.csv\"),\n", + " edges_path=Path(\"policy_edges.csv\"),\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 87, + "id": "198fb9cd-96ae-488b-beaa-2e393dd81449", + "metadata": {}, + "outputs": [], + "source": [ + "new_approximator = PolicyApproximatorFromBasicObservation(\n", + " agent=agent,\n", + " environment=env,\n", + " discretizer=discretizer,\n", + " policy_representation=loaded_policy,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 88, + "id": "3ca6a57c-69b1-4dd6-8958-5521aa2e3e3f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initiating mapping of the DQN policy to pgeon...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Fitting policy approximator...: 100%|█████████████████████████████████████| 500/500 [00:48<00:00, 10.31it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡Mapping completed!\n", + "Discovered states: 5\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# Auto mapping of 500 episodes\n", + "print(\"Initiating mapping of the DQN policy to pgeon...\")\n", + "new_approximator.fit(n_episodes=500)\n", + "\n", + "print(f\"¡Mapping completed!\")\n", + "print(f\"Discovered states: {len(list(approximator.policy_representation.states))}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 89, + "id": "5b89f162-3182-47e1-a69e-8a898a16a59f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of states in the PG: 5\n", + "Number of transitions in the PG: 37\n" + ] + } + ], + "source": [ + "pg = new_approximator.policy_representation\n", + "print(f'Number of states in the PG: {len(list(pg.states))}')\n", + "print(f'Number of transitions in the PG: {len(list(pg.transitions))}')" + ] + }, + { + "cell_type": "markdown", + "id": "261d0dcb-b0bc-4f7c-9d31-a9d622fab981", + "metadata": {}, + "source": [ + "#### Loading from GRAM" + ] + }, + { + "cell_type": "markdown", + "id": "aa1768f1-9ac2-4083-aadd-22e351eccb11", + "metadata": {}, + "source": [ + "And this is the form to load the policy from a GRAM and how to recreate the approximator." + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "b01370b1-9ff4-4eeb-952a-41d750d2eb47", + "metadata": {}, + "outputs": [], + "source": [ + "loaded_policy = GraphRepresentation.load_gram(\n", + " graph_backend=\"networkx\",\n", + " discretizer=approximator.discretizer,\n", + " path=Path(\"policy.gram\"),\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 91, + "id": "5de83b47-3425-4f47-a96f-bcf902fc14f6", + "metadata": {}, + "outputs": [], + "source": [ + "new_approximator = PolicyApproximatorFromBasicObservation(\n", + " agent=agent,\n", + " environment=env,\n", + " discretizer=discretizer,\n", + " policy_representation=loaded_policy,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "id": "199b9b64-5bab-472f-9895-391ba8f3109f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initiating mapping of the DQN policy to pgeon...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Fitting policy approximator...: 100%|█████████████████████████████████████| 500/500 [00:49<00:00, 10.19it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡Mapping completed!\n", + "Discovered states: 5\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# Auto mapping of 500 episodes\n", + "print(\"Initiating mapping of the DQN policy to pgeon...\")\n", + "new_approximator.fit(n_episodes=500)\n", + "\n", + "print(f\"¡Mapping completed!\")\n", + "print(f\"Discovered states: {len(list(approximator.policy_representation.states))}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "id": "bbb4c3f3-8a5c-4d52-a21c-e41a666682b0", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of states in the PG: 5\n", + "Number of transitions in the PG: 37\n" + ] + } + ], + "source": [ + "pg = new_approximator.policy_representation\n", + "print(f'Number of states in the PG: {len(list(pg.states))}')\n", + "print(f'Number of transitions in the PG: {len(list(pg.transitions))}')" + ] + }, + { + "cell_type": "markdown", + "id": "2f75b8fb-04c7-4c20-8e13-57ce5f230488", + "metadata": {}, + "source": [ + "### Trying Saving Approximators in PICKLE extension" + ] + }, + { + "cell_type": "markdown", + "id": "14666f83-d2b3-4612-833a-d068d6a1691c", + "metadata": {}, + "source": [ + "We can also save the approximator with the Pickle extension instead of saving the policy." + ] + }, + { + "cell_type": "markdown", + "id": "e946cd44-52ec-4204-adba-926e95257581", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Saving" + ] + }, + { + "cell_type": "code", + "execution_count": 94, + "id": "b626f386-c52b-4b19-a432-18784ff5cfee", + "metadata": {}, + "outputs": [], + "source": [ + "new_approximator.save(\"pickle\", \"./model.pickle\")" + ] + }, + { + "cell_type": "markdown", + "id": "d89d2060-46b2-4bf2-ab4a-59591c558e51", + "metadata": {}, + "source": [ + "#### Loading" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "id": "67391090-ffd3-40ed-8174-bc7827bb2107", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon import PolicyApproximatorFromBasicObservation\n", + "\n", + "approximator_loaded = PolicyApproximatorFromBasicObservation.from_pickle(\"./model.pickle\")" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "id": "542c2eb4-610b-4946-a2a5-cdb73aca56bc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initiating mapping of the DQN policy to pgeon...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Fitting policy approximator...: 100%|█████████████████████████████████████| 500/500 [00:50<00:00, 9.98it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡Mapping completed!\n", + "Discovered states: 5\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# Auto mapping of 500 episodes\n", + "print(\"Initiating mapping of the DQN policy to pgeon...\")\n", + "approximator_loaded.fit(n_episodes=500)\n", + "\n", + "print(f\"¡Mapping completed!\")\n", + "print(f\"Discovered states: {len(list(approximator.policy_representation.states))}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "id": "701c8ecb-5a13-4d44-af97-b70c8c254b0c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of states in the PG: 5\n", + "Number of transitions in the PG: 37\n" + ] + } + ], + "source": [ + "pg = approximator_loaded.policy_representation\n", + "print(f'Number of states in the PG: {len(list(pg.states))}')\n", + "print(f'Number of transitions in the PG: {len(list(pg.transitions))}')" + ] + }, + { + "cell_type": "markdown", + "id": "1b8911d0-86dc-4c6b-9873-4db37ef139c8", + "metadata": {}, + "source": [ + "### Trying Saving Intention-aware Policy Representation in CSV and GRAM extension" + ] + }, + { + "cell_type": "markdown", + "id": "8d328249-c6f3-4b28-b395-cebd9899ff16", + "metadata": {}, + "source": [ + "As we did with the PG, we can also save the IPG in CSV or GRAM extension files." + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "id": "491657e4-6d8f-46a3-836e-81691d1f92d9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator loaded successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_intention_fit_500_example.dill\", \"rb\") as f:\n", + " approximator = dill.load(f)\n", + "\n", + "print(\"¡DQN approximator loaded successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "5440239c-7ac4-46ed-ae69-9efc05077d01", + "metadata": {}, + "source": [ + "#### Saving as CSV" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "id": "57f9b9ce-d715-4256-b96f-c3654026d35c", + "metadata": {}, + "outputs": [], + "source": [ + "approximator.policy_representation.save_csv(\n", + " discretizer=approximator.discretizer,\n", + " nodes_path=Path(\"pg_intention_nodes.csv\"),\n", + " edges_path=Path(\"pg_intention_edges.csv\"),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "a8a36135-19c7-4232-858c-e402a98c4c62", + "metadata": {}, + "source": [ + "#### Saving as GRAM" + ] + }, + { + "cell_type": "code", + "execution_count": 100, + "id": "daa50853-3faa-46c0-9ce5-7f6e30830d74", + "metadata": {}, + "outputs": [], + "source": [ + "approximator.policy_representation.save_gram(\n", + " discretizer=approximator.discretizer,\n", + " path=Path(\"pg_intention.gram\"),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "47d5887b-634d-425c-b240-ccdfa28ac129", + "metadata": {}, + "source": [ + "#### Loading from CSV" + ] + }, + { + "cell_type": "code", + "execution_count": 101, + "id": "31f7f3a5-b9bd-48ea-a429-c6a45b90865a", + "metadata": {}, + "outputs": [], + "source": [ + "loaded_policy = GraphRepresentation.load_csv(\n", + " graph_backend=\"networkx\",\n", + " discretizer=approximator.discretizer,\n", + " nodes_path=Path(\"pg_intention_nodes.csv\"),\n", + " edges_path=Path(\"pg_intention_edges.csv\"),\n", + ")\n", + "\n", + "loaded_policy.state_metadata_class = IntentionalStateMetadata" + ] + }, + { + "cell_type": "code", + "execution_count": 102, + "id": "71680500-9198-4cca-a120-0576c1bb9139", + "metadata": {}, + "outputs": [], + "source": [ + "new_intention_approximator = IntentionAwarePolicyApproximator(\n", + " agent=agent,\n", + " environment=env,\n", + " discretizer=discretizer,\n", + " policy_representation=loaded_policy,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 103, + "id": "571d2663-f965-4d43-82e5-d2c59021ce4a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initiating mapping of the DQN policy to pgeon...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Fitting policy approximator...: 100%|█████████████████████████████████████| 500/500 [00:48<00:00, 10.38it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡Mapping completed!\n", + "Discovered states: 5\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# Auto mapping of 500 episodes\n", + "print(\"Initiating mapping of the DQN policy to pgeon...\")\n", + "new_intention_approximator.fit(n_episodes=500)\n", + "\n", + "print(f\"¡Mapping completed!\")\n", + "print(f\"Discovered states: {len(list(approximator.policy_representation.states))}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 104, + "id": "802e210b-cd2b-4cae-805d-dc714b1e9eed", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of states in the PG: 5\n", + "Number of transitions in the PG: 37\n" + ] + } + ], + "source": [ + "pg = new_intention_approximator.policy_representation\n", + "print(f'Number of states in the PG: {len(list(pg.states))}')\n", + "print(f'Number of transitions in the PG: {len(list(pg.transitions))}')" + ] + }, + { + "cell_type": "markdown", + "id": "b5546288-b938-4bca-a3fa-d959f2a5f8d0", + "metadata": {}, + "source": [ + "#### Loading from GRAM" + ] + }, + { + "cell_type": "code", + "execution_count": 105, + "id": "3952917d-f97a-4848-854a-4032b5ec19f8", + "metadata": {}, + "outputs": [], + "source": [ + "loaded_policy = GraphRepresentation.load_gram(\n", + " graph_backend=\"networkx\",\n", + " discretizer=approximator.discretizer,\n", + " path=Path(\"pg_intention.gram\"),\n", + ")\n", + "\n", + "loaded_policy.state_metadata_class = IntentionalStateMetadata" + ] + }, + { + "cell_type": "code", + "execution_count": 106, + "id": "29b8054f-26ee-4fc5-8efd-722909436987", + "metadata": {}, + "outputs": [], + "source": [ + "new_intention_approximator = IntentionAwarePolicyApproximator(\n", + " agent=agent,\n", + " environment=env,\n", + " discretizer=discretizer,\n", + " policy_representation=loaded_policy,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "id": "f44c55c2-1a2a-40de-bd7f-3fdac1ab6327", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initiating mapping of the DQN policy to pgeon...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Fitting policy approximator...: 100%|█████████████████████████████████████| 500/500 [00:49<00:00, 10.08it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡Mapping completed!\n", + "Discovered states: 5\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# Auto mapping of 500 episodes\n", + "print(\"Initiating mapping of the DQN policy to pgeon...\")\n", + "new_intention_approximator.fit(n_episodes=500)\n", + "\n", + "print(f\"¡Mapping completed!\")\n", + "print(f\"Discovered states: {len(list(approximator.policy_representation.states))}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "id": "23a18a8c-f9ca-464b-b0c2-9cf3fc3f7587", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of states in the PG: 5\n", + "Number of transitions in the PG: 37\n" + ] + } + ], + "source": [ + "pg = new_intention_approximator.policy_representation\n", + "print(f'Number of states in the PG: {len(list(pg.states))}')\n", + "print(f'Number of transitions in the PG: {len(list(pg.transitions))}')" + ] + }, + { + "cell_type": "markdown", + "id": "79215e3f-65d4-4f17-bb36-a9e1bb22087e", + "metadata": {}, + "source": [ + "### Trying Saving Intention-aware Policy Approximators in PICKLE extension" + ] + }, + { + "cell_type": "markdown", + "id": "6dc076f6-4111-4b1d-b047-882b770dd429", + "metadata": {}, + "source": [ + "And finally it can be save the IPG in pickle extension, in this example we recreate the desire `rest_after_landing` to show that we get the same results." + ] + }, + { + "cell_type": "code", + "execution_count": 118, + "id": "70500c33-7211-47b8-bf59-bdad8123a26d", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.discretizer import Predicate, PredicateBasedState\n", + "\n", + "goal_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.UPRIGHT),\n", + " Predicate(Contact.BOTH_LEGS),\n", + " Predicate(XPos.CENTER_POS)\n", + " }\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 119, + "id": "7fce1b86-4ee9-47e7-81f6-0130dc97d288", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.desire import Desire\n", + "from pgeon.discretizer import Action\n", + "\n", + "rest_after_landing = Desire(\n", + " name=\"rest_after_landing\",\n", + " action=Action(0),\n", + " clause=goal_state\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 120, + "id": "7ca261a9-78b8-4a33-993e-b40dbdfbf8a6", + "metadata": {}, + "outputs": [], + "source": [ + "new_intention_approximator.register_desire(rest_after_landing)" + ] + }, + { + "cell_type": "markdown", + "id": "aed04db5-1c24-484d-8797-e352461eebfd", + "metadata": {}, + "source": [ + "#### Saving" + ] + }, + { + "cell_type": "code", + "execution_count": 121, + "id": "dad6a5f2-7340-48c9-9a1c-1731ae720885", + "metadata": {}, + "outputs": [], + "source": [ + "new_intention_approximator.save(\"pickle\", \"./intention_model.pickle\")" + ] + }, + { + "cell_type": "markdown", + "id": "ae92f130-e358-4159-aff1-c0c3b3d6c820", + "metadata": {}, + "source": [ + "#### Loading" + ] + }, + { + "cell_type": "code", + "execution_count": 122, + "id": "f0ef2856-767d-4414-98f6-6207b3091a23", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon import IntentionAwarePolicyApproximator\n", + "\n", + "approximator_loaded = IntentionAwarePolicyApproximator.from_pickle(\"./intention_model.pickle\")" + ] + }, + { + "cell_type": "code", + "execution_count": 123, + "id": "ec566183-224e-49e6-a97f-9f32f5997172", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([0.003656307129798903],\n", + " [[('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]])" + ] + }, + "execution_count": 123, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "approximator_loaded.compute_desire_statistics(rest_after_landing)" + ] + }, + { + "cell_type": "markdown", + "id": "af8a29e2-6fb8-446f-94e7-eff3dac5600e", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "### From PG to IPG" + ] + }, + { + "cell_type": "markdown", + "id": "70057b42-d8ac-4093-8231-e6588c6a2c2c", + "metadata": {}, + "source": [ + "With the next code we create an IPG from a PG without having to use the policy of the agent, just with the PG that we want to transform." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "8a512df2-ba55-4a55-add6-f07da657a266", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator loaded successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_fit_500_example.dill\", \"rb\") as f:\n", + " approximator_loaded = dill.load(f)\n", + "\n", + "print(\"¡DQN approximator loaded successfully!\")" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "2129e903-52cd-4e29-81f8-bad9ec9c956c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of states in the PG: 5\n", + "Number of transitions in the PG: 37\n" + ] + } + ], + "source": [ + "pg = approximator_loaded.policy_representation\n", + "print(f'Number of states in the PG: {len(list(pg.states))}')\n", + "print(f'Number of transitions in the PG: {len(list(pg.transitions))}')" + ] + }, + { + "cell_type": "markdown", + "id": "d41093db-bf16-44f4-9bfd-cd7101682f81", + "metadata": {}, + "source": [ + "The method `from_pg` creates an `IntentionAwarePolicyApproximator` from an already existing Policy Graph. Instead of running the fitting process again, it copies the states, transitions, frequencies, probabilities, and trajectories from the original policy approximator.\n", + "\n", + "The main difference is that the new graph representation uses `IntentionalStateMetadata`. This metadata keeps the original state frequency and probability, but also adds an empty `intention` dictionary. This dictionary will later be used to store the intention values associated with different desires." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e56da297-e7dd-468a-8018-1c7b13c9d6cf", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon import IntentionAwarePolicyApproximator\n", + "\n", + "ipg = IntentionAwarePolicyApproximator.from_pg(\n", + " approximator_loaded\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "d8df09c8-be67-42c6-9260-3b5e5826d2f3", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "5\n" + ] + } + ], + "source": [ + "print(type(ipg))\n", + "print(len(list(ipg.policy_representation.states)))" + ] + }, + { + "cell_type": "markdown", + "id": "af366319-380e-46cd-b294-c689598c9c3d", + "metadata": {}, + "source": [ + "As we can see the `ipg` variable type is a `IntentionAwarePolicyApproximator` and has the same number of states than the declarations done before. We can also see that for the `rest_after_landing` desire we obtain the same results that it is expected." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "820ae7e7-7926-4a77-88c8-7e6633c4153c", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.discretizer import Predicate, PredicateBasedState\n", + "\n", + "goal_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.UPRIGHT),\n", + " Predicate(Contact.BOTH_LEGS),\n", + " Predicate(XPos.CENTER_POS)\n", + " }\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "de226832-a90e-4515-8c6e-495c1f94eba6", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.desire import Desire\n", + "from pgeon.discretizer import Action\n", + "\n", + "rest_after_landing = Desire(\n", + " name=\"rest_after_landing\",\n", + " action=Action(0),\n", + " clause=goal_state\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "fd514613-5e5a-460c-b178-cc0b438d874f", + "metadata": {}, + "outputs": [], + "source": [ + "ipg.register_desire(rest_after_landing)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "c0fd3403-d1e4-4d46-b58e-56a6b615c24d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([0.003656307129798903],\n", + " [[('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]])" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ipg.compute_desire_statistics(rest_after_landing)" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "2a39f5e4-087e-42a8-90d7-e5169b10bb66", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Transition 0\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 8\n", + " p(s_to,a | s_from): 0.041\n", + "\n", + "Transition 1\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 2\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 170\n", + " p(s_to,a | s_from): 0.872\n", + "\n", + "Transition 3\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 4\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 7\n", + " p(s_to,a | s_from): 0.036\n", + "\n", + "Transition 5\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 6\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 6\n", + " p(s_to,a | s_from): 0.031\n", + "\n", + "Transition 7\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 8\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 21\n", + " p(s_to,a | s_from): 0.171\n", + "\n", + "Transition 9\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 10\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 6\n", + " p(s_to,a | s_from): 0.049\n", + "\n", + "Transition 11\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 12\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 13\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 6\n", + " p(s_to,a | s_from): 0.049\n", + "\n", + "Transition 14\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 59\n", + " p(s_to,a | s_from): 0.480\n", + "\n", + "Transition 15\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 27\n", + " p(s_to,a | s_from): 0.220\n", + "\n", + "Transition 16\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 17\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.002\n", + "\n", + "Transition 18\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.002\n", + "\n", + "Transition 19\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 6\n", + " p(s_to,a | s_from): 0.011\n", + "\n", + "Transition 20\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.002\n", + "\n", + "Transition 21\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.002\n", + "\n", + "Transition 22\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.002\n", + "\n", + "Transition 23\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 6\n", + " p(s_to,a | s_from): 0.011\n", + "\n", + "Transition 24\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.004\n", + "\n", + "Transition 25\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 528\n", + " p(s_to,a | s_from): 0.965\n", + "\n", + "Transition 26\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 93\n", + " p(s_to,a | s_from): 0.710\n", + "\n", + "Transition 27\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 19\n", + " p(s_to,a | s_from): 0.145\n", + "\n", + "Transition 28\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 29\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 12\n", + " p(s_to,a | s_from): 0.092\n", + "\n", + "Transition 30\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 5\n", + " p(s_to,a | s_from): 0.038\n", + "\n", + "Transition 31\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.008\n", + "\n", + "Transition 32\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 23\n", + " p(s_to,a | s_from): 0.742\n", + "\n", + "Transition 33\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.032\n", + "\n", + "Transition 34\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.032\n", + "\n", + "Transition 35\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 5\n", + " p(s_to,a | s_from): 0.161\n", + "\n", + "Transition 36\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.032\n", + "\n" + ] + } + ], + "source": [ + "for i, transition in enumerate(pg.transitions):\n", + " from_state = transition.from_state\n", + " to_state = transition.to_state\n", + " action = transition.transition.action\n", + "\n", + " print(f\"Transition {i}\")\n", + " print(f\"From: {from_state}\")\n", + " print(f\"Action: {action_names[action]}\")\n", + " print(f\"To: {to_state}\")\n", + " print(f\" Times visited: {transition.transition.frequency}\")\n", + " print(f\" p(s_to,a | s_from): {transition.transition.probability:.3f}\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "8875f53a-dabd-4904-8f08-8286106618ec", + "metadata": {}, + "source": [ + "We can see that the state transitions resulting from an action have the same probability in the IPG as in the original PG. Moreover, the desire `rest_after_landing` is fulfilled by the exact same state. Therefore, we can conclude that the IPG conserves all the information from the original PG without any data loss." + ] + }, + { + "cell_type": "markdown", + "id": "ed3ef28f-ae20-4f69-a79c-d6708919bf83", + "metadata": {}, + "source": [ + "### Defining Desires (Last Attempt)" + ] + }, + { + "cell_type": "markdown", + "id": "849baeb7-96ce-441e-9ae3-f3ca1a1ebec4", + "metadata": {}, + "source": [ + "The previous definition of some desires was not completely correct. A desire should not be understood only as a state that the agent wants to preserve, but as an objective associated with the execution of an action. In the current implementation, each desire is defined by a set of predicates that describes the desired state and by the action that is expected to lead to that state." + ] + }, + { + "cell_type": "markdown", + "id": "bfdc9722-cccc-43d4-a16e-f7fccab6a4fc", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Action-Independent Rest After Landing" + ] + }, + { + "cell_type": "markdown", + "id": "7bff6b45-45a6-4e9a-a8c9-75c97ec9f83a", + "metadata": {}, + "source": [ + "For this reason, the desire rest_after_landing cannot be correctly represented only with Action(0). Defining it with Action(0) would imply that the desired behaviour after landing is specifically to do nothing. However, the objective is different: once the lander has reached a correct landing configuration, any action should ideally keep the agent within a correctly landed state.\n", + "\n", + "To represent this using the current Desire structure, one desire is defined for each possible action of the environment. All these desires share the same predicate-based clause, which describes the correct landing state, but each one is associated with a different action. In this way, the model can analyse whether the agent achieves the rest_after_landing objective independently of the action selected after landing." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "4e260c27-7849-44d0-b178-e507c92e13f9", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.discretizer import Predicate, PredicateBasedState, Action\n", + "from pgeon.desire import Desire\n", + "\n", + "goal_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.UPRIGHT),\n", + " Predicate(Contact.BOTH_LEGS),\n", + " Predicate(XPos.CENTER_POS)\n", + " }\n", + ")\n", + "\n", + "rest_after_landing_desires = [\n", + " Desire(\n", + " name=f\"rest_after_landing_action_{action_id}\",\n", + " action=Action(action_id),\n", + " clause=goal_state\n", + " )\n", + " for action_id in range(env.action_space.n)\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "283d8648-5906-4626-a557-a817b505e692", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Registering desire: rest_after_landing_action_0\n", + "Statistics for desire: rest_after_landing_action_0\n", + "Probabilities: [0.003656307129798903]\n", + "States: [[('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]]\n", + "\n", + "Registering desire: rest_after_landing_action_1\n", + "Statistics for desire: rest_after_landing_action_1\n", + "Probabilities: [0.003656307129798903]\n", + "States: [[('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]]\n", + "\n", + "Registering desire: rest_after_landing_action_2\n", + "Statistics for desire: rest_after_landing_action_2\n", + "Probabilities: [0.9872029250457038]\n", + "States: [[('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]]\n", + "\n", + "Registering desire: rest_after_landing_action_3\n", + "Statistics for desire: rest_after_landing_action_3\n", + "Probabilities: [0.005484460694698354]\n", + "States: [[('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]]\n", + "\n" + ] + } + ], + "source": [ + "for desire in rest_after_landing_desires:\n", + " print(f\"Registering desire: {desire.name}\")\n", + "\n", + " ipg.register_desire(desire)\n", + "\n", + " probabilities, states = ipg.compute_desire_statistics(desire)\n", + "\n", + " print(f\"Statistics for desire: {desire.name}\")\n", + " print(f\"Probabilities: {probabilities}\")\n", + " print(f\"States: {states}\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "960a8542-a346-4429-bcd2-88ef85227ceb", + "metadata": {}, + "source": [ + "The desire `rest_after_landing` was evaluated for each possible action of the environment. All four desires share the same predicate-based clause, which represents a correct landing configuration, but each one is associated with a different action.\n", + "\n", + "The results show that only one state satisfies the landing clause. This state corresponds to a stable landing situation: the lander is upright, centered, has both legs in contact with the ground, and has no relevant horizontal, vertical, or angular movement. We already now that only one state fulfill the desire from the first time we create it.\n", + "\n", + "However, the probabilities associated with the four actions are very different. The probability of selecting Action(0) (`Do nothing`) in this state is only 0.0036, while the probability of selecting Action(2) (`Main Engine`) is 0.9872. The remaining actions also have very low probabilities. Therefore, the agent does not associate the landed state with doing nothing. Instead, the policy almost always selects `Main Engine` when this state is reached.\n", + "\n", + "This result confirms that defining rest_after_landing only with `Do nothing` was not appropriate, because it incorrectly assumed that doing nothing was the representative action after a successful landing. By defining the same desire for each possible action, it becomes possible to observe which action the learned policy actually associates with the correctly landed state." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "6482ed24-f085-4277-8898-90791aa9683a", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.07197581477705342\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.07197581477705342\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.9814443869756079\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.11639843648205625\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.07489236263422536\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.07489236263422536\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.981882100255405\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.12083288445996884\n", + "\n", + "State: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.10240405880570613\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.10240405880570613\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.9981817730102828\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.15508878882779234\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.08129309914492601\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.08129309914492601\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.9861863749694487\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.1280388293521239\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.06298460108429738\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.06298460108429738\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.973287477400451\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.10310129418797212\n", + "\n" + ] + } + ], + "source": [ + "for s in ipg.get_all_state_ids():\n", + " intentions = ipg.get_intentions(s)\n", + "\n", + " print(f\"State: {s}\")\n", + "\n", + " for d, I_ds in intentions.items():\n", + " print(f\" Desire: {d.name} -> I_d(s) = {I_ds}\")\n", + "\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "a9a6c91e-3c79-48ae-b0e9-2e9648268135", + "metadata": {}, + "source": [ + "The intention values obtained for the four rest_after_landing desires show a clear dominance of the desire associated with `Main Engine`. Across all analysed states, this desire obtains values close to 1, while the desires associated with Actions 0, 1 and 3 remain much lower.\n", + "\n", + "This indicates that the learned policy strongly associates the objective of reaching the correct landing configuration with `Main Engine`. This behaviour appears not only in the state that already satisfies the complete landing clause, but also in nearby states where the lander is centered, upright, stable and close to the ground, but has no contact or only one leg in contact.\n", + "\n", + "Therefore, these results support the decision to redefine rest_after_landing for each possible action. The previous definition using only `Do Nothing` incorrectly assumed that the relevant behaviour after landing was doing nothing. However, the intention values show that the policy mainly relates this objective with `Main Engine`, while the other actions have a much weaker relation to the desire." + ] + }, + { + "cell_type": "markdown", + "id": "e431e87c-e5a7-48bc-abb0-026a993a89e3", + "metadata": {}, + "source": [ + "#### Horizontal Position Correction Desires" + ] + }, + { + "cell_type": "markdown", + "id": "008d8e2c-ebd4-44d5-a495-1db65bd5c835", + "metadata": {}, + "source": [ + "Two symmetric horizontal correction desires are defined to capture the lander's lateral adjustments. The first, `move_right_from_left`, represents the objective of initiating a rightward correction when the lander is positioned to the left of the landing zone. In this case, the desired target configuration requires the vehicle to be tilted to the right with active rightward horizontal velocity, enabling it to drift back toward the center. Conversely, the second desire, `move_left_from_right`, represents the symmetric opposite: when the lander is located to the right of the landing zone, the desired configuration requires it to be tilted to the left with leftward horizontal velocity to correct its position." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "f7f497ce-ad8f-4703-8078-c2dc6ad63257", + "metadata": {}, + "outputs": [], + "source": [ + "ACTION_TO_TILT_RIGHT = Action(3)\n", + "\n", + "move_right_from_left_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.TILTED_RIGHT),\n", + " Predicate(XVel.MOVE_RIGHT),\n", + " }\n", + ")\n", + "\n", + "move_right_from_left_desire = Desire(\n", + " name=\"move_right_from_left\",\n", + " action=ACTION_TO_TILT_RIGHT,\n", + " clause=move_right_from_left_state,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "f1e3924a-9224-4a60-bec8-90b16671431e", + "metadata": {}, + "outputs": [], + "source": [ + "ACTION_TO_TILT_LEFT = Action(1)\n", + "\n", + "move_left_from_right_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.TILTED_LEFT),\n", + " Predicate(XVel.MOVE_LEFT),\n", + " }\n", + ")\n", + "\n", + "move_left_from_right_desire = Desire(\n", + " name=\"move_left_from_right\",\n", + " action=ACTION_TO_TILT_LEFT,\n", + " clause=move_left_from_right_state,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "32f54358-6852-49ba-9131-1bf7960cd939", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Registering desire: move_right_from_left\n", + "Statistics for desire: move_right_from_left\n", + "Probabilities: []\n", + "States: []\n", + "\n", + "Registering desire: move_left_from_right\n", + "Statistics for desire: move_left_from_right\n", + "Probabilities: []\n", + "States: []\n", + "\n" + ] + } + ], + "source": [ + "horizontal_correction_desires = [\n", + " move_right_from_left_desire,\n", + " move_left_from_right_desire,\n", + "]\n", + "\n", + "for desire in horizontal_correction_desires:\n", + " print(f\"Registering desire: {desire.name}\")\n", + "\n", + " ipg.register_desire(desire)\n", + "\n", + " probabilities, states = ipg.compute_desire_statistics(desire)\n", + "\n", + " print(f\"Statistics for desire: {desire.name}\")\n", + " print(f\"Probabilities: {probabilities}\")\n", + " print(f\"States: {states}\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "6198865f-75c4-4b10-89ff-07394515e7fc", + "metadata": {}, + "source": [ + "The horizontal correction desires could not be evaluated in the current IPG because none of the states in the generated graph satisfy their defining clauses. The current IPG contains only five states, all of which correspond to centred, upright, and horizontally stable configurations. Consequently, predicates such as `Angle.TILTED_LEFT`, `Angle.TILTED_RIGHT`, `XVel.MOVE_LEFT`, and `XVel.MOVE_RIGHT` are entirely absent from the graph topology.\n", + "\n", + "As a result, `compute_desire_statistics` returns empty lists for both horizontal correction desires, yielding intention values of zero across all states. This outcome does not invalidate the desire definitions themselves; rather, it demonstrates that the baseline Policy Graph lacks the behavioral diversity necessary to analyze lateral correction maneuvers. To properly evaluate these desires, the graph must be constructed from an expanded set of trajectories that explicitly include episodes where the lander is displaced to the left or right of the landing zone, an analysis that will be explored in `Example 2`." + ] + }, + { + "cell_type": "markdown", + "id": "c4d92e81-2dfe-427f-9075-929f5515f1e3", + "metadata": {}, + "source": [ + "### Conclusion of Example 1" + ] + }, + { + "cell_type": "markdown", + "id": "51d08e39-c49e-43df-a3f9-cb2e319b6750", + "metadata": {}, + "source": [ + "This first example demonstrates the complete workflow required to transform a trained Deep Q-Network (DQN) agent within the LunarLander environment into an interpretable, graph-based representation using pgeon. The process begins by training and saving the agent's neural network policy. Subsequently, the continuous environment observations are mapped into symbolic predicates via a semantic discretizer. This abstraction allows the agent's behavior to be modeled as a Policy Graph (PG), where each node represents an abstract state and each edge denotes an observed transition triggered by a specific action.\n", + "\n", + "The generated Policy Graph consists of 5 symbolic states and 37 unique transitions. This indicates that, under the selected discretization scheme and across the 500 mapping episodes, the agent’s behavior was highly concentrated around a small cluster of stable, landing-related scenarios. The discovered states primarily describe configurations where the lander is centred, upright, has no horizontal movement, and exhibits no angular velocity. The primary variances between these states relate to altitude zones and leg-contact status, making this specific graph uniquely suited for analyzing the final touchdown phase.\n", + "\n", + "State probability analysis reveals that the most frequently visited node is the centred, no-contact state within the descent zone, followed closely by the state where both legs have established ground contact. This distribution indicates that the agent spends a significant portion of its trajectories executing controlled descents in highly stable configurations. Furthermore, the action probabilities show that the policy is highly deterministic, typically dominated by a single primary action per state. Notably, the agent frequently fires its lateral engines during no-contact or single-leg-contact states to maintain stability, whereas the both-legs-contact state is heavily associated with the main engine.\n", + "\n", + "The intention-aware phase of this example extends the structural Policy Graph by registering symbolic desires. The baseline desire, `rest_after_landing`—defined as being upright, centred, and maintaining dual leg contact—successfully isolates the valid landed state. However, when this desire is strictly bound to the `Do nothing` action, the probability of satisfying the desire-action pairing within that target state is exceptionally low. This discrepancy reveals that a rigid, action-dependent definition fails to accurately capture the true behavioral patterns of the trained policy.\n", + "\n", + "To resolve this, the final phase of the example evaluates the same physical landing condition across alternative actions. The results demonstrate that the desire associated with the Main engine yields the highest intention values, confirming that the trained DQN policy relies on active main thrust to stabilize and maintain its landed state. While this behavior may seem counterintuitive from a human design perspective, it is entirely consistent with the empirical statistics extracted during graph construction.\n", + "\n", + "Finally, the horizontal correction desires could not be evaluated due to the structural limitations of this initial graph, which lacks states representing lateral displacement. This constraint underscores a critical property of the framework: an intention can only be mathematically analyzed if its corresponding symbolic states are actively represented within the graph topology. Ultimately, this example successfully validates the core mechanics of constructing PGs and IPGs, registering human-readable desires, and interpreting intention values, while also highlighting how behavioral diversity impacts overall graph expressivity." + ] + } + ], + "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.12.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/example/LunarLander/Basic Env/discretizer.py b/example/LunarLander/Basic Env/discretizer.py new file mode 100644 index 0000000..05ad0e0 --- /dev/null +++ b/example/LunarLander/Basic Env/discretizer.py @@ -0,0 +1,158 @@ +from enum import Enum, auto +from typing import Tuple +import numpy as np + +from pgeon import Discretizer, Predicate + + +# --- +# Clases por Variable +# --- + +# - X - +class XPos(Enum): + LEFT_POS = auto() + CENTER_POS = auto() + RIGHT_POS = auto() + + +# - Y - +class YPos(Enum): + LOW_ALTITUDE = auto() + DESCENT_ZONE = auto() + HIGH_ALTITUDE = auto() + + +# - X Velocity - +class XVel(Enum): + MOVE_LEFT = auto() + NO_HORIZONTAL_MOVEMENT = auto() + MOVE_RIGHT = auto() + + +# - Y Velocity - +class YVel(Enum): + DESCENDING = auto() + HOVERING = auto() + ASCENDING = auto() + + +# - Angle - +class Angle(Enum): + TILTED_LEFT = auto() + UPRIGHT = auto() + TILTED_RIGHT = auto() + + +# - Angular Velocity - +class AngularVel(Enum): + ROTATING_LEFT = auto() + NO_ROTATION = auto() + ROTATING_RIGHT = auto() + + +# --- CONTACTOS --- +class Contact(Enum): + NO_CONTACT = auto() + LEFT_LEG = auto() + RIGHT_LEG = auto() + BOTH_LEGS = auto() + + +# --- +# Discretizador +# --- + +class LunarLanderSemanticDiscretizer(Discretizer): + def __init__(self): + super().__init__() + + self.low = np.array([-2.5, -2.5, -10, -10, -2*np.pi, -10]) + self.high = np.array([ 2.5, 2.5, 10, 10, 2*np.pi, 10]) + + # nº de estados por variable (todas = 3) + self.n_states = [3, 3, 3, 3, 3, 3] + + # crear bordes automáticamente + self.edges = [ + np.linspace(self.low[i], self.high[i], self.n_states[i] + 1) + for i in range(6) + ] + + self.maps = [ + list(XPos), + list(YPos), + list(XVel), + list(YVel), + list(Angle), + list(AngularVel), + ] + + # --- Métodos obligatorios para la clase abstracta --- + def nearest_state(self, state): + """ + Devuelve el estado más cercano en el espacio de predicados. + Para este caso, simplemente devolvemos el mismo estado. + """ + return state + + def str_to_state(self, state_str): + """ + Convierte un string de estado de vuelta a la tupla de Predicates. + Asume que state_to_str usa '&' como separador. + """ + return tuple(state_str.split("&")) + + def _map_value(self, value, edges, mapping, low, high): + value = np.clip(value, low, high) + idx = np.digitize(value, edges[1:-1]) # devuelve 0,1,2 + return mapping[idx] + + def map_contact(self, left_leg, right_leg): + left = int(left_leg) == 1 + right = int(right_leg) == 1 + + if left and right: + return Contact.BOTH_LEGS + elif left: + return Contact.LEFT_LEG + elif right: + return Contact.RIGHT_LEG + else: + return Contact.NO_CONTACT + + def discretize( + self, obs: np.ndarray + ) -> Tuple[Predicate, Predicate, Predicate, Predicate, Predicate, Predicate, Predicate, Predicate]: + + x, y, x_vel, y_vel, angle, ang_vel, left_leg, right_leg = obs + + contact = self.map_contact(left_leg, right_leg) + + return ( + Predicate(self._map_value(x, self.edges[0], self.maps[0], self.low[0], self.high[0])), + Predicate(self._map_value(y, self.edges[1], self.maps[1], self.low[1], self.high[1])), + Predicate(self._map_value(x_vel, self.edges[2], self.maps[2], self.low[2], self.high[2])), + Predicate(self._map_value(y_vel, self.edges[3], self.maps[3], self.low[3], self.high[3])), + Predicate(self._map_value(angle, self.edges[4], self.maps[4], self.low[4], self.high[4])), + Predicate(self._map_value(ang_vel, self.edges[5], self.maps[5], self.low[5], self.high[5])), + Predicate(contact), + ) + + def state_to_str(self, state): + return "&".join(str(pred) for pred in state) + + def all_actions(self): + return [0, 1, 2, 3] + + def get_predicate_space(self): + states = [] + for xp in XPos: + for yp in YPos: + for xv in XVel: + for yv in YVel: + for a in Angle: + for av in AngularVel: + for c in Contact: + states.append((xp, yp, xv, yv, a, av, c)) + return states \ No newline at end of file diff --git a/example/LunarLander/Basic Env/dqn.py b/example/LunarLander/Basic Env/dqn.py new file mode 100644 index 0000000..8afb46b --- /dev/null +++ b/example/LunarLander/Basic Env/dqn.py @@ -0,0 +1,15 @@ +import torch.nn as nn +import torch.nn.functional as F + + +class DQN(nn.Module): + def __init__(self, n_observations, n_actions): + super().__init__() + self.layer1 = nn.Linear(n_observations, 128) + self.layer2 = nn.Linear(128, 128) + self.layer3 = nn.Linear(128, n_actions) + + def forward(self, x): + x = F.relu(self.layer1(x)) + x = F.relu(self.layer2(x)) + return self.layer3(x) \ No newline at end of file diff --git a/example/LunarLander/Complex Env/Example.ipynb b/example/LunarLander/Complex Env/Example.ipynb new file mode 100644 index 0000000..166684d --- /dev/null +++ b/example/LunarLander/Complex Env/Example.ipynb @@ -0,0 +1,4608 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "5dae87e7-968b-4ba2-9bbb-9ef79aafe07a", + "metadata": {}, + "source": [ + "### Imports" + ] + }, + { + "cell_type": "markdown", + "id": "de1adadd-5d4a-49bf-bf3b-300410288a67", + "metadata": {}, + "source": [ + "In this section, we import all the libraries required to:\n", + "- create and interact with the RL environment,\n", + "- define and train a neural network agent,\n", + "- store and sample experience during training,\n", + "- visualize both results and the explanation graphs generated with pgeon." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "1792e15e-e736-4d4b-a197-ca8702e1673b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Using device: cuda\n" + ] + } + ], + "source": [ + "# The library of gymnasium\n", + "import gymnasium as gym\n", + "\n", + "import torch\n", + "import torch.nn as nn\n", + "import torch.optim as optim\n", + "import random\n", + "from collections import namedtuple, deque\n", + "from itertools import count\n", + "from tqdm import tqdm\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "# For visualizing the PG\n", + "import networkx as nx\n", + "\n", + "# For saving trainings and models\n", + "import dill\n", + "\n", + "# For ensure reproducibility of results\n", + "SEED = 42\n", + "random.seed(SEED)\n", + "np.random.seed(SEED)\n", + "torch.manual_seed(SEED)\n", + "\n", + "import warnings\n", + "warnings.filterwarnings(\"ignore\")\n", + "\n", + "# Using device GPU\n", + "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", + "print(f\"Using device: {device}\")" + ] + }, + { + "cell_type": "markdown", + "id": "24f935c2-37a8-4eab-9798-f528dbd41e69", + "metadata": {}, + "source": [ + "#### Importing and Creating Discretizier" + ] + }, + { + "cell_type": "markdown", + "id": "81fe461f-4fa3-4639-b690-ed00b3690a4c", + "metadata": {}, + "source": [ + "In order to use pgeon, we need to transform the continuous state space of the environment into a discrete and interpretable representation.\n", + "\n", + "The LunarLander environment provides observations as continuous values (position, velocity, angle, etc.), which are difficult to interpret directly.\n", + "The semantic discretizer converts these values into high-level symbolic predicates, such as:\n", + "- lander is on the left\n", + "- descending too fast\n", + "- tilted to the right\n", + "- both legs in contact\n", + "\n", + "Without this step, pgeon would not be able to generate meaningful explanations, since it relies on symbolic representations rather than raw numerical states." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "da42444c-7421-45a0-8645-1ac79f5622d1", + "metadata": {}, + "outputs": [], + "source": [ + "from discretizer import LunarLanderSemanticDiscretizer\n", + "from discretizer import Contact, XPos, YPos, YVel, XVel, AngularVel, Angle\n", + "\n", + "discretizer = LunarLanderSemanticDiscretizer()" + ] + }, + { + "cell_type": "markdown", + "id": "a0f1287b-1fda-4de6-85ed-b273aa8a6798", + "metadata": {}, + "source": [ + "### Creating Environment and Action Mapping" + ] + }, + { + "cell_type": "markdown", + "id": "4b5e14e9-33ee-4e3e-8bb0-8cc9a64658d6", + "metadata": {}, + "source": [ + "A mapping of the possible actions inside this LunarLander environment is:\n", + "- 0: do nothing\n", + "- 1: fire left orientation engine\n", + "- 2: fire main engine\n", + "- 3: fire right orientation engine\n", + "\n", + "This mapping is not required for training, but it is very useful for interpretability and visualization.\n", + "When we later build the policy graph (PG), actions will be displayed using these human-readable labels instead of numeric IDs.\n", + "\n", + "\n", + "`n_observations` corresponds to the size of the state vector returned by the environment. `n_actions` is how many actions there are in the environment.\n", + "\n", + "In this second example the environment is more difficult for the agent because it has to resist the power of wind and turbulences." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "fc5155a3-6ea0-470a-9d28-9d348b0651fb", + "metadata": {}, + "outputs": [], + "source": [ + "# The continuous parameter to false makes the action being discretized as I map them\n", + "env = gym.make('LunarLander-v3', continuous=False, gravity=-11.0,\n", + " enable_wind=True, wind_power=15.0, turbulence_power=1.5)\n", + "\n", + "# Mapping of the actions\n", + "action_names = {\n", + " 0: \"Do nothing\",\n", + " 1: \"Left engine\",\n", + " 2: \"Main engine\",\n", + " 3: \"Right engine\"\n", + "}\n", + "\n", + "n_observations = env.observation_space.shape[0]\n", + "n_actions = env.action_space.n" + ] + }, + { + "cell_type": "markdown", + "id": "c666bb14-3b5b-4634-956c-66da369a3dee", + "metadata": {}, + "source": [ + "### DQN Agent" + ] + }, + { + "cell_type": "markdown", + "id": "795a69cf-a1b1-4ace-b63a-2b3738ae2872", + "metadata": {}, + "source": [ + "#### Agent Imports, defining Transition and Memory replay" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "3657be6c-f316-44b9-b57b-3cde1788b614", + "metadata": {}, + "outputs": [], + "source": [ + "from dqn import DQN\n", + "policy_net = DQN(n_observations, n_actions).to(device)\n", + "target_net = DQN(n_observations, n_actions).to(device)\n", + "target_net.load_state_dict(policy_net.state_dict())\n", + "target_net.eval()\n", + "\n", + "Transition = namedtuple(\"Transition\", [\"state\", \"action\", \"next_state\", \"reward\", \"done\"])\n", + "\n", + "class ReplayMemory:\n", + " def __init__(self, capacity):\n", + " self.memory = deque([], maxlen=capacity)\n", + "\n", + " def push(self, *args):\n", + " self.memory.append(Transition(*args))\n", + "\n", + " def sample(self, batch_size):\n", + " return random.sample(self.memory, batch_size)\n", + "\n", + " def __len__(self):\n", + " return len(self.memory)\n", + "\n", + "memory = ReplayMemory(100000)\n", + "\n", + "# This is the policy_net of the agent\n", + "optimizer = optim.AdamW(policy_net.parameters(), lr=1e-4)" + ] + }, + { + "cell_type": "markdown", + "id": "1c724622-8143-4434-8449-0f4c61808f8e", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Entrenamiento del modelo" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "c744d0c9-e446-48ee-a56e-7a98e3a34e4e", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "100%|███████████████████████████████████████████████████████████████████| 2000/2000 [46:12<00:00, 1.39s/it]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Entrenamiento finalizado.\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# Training metrics variables\n", + "dqn_rewards = []\n", + "dqn_lengths = []\n", + "dqn_losses = []\n", + "\n", + "# Epsilon-Greedy parametres\n", + "EPSILON = 1.0\n", + "EPSILON_DECAY = 0.995\n", + "EPSILON_MIN = 0.01\n", + "GAMMA = 0.99\n", + "TAU = 0.005\n", + "batch_size = 128\n", + "num_episodes = 2000\n", + "\n", + "for episode in tqdm(range(num_episodes)):\n", + " state, info = env.reset()\n", + " state = torch.tensor(state, dtype=torch.float32, device=device).unsqueeze(0)\n", + " total_reward = 0\n", + "\n", + " for t in count():\n", + " # Action selector\n", + " if random.random() < EPSILON:\n", + " action = torch.tensor([[env.action_space.sample()]], device=device, dtype=torch.long)\n", + " else:\n", + " with torch.no_grad():\n", + " action = policy_net(state).max(1).indices.view(1, 1)\n", + "\n", + " next_state_raw, reward, terminated, truncated, _ = env.step(action.item())\n", + " done = terminated or truncated\n", + " total_reward += reward\n", + " \n", + " reward_t = torch.tensor([reward], device=device)\n", + " next_state = torch.tensor(next_state_raw, dtype=torch.float32, device=device).unsqueeze(0)\n", + "\n", + " # Save in memory\n", + " memory.push(state, action, next_state, reward_t, done)\n", + " state = next_state\n", + "\n", + " # Optimization\n", + " if len(memory) >= batch_size:\n", + " transitions = memory.sample(batch_size)\n", + " batch = Transition(*zip(*transitions))\n", + "\n", + " state_batch = torch.cat(batch.state)\n", + " action_batch = torch.cat(batch.action)\n", + " reward_batch = torch.cat(batch.reward)\n", + " next_state_batch = torch.cat(batch.next_state)\n", + " done_batch = torch.tensor(batch.done, device=device, dtype=torch.float32)\n", + "\n", + " # Currently Q value calculation\n", + " state_action_values = policy_net(state_batch).gather(1, action_batch)\n", + "\n", + " # Target Q value calculation\n", + " with torch.no_grad():\n", + " next_state_values = target_net(next_state_batch).max(1)[0]\n", + " expected_q = (next_state_values * GAMMA * (1 - done_batch)) + reward_batch\n", + "\n", + " # Huber lost\n", + " loss = nn.SmoothL1Loss()(state_action_values, expected_q.unsqueeze(1))\n", + " \n", + " optimizer.zero_grad()\n", + " loss.backward()\n", + " torch.nn.utils.clip_grad_value_(policy_net.parameters(), 100)\n", + " optimizer.step()\n", + " \n", + " dqn_losses.append(loss.item())\n", + "\n", + " # Soft Update\n", + " for target_param, param in zip(target_net.parameters(), policy_net.parameters()):\n", + " target_param.data.copy_(TAU * param.data + (1.0 - TAU) * target_param.data)\n", + "\n", + " if done:\n", + " dqn_rewards.append(total_reward)\n", + " dqn_lengths.append(t + 1)\n", + " break\n", + "\n", + " # Decaimiento de la exploración\n", + " EPSILON = max(EPSILON_MIN, EPSILON * EPSILON_DECAY)\n", + "\n", + "print(\"Entrenamiento finalizado.\")" + ] + }, + { + "cell_type": "markdown", + "id": "14f1ab2f-3048-41f1-980f-6cb8ebacee98", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Saving model" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c9f8ba29-c170-4507-bcf8-b9b8a0667588", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model saved to dqn_lunar_lander_example2.pth\n" + ] + } + ], + "source": [ + "torch.save({\n", + " \"model\": policy_net.state_dict(),\n", + " \"rewards\": dqn_rewards,\n", + " \"lengths\": dqn_lengths,\n", + " \"losses\": dqn_losses,\n", + "}, \"dqn_lunar_lander_example2.pth\")\n", + "print(\"Model saved to dqn_lunar_lander_example2.pth\")" + ] + }, + { + "cell_type": "markdown", + "id": "86608a63-f002-42e9-9107-1b4724ee635e", + "metadata": {}, + "source": [ + "#### Loading model" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "17b98c1d-d432-45f6-b7ff-9c92635dadbe", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Model loaded successfully!\n" + ] + } + ], + "source": [ + "policy_net = DQN(n_observations, n_actions).to(device)\n", + "\n", + "checkpoint = torch.load(\"dqn_lunar_lander_example2.pth\", weights_only=False)\n", + "\n", + "policy_net.load_state_dict(checkpoint[\"model\"])\n", + "dqn_rewards = checkpoint[\"rewards\"]\n", + "dqn_lengths = checkpoint[\"lengths\"]\n", + "dqn_losses = checkpoint[\"losses\"]\n", + "\n", + "print(\"Model loaded successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "953be63b-c369-4637-bb13-fb3f82c375e7", + "metadata": {}, + "source": [ + "#### Plots of the model training" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "028b8bfe-4a5d-4448-8099-56ab9d44ccc4", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABdEAAASmCAYAAADBBeLHAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjgsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvwVt1zgAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzsnXeY1NT+xt/ZXbYBy9J7FUEQBIUrlyaoKCr2csGCgP169drbT4UrFq4Ve+9dROygIKIgAjZApUrvdVn6Unbz++PcsznJnEySmUzbfT/Ps08ymWxyJslkkve8eb8hwzAMEEIIIYQQQgghhBBCCCEkjIxkN4AQQgghhBBCCCGEEEIISVUoohNCCCGEEEIIIYQQQgghDlBEJ4QQQgghhBBCCCGEEEIcoIhOCCGEEEIIIYQQQgghhDhAEZ0QQgghhBBCCCGEEEIIcYAiOiGEEEIIIYQQQgghhBDiAEV0QgghhBBCCCGEEEIIIcQBiuiEEEIIIYQQQgghhBBCiAMU0QkhhBBCCCGEEEIIIYQQByiiE0IIIYQQV/7zn/8gFAoldJ0rVqxAKBTC66+/ntD1pjtDhw5FixYtAlve6tWrkZubi+nTpwe2zKB5/fXXEQqFsGLFimQ3pdJz++23o1u3bsluBiGEEEJIoFBEJ4QQQgipYEhB0elv5syZyW5i0rBvi4KCAvTp0wdffvllspuWsowcORLdunVDz549k90UkgZcf/31mDt3Lj777LNkN4UQQgghJDCykt0AQgghhBASH0aOHImWLVuGTW/durXvZd111124/fbbg2hW0jnhhBNw8cUXwzAMrFy5Es899xxOO+00TJgwAf37909281KKzZs344033sAbb7yR7KZEZPDgwRg0aBBycnKS3ZRKT4MGDXDGGWfgkUcewemnn57s5hBCCCGEBAJFdEIIIYSQCsrJJ5+Mrl27BrKsrKwsZGVVjEvHNm3a4KKLLip/fc4556B9+/Z44okn0kJELykpQXZ2NjIy4v9Q6dtvv42srCycdtppcV9XLGRmZiIzMzPZzUg6u3fvRtWqVZPdDPzjH//Aeeedh2XLlqFVq1bJbg4hhBBCSMwwzoUQQgghpJIiM8cfeeQRjB49Gs2bN0deXh769OmDP//80zKvLhN90qRJ6NWrFwoLC1GtWjW0bdsW//d//2eZZ9OmTbj00ktRv3595ObmolOnTlpXc3FxMYYOHYoaNWqgsLAQQ4YMQXFxsbbdCxcuxLnnnotatWohNzcXXbt2jSk6ol27dqhTpw6WLl1qmb5v3z6MGDECrVu3Rk5ODpo2bYpbb70V+/btK5/n7LPPxlFHHWX5v9NOOw2hUMjSplmzZiEUCmHChAkAgKKiItx8883o2LEjqlWrhoKCApx88smYO3euZVnfffcdQqEQ3n//fdx1111o3Lgx8vPzsWPHDgDAJ598gg4dOiA3NxcdOnTAxx9/rP2M77//Prp06YLq1aujoKAAHTt2xBNPPOG6bT755BN069YN1apVs0zv27cvOnTogN9//x19+vRBfn4+WrdujbFjxwIAvv/+e3Tr1g15eXlo27Ytvvnmm7Blz549GyeffDIKCgpQrVo1HH/88ZaooV9++QWhUEh7vHz99dcIhUL44osvAOgz0Vu0aIFTTz0VP/zwA44++mjk5uaiVatWePPNN8OWJz9HXl4emjRpgvvuuw+vvfaap5z133//HUOHDkWrVq2Qm5uLBg0a4JJLLsHWrVvL5xk7dixCoRC+//77sP9/4YUXEAqFLN85L8e4/Mzff/89rr76atSrVw9NmjQBAKxcuRJXX3012rZti7y8PNSuXRvnnXee9rP4+ewTJkxA7969UbVqVVSvXh0DBgzAvHnzwpbZr18/AMCnn34acdsRQgghhKQLFcNORAghhBBCwti+fTu2bNlimRYKhVC7dm3LtDfffBM7d+7Ev/71L5SUlOCJJ57Acccdhz/++AP169fXLnvevHk49dRTccQRR2DkyJHIycnBkiVLLMUn9+7di759+2LJkiW45ppr0LJlS3z44YcYOnQoiouLcd111wEADMPAGWecgR9++AFXXXUV2rVrh48//hhDhgzRrrdnz55o3Lgxbr/9dlStWhVjxozBmWeeiY8++ghnnXVWVNtp27ZtOOSQQ8qnlZWV4fTTT8cPP/yAK664Au3atcMff/yB0aNHY/Hixfjkk08AAL1798ann36KHTt2oKCgAIZhYPr06cjIyMC0adPK4yymTZuGjIyM8lzxZcuW4ZNPPsF5552Hli1bYuPGjXjhhRfQp08fzJ8/H40aNbK08d5770V2djZuvvlm7Nu3D9nZ2Zg4cWK5i37UqFHYunUrhg0bVi6kSiZNmoTzzz8fxx9/PB588EEAwIIF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dll0t169ep7btXz5cnTq1MlnywkhhBBCUhPGuRBCCCGEVHI++eQTS87yTz/9hFmzZuHkk092/J+ioqKwaTJXed++fQCEy3vDhg2W+IqDBw/iqaeeQrVq1dCnT5/y+Q4ePIjnnnuufL7S0lI89dRTluXXq1cPffv2xQsvvID169eHrX/z5s0ePm04WVlZuOmmm7BgwQJ8+umnAIS7eO3atXjppZfC5t+7dy92795d/rpbt26oUqUKHnzwQdSqVQuHH344ACGuz5w5E99//73FhQ4Ih7TdDf3hhx96ynQHRH54586d8cYbb1jiOSZNmoT58+db5pXZ5pKMjAwcccQRAMx9paNKlSro2rUrfvnlF09t8kpmZiZOPPFEfPrpp5bIoI0bN+Ldd99Fr169UFBQUD69Xbt26NixIz744AN88MEHaNiwIY455pjA2tO/f3/MmDEDc+bMKZ9WVFSEd955x9NnAcKd7Y8//rh2/n79+qFWrVrln+Xoo4+2xLEEdYzrjq+nnnoKpaWllmleP3v//v1RUFCABx54AAcOHHBt1/bt27F06VL06NHDU3sJIYQQQlIdOtEJIYQQQiooEyZMKHd9q/To0cNS0LF169bo1asX/vnPf2Lfvn14/PHHUbt2bdx6662Oyx45ciSmTp2KAQMGoHnz5ti0aROeffZZNGnSBL169QIAXHHFFXjhhRcwdOhQ/Prrr2jRogXGjh2L6dOn4/HHH0f16tUBAKeddhp69uyJ22+/HStWrED79u0xbtw4bTb4M888g169eqFjx464/PLL0apVK2zcuBEzZszAmjVrMHfu3Ki21dChQzF8+HA8+OCDOPPMMzF48GCMGTMGV111FaZMmYKePXuitLQUCxcuxJgxY/D111+ja9euAID8/Hx06dIFM2fOxGmnnVbuXD/mmGOwe/du7N69O0xEP/XUUzFy5EgMGzYMPXr0wB9//IF33nnHsl/cGDVqFAYMGIBevXrhkksuQVFREZ566ikcfvjh2LVrV/l8l112GYqKinDcccehSZMmWLlyJZ566il07ty5PJ/eiTPOOAN33nknduzYYRG2Y+W+++7DpEmT0KtXL1x99dXIysrCCy+8gH379uGhhx4Km3/gwIEYPnw4cnNzcemll4bl7MfCrbfeirfffhsnnHACrr32WlStWhUvv/wymjVrhqKioohPIhQUFOCYY47BQw89hAMHDqBx48aYOHGio3u/SpUqOPvss/H+++9j9+7deOSRR8LmCeIYP/XUU/HWW2+hRo0aaN++PWbMmIFvvvmmPKLH72cvKCjAc889h8GDB+Ooo47CoEGDULduXaxatQpffvklevbsiaeffrp8ud988w0Mw8AZZ5zh2lZCCCGEkLTAIIQQQgghFYrXXnvNAOD499prrxmGYRjLly83ABgPP/yw8eijjxpNmzY1cnJyjN69extz5861LHPEiBGGeuk4efJk44wzzjAaNWpkZGdnG40aNTLOP/98Y/HixZb/27hxozFs2DCjTp06RnZ2ttGxY8fy9ats3brVGDx4sFFQUGDUqFHDGDx4sDF79mxLeyVLly41Lr74YqNBgwZGlSpVjMaNGxunnnqqMXbsWNdtA8D417/+pX3vP//5jwHAmDJlimEYhrF//37jwQcfNA4//HAjJyfHqFmzptGlSxfjnnvuMbZv327531tuucUAYDz44IOW6a1btzYAGEuXLrVMLykpMW666SajYcOGRl5entGzZ09jxowZRp8+fYw+ffqUzzdlyhQDgPHhhx9q2/zRRx8Z7dq1M3Jycoz27dsb48aNM4YMGWI0b968fJ6xY8caJ554olGvXj0jOzvbaNasmXHllVca69evd91eGzduNLKysoy33nrLMr1Pnz7G4YcfHjZ/8+bNjQEDBoRN12333377zejfv79RrVo1Iz8/3zj22GONH3/8UduOv/76q/z4/eGHH8Lel8f88uXLXdti38aGYRizZ882evfubeTk5BhNmjQxRo0aZTz55JMGAGPDhg3aNknWrFljnHXWWUZhYaFRo0YN47zzzjPWrVtnADBGjBgRNv+kSZMMAEYoFDJWr16tXaaXY1x+5p9//jns/7dt21b+vatWrZrRv39/Y+HChUbz5s2NIUOGRP3Zp0yZYvTv39+oUaOGkZubaxxyyCHG0KFDjV9++cUy38CBA41evXpF3G6EEEIIIelEyDACrKpDCCGEEELShhUrVqBly5Z4+OGHcfPNNye7OSRFufTSS7F48WJMmzYt2U1JKNdffz1eeOEF7Nq1Ky6FclOZWD77hg0b0LJlS7z//vt0ohNCCCGkwsBMdEIIIYQQQogjI0aMwM8//4zp06cnuylxY+/evZbXW7duxVtvvYVevXpVeAE96M/++OOP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S5c+RGeYTkRERGSOlejkFbZzISLyXK9erq/v0AGYMsURbBAREfmLPkTPzw/euhARERGVdaxEJ6+wnQsRkeeeeAIoLAT27wfWrQN27NBev3IlEB4enHUjIqJLi/h/U1gon1r5Xk9ERER0qWKITl4RITor0YmIrAsNBV54wXH5rbeAZ591XGaATkREgSKOLJ0+HWjeHOjePbjrQ0RERFSW8YBx8or40u2uYqWwEMjKks8nJ/t1lYiIyp1nnpFbuADAa68Fd12IiOjSIr7PT5wIDB0K/Puv47o33wzOOhERERGVVaxEJ69YbeciqtDDwoD4eL+uEhFRufTtt8DOnUCfPsFeEyIiupTExGgvb98un6akyDt5iYiIiMiBITp5xerAomfOyKfVqnGgPCIiI+np8h8REVEgie/zgqhEF8UyREREROTAWJO8YrUSXYTs+koXIiIiIiIKHv33848/lk/14ToRERERMUQnL1kN0cX1rGghIiIiIio7GJYTERERWccQnbxitZ0LQ3QiIiIiorLH7EjR48cDux5ERERE5QFDdPIKK9GJiIiIiMovs0r0zMzArgcRERFRecAQnbwiQnFWohMRERERlT/qEL1ateCtBxEREVF5wBCdvCK+dLurRM/Pl08ZohMRERERlR3qdi6dOwMtWwZvXYiIiIjKOobo5BURihcUAHa7+XwiZI+K8v86ERERERGRNepK9MqVgfnzgWuuAZYtC946EREREZVVYcFeASqf1JXlFy+aD0zEdi5ERERERGWP+vt7lSpA/frAL78Eb32IiIiIyjJWopNX9CG6GYboRERERERlj74SnYiIiIjMMUQnr4SGAhER8vmtW83nY4hORERERFT2qCvRGaITERERucYQnbxWWCif9uhhPg9DdCIiIiKiskcdosfGBm89iIiIiMoD9kQnnygoACIjnafn58unDNGJiIiIiMqOrl2BTp3kI0wHDAj22hARERGVbQzRySeOHwfq1nWezkp0IiIiIqKyJy4O+OOPYK8FERERUfnAdi7kE9u3AyUl2mk7dgAzZ8rno6ICv05EREREREREREREpcUQnbz24IOO8zfeCPTqpb3+oYcc51mJTkREREREREREROURQ3Ty2iefADfd5Lj822/a68+edZxniE5ERERERERERETlEUN08prNBtSrp51WXOw4n5bmOB/CLY2IiIiIiIiIiIjKIUabVCpxcdrLp07Jp8ePA5GRztOJiIiIiIiIiIiIypOwYK8AlW+VKmkvnzgB/PMPcN112umDBgVunYiIiIiIiIiIiIh8hZXoVCr6ED0jAxg3Tjvtp5+A1NTArRMRERERERERERGRrzBEp1KJidFePnECCA3VTqtePXDrQ0RERERERERERORLDNGpVIwq0fUhetWqgVsfIiIiIiIiIiIiIl9iiE6lYlSJHqLbqhiiExERERERERERUXnFEJ1KxUolelxc4NaHiIiIiIiIiIiIyJfCgr0CVL7pQ/QTJwC7XTtNH6oTERERERERERERlRcM0alU9O1cMjKA8HDH5Zo1A7s+RERERERERERERL7EEJ1KxagSvXJlx+X69QO7PkRERERERERERES+xBCdSkVfiZ6fL/8JH30U2PUhIiIiIiIiIiIi8iWG6FQq+kp0ISwMOHsWiI0N7PoQERERERERERER+VJIsFeAyreoKMf5hx92nK9enQE6ERERERERERERlX/lJkTv168fateujaioKKSmpuKuu+7C8ePHNfNs2bIFXbp0QVRUFGrVqoW33nrL6X7mzp2Lxo0bIyoqCi1atMDPP/8cqIdQIYWotqAWLYBu3eTzTz8dlNUhIiIiIiIiIiIi8qlyE6J3794dc+bMwe7du/Hf//4X+/btw80336xcn5OTg969eyM9PR0bN27ExIkT8dJLL+Gzzz5T5lmzZg1uv/12DB8+HJs2bcKAAQMwYMAAbNu2LRgPqcKRJGDOHGDWLODRR4O9NkRERERERERERESlZ5MkSQr2Snjj+++/x4ABA1BQUIDw8HBMnjwZL7zwAjIyMhAREQEAGDNmDBYuXIhdu3YBAG677Tbk5ubixx9/VO7nqquuwuWXX45PP/3U0nJzcnIQFxeH7OxsxLJfCQDAZpNPV68GOnYM7roQERERERERERERWWE16y03lehq586dw8yZM9GxY0eEh4cDANauXYurr75aCdABoE+fPti9ezcyMzOVeXr16qW5rz59+mDt2rWmyyooKEBOTo7mj7S2bgXmz2eATkRERERERERERBVPuQrRn332WcTExKBatWo4fPgwvvvuO+W6jIwMJCcna+YXlzMyMlzOI643MmHCBMTFxSl/tWrV8tXDqTCaNwcGDgz2WhARERERERERERH5XlBD9DFjxsBms7n8E61YAODpp5/Gpk2b8MsvvyA0NBR33303/N2N5rnnnkN2drbyd+TIEb8uj4iIiIiIiIiIiIjKjrBgLvzJJ5/EsGHDXM5Tr1495XxiYiISExNx2WWXoUmTJqhVqxbWrVuHDh06ICUlBSdPntTcVlxOSUlRTo3mEdcbiYyMRGRkpCcPi4iIiIiIiIiIiIgqiKCG6ElJSUhKSvLqtna7HYDcsxwAOnTogBdeeAFFRUVKn/SlS5eiUaNGqFq1qjLPsmXLMHr0aOV+li5dig4dOpTiURARERERERERERFRRVUueqKvX78eH330ETZv3oxDhw5h+fLluP3221G/fn0lAL/jjjsQERGB4cOHY/v27Zg9ezbef/99PPHEE8r9PPbYY1i8eDHeeecd7Nq1Cy+99BI2bNiAkSNHBuuhEREREREREREREVEZVi5C9EqVKmH+/Pno2bMnGjVqhOHDh6Nly5ZYuXKl0molLi4Ov/zyCw4cOIC2bdviySefxNixYzFixAjlfjp27IhvvvkGn332GVq1aoV58+Zh4cKFaN68ebAeGhERERERERERERGVYTbJ3yNzVjA5OTmIi4tDdnY2YmNjg706REREREREREREROQFq1lvuahEJyIiIiIiIiIiIiIKBoboREREREREREREREQmGKITEREREREREREREZlgiE5EREREREREREREZIIhOhERERERERERERGRibBgr0B5I0kSAHnkViIiIiIiIiIiIiIqn0TGKzJfMwzRPXT+/HkAQK1atYK8JkRERERERERERERUWufPn0dcXJzp9TbJXcxOGna7HcePH0eVKlVgs9mCvToBl5OTg1q1auHIkSOIjY0N9urQJYbbHwUTtz8KNm6DFEzc/iiYuP1RMHH7o2Di9kfBdilsg5Ik4fz580hLS0NIiHnnc1aieygkJAQ1a9YM9moEXWxsbIV981DZx+2PgonbHwUbt0EKJm5/FEzc/iiYuP1RMHH7o2Cr6Nugqwp0gQOLEhERERERERERERGZYIhORERERERERERERGSCITp5JDIyEuPGjUNkZGSwV4UuQdz+KJi4/VGwcRukYOL2R8HE7Y+CidsfBRO3Pwo2boMOHFiUiIiIiIiIiIiIiMgEK9GJiIiIiIiIiIiIiEwwRCciIiIiIiIiIiIiMsEQnYiIiIiIiIiIiIjIBEN0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fCcsKCiQJEmS1qxZI7333nvS5s2bpX379kkzZsyQkpKSpLvvvltZBrc/MuNq+zt//rz01FNPSWvXrpUOHDgg/frrr1KbNm2khg0bSvn5+cp98POPvOXu/68kSVJ2drZUqVIlafLkyU635+cflYa7zEWSfPO7d//+/VKlSpWkp59+Wtq5c6f08ccfS6GhodLixYsD+nj9iSE6eeTDDz+UateuLUVEREhXXnmltG7dumCvEpVzAAz/pk6dKkmSJB0+fFi6+uqrpYSEBCkyMlJq0KCB9PTTT0vZ2dma+zl48KB07bXXStHR0VJiYqL05JNPSkVFRUF4RFSe3HbbbVJqaqoUEREh1ahRQ7rtttukvXv3KtdfvHhRevjhh6WqVatKlSpVkgYOHCidOHFCcx/c9qi0lixZIgGQdu/erZnOzz/ytRUrVhj+zx06dKgkSZJkt9ulF198UUpOTpYiIyOlnj17Om2XZ8+elW6//XapcuXKUmxsrHTPPfdI58+f18zzzz//SJ07d5YiIyOlGjVqSG+88UagHiKVYa62vwMHDph+J1yxYoUkSZK0ceNGqX379lJcXJwUFRUlNWnSRHr99dc1IackcfsjY662v7y8PKl3795SUlKSFB4eLqWnp0v333+/U7EYP//IW+7+/0qSJE2ZMkWKjo6WsrKynG7Pzz8qDXeZiyT57nfvihUrpMsvv1yKiIiQ6tWrp1lGRWCTJEnyU5E7EREREREREREREVG5xp7oREREREREREREREQmGKITEREREREREREREZlgiE5EREREREREREREZIIhOhERERERERERERGRCYboREREREREREREREQmGKITEREREREREREREZlgiE5EREREREREREREZIIhOhERERERERERERGRCYboRERERESXmIMHD8Jms2Hz5s1+W8awYcMwYMAAv90/EREREVGgMEQnIiIiIipnhg0bBpvN5vTXt29fS7evVasWTpw4gebNm/t5TYmIiIiIyr+wYK8AERERERF5rm/fvpg6dapmWmRkpKXbhoaGIiUlxR+rRURERERU4bASnYiIiIioHIqMjERKSormr2rVqgAAm82GyZMn49prr0V0dDTq1auHefPmKbfVt3PJzMzEkCFDkJSUhOjoaDRs2FAT0G/duhU9evRAdHQ0qlWrhhEjRuDChQvK9SUlJXjiiScQ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A8jMzNTMV6dOHdxwww34448/cOWVVyIqKgr16tXDV1995XSfW7ZsQdeuXREdHY2aNWvi1VdfxdSpU2Gz2XDw4EHl/rZv346VK1cqrXe6deumuZ+CggI88cQTSEpKQkxMDAYOHOjUj3rDhg3o06cPEhMTER0djbp161oKNxcuXIiIiAhcffXVmunitf/3339x5513Ii4uDklJSXjxxRchSRKOHDmC/v37IzY2FikpKYYhvLvtoKioCAkJCbjnnnucbpuTk4OoqCg89dRTAIx7og8bNgyVK1fGsWPHMGDAAFSuXBlJSUl46qmnUFJSorm/s2fP4q677kJsbKyyrf3zzz+W+qyfO3cOTz31FFq0aIHKlSsjNjYW1157Lf755x9lnpMnTyIsLAwvv/yy0+13794Nm82Gjz76SJmWlZWF0aNHo1atWoiMjESDBg3w5ptvwm63K/Oo36uTJk1C/fr1ERkZiR07dqCwsBBjx45F27ZtERcXh5iYGHTp0gUrVqxwWr4nj93q+6x69epo2bIlvvvuO5fPHREREVF5wxIiIiIioktAdnY2zpw5o5lms9lQrVo1zbSvvvoK58+fxyOPPIL8/Hy8//776NGjB7Zu3Yrk5GTD+96+fTtuuOEGtGzZEuPHj0dkZCT27t2L1atXK/NcvHgR3bp1w969ezFy5EjUrVsXc+fOxbBhw5CVlYXHHnsMACBJEvr3748//vgDDz74IJo0aYIFCxZg6NChhsvt1KkTatSogTFjxiAmJgZz5szBgAED8N///hcDBw4s7dOGBx54ANOmTcM999yDRx99FAcOHMBHH32ETZs2YfXq1Zo2Inv37sXNN9+M4cOHY+jQofjyyy8xbNgwtG3bFs2aNQMAHDt2DN27d4fNZsNzzz2HmJgYfP7554iMjNQsd9KkSRg1ahQqV66MF154AQCcnv9Ro0ahatWqGDduHA4ePIhJkyZh5MiRmD17NgA5rO7duzeSkpIwZswYxMfH4+DBg5g/f77bx71mzRo0b97ctE3KbbfdhiZNmuCNN97ATz/9hFdffRUJCQmYMmUKevTogTfffBMzZ87EU089hSuuuEIJ461sB+Hh4Rg4cCDmz5+PKVOmaKqrFy5ciIKCAgwePNjl+peUlKBPnz5o37493n77bfz666945513UL9+fTz00EMA5B0kN954I/7880889NBD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jN68z8R2o9+hQkRERFSeMUQnIiIiIsWePXucpv3777+oU6eOy9uFhISgZ8+e6NmzJ9599128/vrreOGFF7BixQr06tUL6enp2LJlC+x2u6YKedeuXQCA9PR05XTZsmW4cOGCJuTdvXu3Znn16tUDILcC6dWrl1eP1Z369evj119/RadOnQwDS2+kp6dj7969TtONpvmqkveqq67CVVddhddeew3ffPMNhgwZglmzZmlasug1btwYBw4c8Mny1axuBwBw9dVXIzU1FbNnz0bnzp2xfPlyZZBVX63LihUrkJeXp6nINnotjMybNw/du3fHF198oZmelZXlFCAPGDAADzzwgNLS5d9//8Vzzz2nmad+/fq4cOFCqbbnefPmoV69epg/f75m+9EPamr1sXvzPjtw4AASExNNK+qJiIiIyiP2RCciIiIixcKFCzU9jv/880+sX78e1157reltzp075zRN9PwuKCgAAFx33XXIyMjQ9IUuLi7Ghx9+iMqVK6Nr167KfMXFxZg8ebIyX0lJCT788EPN/VevXh3dunXDlClTcOLECaflnz592sKjde3WW29FSUmJ0oJDrbi4GFlZWR7fZ58+fbB27Vps3rxZmXbu3DnDaveYmBivliFkZmY6VYHrXxczHTp0wLZt29zO5ymr2wEg75i5+eab8cMPP+Drr79GcXGx5X7oVvTp0wdFRUX4z3/+o0yz2+34+OOPLd0+NDTU6fmdO3euYS/++Ph49OnTB3PmzMGsWbMQERGBAQMGaOa59dZbsXbtWixZssTp9llZWSguLra0ToC2+n/9+vVYu3atZj6rj92b99nGjRsNWxYRERERlWesRCciIiK6BCxatEip9lXr2LGjUm0KyK0ZOnfujIceeggFBQWYNGkSqlWrZtpiAgDGjx+PVatW4frrr0d6ejpOnTqFTz75BDVr1kTnzp0ByINgTpkyBcOGDcPGjRtRp04dzJs3D6tXr8akSZNQpUoVAMCNN96ITp06YcyYMTh48CCaNm2K+fPnIzs722m5H3/8MTp37owWLVrg/vvvR7169XDy5EmsXbsWR48exT///OP2edmwYQNeffVVp+ndunVD165d8cADD2DChAnYvHkzevfujfDwcOzZswdz587F+++/j5tvvtntMtSeeeYZzJgxA9dccw1GjRqFmJgYfP7556hduzbOnTunqR5u27YtJk+ejFdffRUNGjRA9erV0aNHD8vLmj59Oj755BMMHDgQ9evXx/nz5/Gf//wHsbGxuO6661zetn///njllVewcuVK9O7d26PH6IrV7UC47bbb8OGHH2LcuHFo0aKF0jvdFwYMGIArr7wSTz75JPbu3YvGjRvj+++/V3YKuTsS4IYbbsD48eNxzz33oGPHjti6dStmzpypeT/pH8udd96JTz75BH369FEGfhWefvppfP/997jhhhswbNgwtG3bFrm5udi6dSvmzZuHgwcPum2RcsMNN2D+/PkYOHAgrr/+ehw4cACffvopmjZtigsXLnj12D15n506dQpbtmyxPDgrERERUXnBEJ2IiIjoEjB27FjD6VOnTtWEfnfffTdCQkIwadIknDp1CldeeSU++ugjpKammt53v379cPDgQXz55Zc4c+YMEhMT0bVrV7z88suIi4sDIPdv/u233zBmzBhMnz4dOTk5aNSoEaZOnYphw4Yp9xUSEoLvv/8eo0ePxowZM2Cz2dCvXz+88847aN26tWa5TZs2xYYNG/Dyyy9j2rRpOHv2LKpXr47WrVubPl699evXY/369U7TX3nlFXTu3Bmffvop2rZtiylTpuD5559HWFgY6tSpgzvvvBOdOnWytAy1WrVqYcWKFXj00Ufx+uuvIykpCY888ghiYmLw6KOPIioqSpl37NixOHToEN566y2cP38eXbt29ShE79q1K/7880/MmjULJ0+eRFxcHK688krMnDnTdFBKoW3btmjZsiXmzJnj0xDd6nYgdOzYEbVq1cKRI0d8WoUOyFXbP/30Ex577DFMnz4dISEhGDhwIMaNG4dOnTppXgsjzz//PHJzc/HNN99g9uzZaNOmDX766SeMGTPGcP5+/fohOjoa58+fN3wslSpVwsqVK/H6669j7ty5+OqrrxAbG4vLLrtM815yZdiwYcjIyMCUKVOwZMkSNG3aFDNmzMDcuXPx22+/efXYPXmfzZ8/H5GRkbj11lvdrisRERFReWKT/DXSERERERGVGwcPHkTdunUxceJEPPXUU8FenUvO6NGjMWXKFFy4cCEgg2Ja8fXXX+ORRx7B4cOHnaqmK7KFCxdi4MCB+OOPP7zaUVKelfaxt27dGt26dcN7773nh7UjIiIiCh72RCciIiIiCqCLFy9qLp89exZff/01OnfuXGYCdAAYMmQIateubblHeHmkfy1E//3Y2Fi0adMmSGsVGL5+7IsXL8aePXucBkwlIiIiqgjYzoWIiIiIKIA6dOiAbt26oUmTJjh58iS++OIL5OTk4MUXXwz2qmmEhIRg27ZtwV4Nvxo1ahQuXryIDh06oKCgAPPnz8eaNWvw+uuvIzo6Otir51e+fux9+/bV9F0nIiIiqkgYohMRERERBdB1112HefPm4bPPPoPNZkObNm3wxRdf4Oqrrw72ql1yevTogXfeeQc//vgj8vPz0aBBA3z44YcYOXJksFfN7y7lx05ERETkKfZEJyIiIiIiIiIiIiIywZ7oREREREREREREREQmGKITEREREREREREREZlgT3QP2e12HD9+HFWqVIHNZgv26hARERERERERERGRFyRJwvnz55GWloaQEPN6c4boHjp+/Dhq1aoV7NUgIiIiIiIiIiIiIh84cuQIatasaXo9Q3QPValSBYD8xMbGxgZ5bYiIiIiIiIiIiIjIGzk5OahVq5aS+ZphiO4h0cIlNjaWIToRERERERERERFROeeubTcHFiUiIiIiIiIiIiIiMsEQnYiIiIiIiIiIiIjIBEN0IiIiIiIiIiIiIiITDNGJiIiIiIiIiIiIiEwwRCciIiIiIiIiIiIiMsEQnYiIiIiIiIiIiIjIBEN0IiIiIiIiIiIiIiITZSZEX7VqFW688UakpaXBZrNh4cKFmuslScLYsWORmpqK6Oho9OrVC3v27NHMc+7cOQwZMgSxsbGIj4/H8OHDceHCBc08W7ZsQZcuXRAVFYVatWrhrbfe8vdDIyIiIiIiIiIiIqJyqsyE6Lm5uWjVqhU+/vhjw+vfeustfPDBB/j000+xfv16xMTEoE+fPsjPz1fmGTJkCLZv346lS5fixx9/xKpVqzBixAjl+pycHPTu3Rvp6enYuHEjJk6ciJdeegmfffaZ3x8fEREREREREREREZU/NkmSpGCvhJ7NZsOCBQswYMAAAHIVelpaGp588kk89dRTAIDs7GwkJydj2rRpGDx4MHbu3ImmTZvir7/+Qrt27QAAixcvxnXXXYejR48iLS0NkydPxgsvvICMjAxEREQAAMaMGYOFCxdi165dltYtJycHcXFxyM7ORmxsrO8fPBERERERERERERH5ndWsNyyA6+S1AwcOICMjA7169VKmxcXFoX379li7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ct4ICwAAAMh1GIkOAAAABKDQ0FCVK1fO7q948eKSpJCQEI0dO1YdOnRQwYIFVb16dc2cOdO2bfpyLhcvXlSPHj1UunRpFSxYUNddd51dgn7btm268847VbBgQZUsWVJPPfWULl++bFuflJSkgQMHqlixYipZsqReeeUVGYZhF29ycrJGjhypatWqqWDBgqpXr55dTAAAAIC/IokOAAAA5EJDhw5V165dtWXLFvXo0UPdunXTrl27nLbduXOnFixYoF27dmns2LEqVaqUJOnKlStq166dihcvrvXr12vGjBlasmSJ+vfvb9v+448/1qRJk/Tdd9/pn3/+0YULFzR79my7fYwcOVLff/+9vv76a+3YsUMvvviiHn30Ua1YscJ7LwIAAADgASFG+iEiAAAAAPxar1699OOPPyosLMxu+WuvvabXXntNISEheuaZZzR27FjbultvvVUNGzbUV199pUOHDqlatWratGmT6tevr/vuu0+lSpXSd999l2Ff33zzjQYPHqyjR4+qcOHCkqTff/9d9957r06cOKGyZcuqQoUKevHFF/Xyyy9LkhITE1WtWjU1atRIc+bMUVxcnEqUKKElS5aoadOmtr6ffPJJxcTEaMqUKd54mQAAAACPoCY6AAAAEIDuuOMOuyS5JJUoUcJ2P22yOuVxSvmW9Pr27auuXbvq33//Vdu2bdWpUyc1a9ZMkrRr1y7Vq1fPlkCXpObNmys5OVl79uxRWFiYTp48qSZNmtjW58uXT40bN7aVdNm3b59iYmJ011132e03Pj5eDRo0cP/JAwAAAD5EEh0AAAAIQIULF9a1117rkb46dOigw4cP6/fff9fixYvVunVr9evXTx999JFH+k+pnz5//nxdc801dutcnQwVAAAAsAo10QEAAIBcaM2aNRke33jjjU7bly5dWj179tSPP/6o0aNHa/z48ZKkG2+8UVu2bNGVK1dsbVeuXKk8efLohhtuUEREhMqXL6+1a9fa1icmJmrjxo22x7Vq1VJoaKiOHDmia6+91u6vUqVKnnrKAAAAgFcwEh0AAAAIQHFxcTp16pTdsnz58tkmBJ0xY4YaN26sFi1a6KefftK6des0YcIEh329+eabatSokW666SbFxcVp3rx5toR7jx49NGzYMPXs2VNvvfWWzp49q+eee07/+9//VLZsWUnSCy+8oPfff1/XXXedatasqU8++USRkZG2/osWLapBgwbpxRdfVHJyslq0aKGoqCitXLlS4eHh6tmzpxdeIQAAAMAzSKIDAAAAAWjhwoUqX7683bIbbrhBu3fvliS9/fbbmjp1qp599lmVL19eP//8s2rVquWwrwIFCmjIkCE6dOiQChYsqJYtW2rq1KmSpEKFCmnRokV64YUXdPPNN6tQoULq2rWrPvnkE9v2L730kk6ePKmePXsqT548evzxx9W5c2dFRUXZ2owYMUKlS5fWyJEjdeDAARUrVkwNGzbUa6+95umXBgAAAPCoECNlth8AAAAAuUJISIhmz56tTp06WR0KAAAAEPCoiQ4AAAAAAAAAgBMk0QEAAAAAAAAAcIKa6AAAAEAuQ8VGAAAAwHMYiQ4AAAAAAAAAgBMk0QEAAAAAAAAAcIIkOgAAAAAAAAAATpBEBwAAAAAAAADACZLoAAAAAAAAAAA4QRIdAAAAAAAAAAAnSKIDAAAAAAAAAOAESXQAAAAAAAAAAJwgiQ4AAAAAAAAAgBMk0QEAAAAAAAAAcIIkOgAAAAAAAAAATpBEBwAAAAAAAADACZLoAAAAAAAAAAA4QRIdAAAAAAAAAAAnSKIDAADAEr169VLVqlWzte1bb72lkJAQzwaUCyUnJ6t27dp69913rQ7FqUOHDikkJESTJk2yOpSgt3DhQhUpUkRnz561OhQAAAC/QhIdAAAAdkJCQlz6W758udWhWqJXr14qUqSI1WG45Oeff9bRo0fVv39/q0NBAGjfvr2uvfZajRw50upQAAAA/EqIYRiG1UEAAADAf/z44492j7///nstXrxYP/zwg93yu+66S2XLls32fhISEpScnKzQ0FC3t01MTFRiYqLCwsKyvf/s6tWrl2bOnKnLly/7fN/uql+/vpo0aaJx48ZZHYpThmEoLi5O+fPnV968ea0OJ+iNHTtWgwYN0qlTp1S0aFGrwwEAAPALJNEBAACQqf79+2vMmDHK6mtjTEyMChUq5KOorBMoSfRNmzapYcOGWrJkiVq3bm11OMhCYmKikpOTVaBAAUvjOHPmjCpUqKDx48fr8ccftzQWAAAAf0E5FwAAALjt9ttvV+3atbVx40a1atVKhQoV0muvvSZJmjt3rjp27KgKFSooNDRUNWrU0IgRI5SUlGTXR/qa6Cm1sT/66CONHz9eNWrUUGhoqG6++WatX7/ebltHNdFDQkLUv39/zZkzR7Vr11ZoaKhuuukmLVy4MEP8y5cvV+PGjRUWFqYaNWpo3LhxHq+zPmPGDDVq1EgFCxZUqVKl9Oijj+r48eN2bU6dOqXevXurYsWKCg0NVfny5XX//ffr0KFDtjYbNmxQu3btVKpUKRUsWFDVqlVzKbk5Z84cFShQQK1atbJbnvI8//vvPz366KOKiIhQ6dKlNXToUBmGoaNHj+r+++9XeHi4ypUrp48//jhD32fOnNETTzyhsmXLKiwsTPXq1dPkyZNt6xMSElSiRAn17t07w7bR0dEKCwvToEGDJDmuiZ5SMuf48ePq1KmTihQpotKlS2vQoEEZjqPz58/rf//7n8LDw1WsWDH17NlTW7ZscanO+oULFzRo0CDVqVNHRYoUUXh4uDp06KAtW7bY2pw+fVr58uXT22+/nWH7PXv2KCQkRF9++aVtWWRkpAYMGKBKlSopNDRU1157rUaNGqXk5GRbm7TH+ujRo23H+s6dOxUfH68333xTjRo1UkREhAoXLqyWLVtq2bJlGfbvznPfvXu3HnjgAZUoUUJhYWFq3Lixfv311wx9lilTRnXr1tXcuXMzfe0AAACCST6rAwAAAEBgOn/+vDp06KBu3brp0UcftZV2mTRpkooUKaKBAweqSJEiWrp0qd58801FR0frww8/zLLfKVOm6NKlS3r66acVEhKiDz74QF26dNGBAweUP3/+TLf9559/NGvWLD377LMqWrSoPv/8c3Xt2lVHjhxRyZIlJZkjtNu3b6/y5cvr7bffVlJSkoYPH67SpUvn/EX5f5MmTVLv3r118803a+TIkTp9+rQ+++wzrVy5Ups2bVKxYsUkSV27dtWOHTv03HPPqWrVqjpz5owWL16sI0eO2B63bdtWpUuX1quvvqpixYrp0KFDmjVrVpYxrFq1SrVr13b6mj388MO68cYb9f7772v+/Pl65513VKJECY0bN0533nmnRo0apZ9++kmDBg3SzTffbEvGX716Vbfffrv27dun/v37q1q1apoxY4Z69eqlyMhIvfDCC8qfP786d+6sWbNmady4cXajq+fMmaO4uDh169Yt0/iTkpLUrl07NWnSRB999JGWLFmijz/+WDVq1FDfvn0lmROn3nvvvVq3bp369u2rmjVrau7cuerZs6cr/0w6cOCA5syZowcf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8Z5y3KT/QQUAACBYkUQHAACAxyxfvlznz5/XrFmzbBNRStLBgwctjCpVmTJlFBYWpn379mVY52hZdlSpUkWStGfPHt1555126/bs2WNbn6JGjRp66aWX9NJLL2nv3r2qX7++Pv74Y/3444+2NrfeeqtuvfVWvfvuu5oyZYp69OihqVOn2pVkSa9mzZpeed2rVKmirVu3Kjk52W40ekqpnrTPr1WrVipfvrymTZumFi1aaOnSpXr99dc9GsuyZcsUExNjNyLb1X/LmTNn6o477tCECRPslkdGRmZIIHfq1ElPP/20raTLf//9pyFDhti1qVGjhi5fvmwbeZ4dM2fOVPXq1TVr1iy7keDpJzV19blXr15dkllyx9W4Dh48aBuVDwAAAMq5AAAAwINSRg+nHbkcHx+vr776yqqQ7OTNm1dt2rTRnDlzdOLECdvyffv2acGCBR7ZR+PGjVWmTBl9/fXXdmVXFixYoF27dqljx46SpJiYGMXGxtptW6NGDRUtWtS23cWLFzOMAq9fv74kZVnSpWnTptq+fbvLpV9cdffdd+vUqVN29cETExP1xRdfqEiRIrrttttsy/PkyaMHHnhAv/32m3744QclJia6XA/dFe3atVNCQoK++eYb27Lk5GSNGTPGpe3z5s2b4fWdMWNGhhrhklkfvl27dpo+fbqmTp2qAgUKqFOnTnZtHnroIa1evVqLFi3KsH1kZKQSExNdikmy/z+0du1arV692q6dq8+9TJkyuv322zVu3DidPHkyw/7Onj2bYdnGjRvVtGnTLGMFAAAIFoxEBwAAgMc0a9ZMxYsXV8+ePfX8888rJCREP/zwg1+VU3nrrbf0xx9/qHnz5urbt6+SkpL05Zdfqnbt2tq8ebNLfSQkJOidd97JsLxEiRJ69tlnNWrUKPXu3Vu33XabunfvrtOnT+uzzz5T1apV9eKLL0oyRzK3bt1aDz30kGrVqqV8+fJp9uzZOn36tLp16ybJrI391VdfqXPnzqpRo4YuXbqkb775RuHh4br77rszjfH+++/XiBEjtGLFCrVt29a9FykTTz31lMaNG6devXpp48aNqlq1qmbOnKmVK1dq9OjRKlq0qF37hx9+WF988YWGDRumOnXq2Gqne0KnTp10yy236KWXXtK+fftUs2ZN/frrr7pw4YKkrGt633PPPRo+fLh69+6tZs2a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G8xyPa+95jhf8MQT7u3zlVfM2969sxezP9i4Ufrqq+yf73JVO7yAJDq8o21bqyMwPfig1RF4V2JixmU5HSHw2WfmRC4ffOB4/aZNZp2xF15wvU8SvQAAALkPI/JgtWuvzdn2WSXhYTKM3DfBpK8895x05ow50jzlqp6vvrJvk1XplQ0bsrfvS5ekqCjH67I6R/fkleaZcfaDSOPGUr9+0owZmccxYoQ5Px7gAyTR4R2HD2fd5qefst9/IH9h9+TEot6YXCY5OfP12Zn8gyQ6AAAAAH8TyOeV7oiNlS5ftjqK4GbVOfHdd3t/H3Fx2d82q5Iu27c7X7dkiTkBaqdO2d8/4AaS6LDOo49m/802q19q/ZmzL2pZJa/TSqn1vn59zuPJTGys622D5QsoAAAAgNwhJ8k/q7lTruL996WiRV07jz51Slq3LvtxwfvcSci7U7IoO+f0CxdKYWHSxx+7v60kRUZmbztJOn489X528xHOXkvyG3CAJDqs5agciSMXL0o//5z6eOjQnO33kUdytn1OpU9Of/ONVLy4tGaN/XJHb+grVkgRETl/DZxJu886deyXp/2QkqQtWzy774sXpffe82yfuV1uG+W/bp20bJnVUQAAENyyGtyRkCBdueKbWABvunjR6giyr18/97f577+s20RHS02aZCwhktvOO/xVoL239upl3g4aJE2d6v72f/6Z+dXuEydmK6xscWUQodX/D/7+W2rTRtq929o4ghRJdPi/mTOlEiU8m/i2sp7br79KBQtKX3yRuuypp8wvK926ZWwfHy917Zpx+TvvmJNteNO+fan3Bw6UKla0LyHj6gQnrn7Q9Okjvf668/WJieakpr//7lp/uYnVH9a+0qSJdOed0tmzVkcCAEBw2r1bKl1aGjXK8fp//jFHHRYpkr0yf4AvBct3aHe4OhDq77+9G0cwC4TjMjs10bt3d38/a9aYE646c+yYeQWFowS3J1/HDz808zTz53uuT29o1cr84eG++6yOJCiRRIf/88bkoMuWmScAVnr+edfa/fyzNGuW43XbtnkunhTOSsSMHm3eTpmSuszTlzj9+Wfm6ydONCc17djRs/v1d599JpUtK+3caXUkvnPmjNURAAAQnF58UbpwQXr11dRlKd/51qyRWrZMHanu7dKCADyvfn33t7GytEVcnLR3r/0yK5PQb78tXX+9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Y/Ro19odPOjdsiwffijVqpW9CVI598m5I0c8258/5qTS4pixRFAl0Tdu3KgzZ86oYcOGypcvn/Lly6cVK1bo888/V758+ZTk4A11yJAhioqKsv0dZTZw74qJMWtqM8FgcMruv7ujL19WlgZypwxLINu82by9dCl1WVyc9Mgj0vffpy5r3twsN5P+kk0++AEA8I2U2uivvGJtHACCl5VJyZkzzTKrnTp5rs/053zDhpm3334rrVyZsX1mzz/91UNpuZP45/wqe7I6Nnld8f+CKoneunVrbdu2TZs3b7b9NW7cWD169NDmzZuVN33pBEmhoaEKDw+3+4OXNW8u/fef1VFk5O+/RAYrd35xTvvhl91/T1e2c/SlyVMiI6X27b3Xf059+630889Sz54Z1+3Z43o//H8DACDw/f231REA8KVTp6QvvzQHxknSlCnSd985b59VcvKNN1zb79Klma//6CPzdt481/pzxYcfmudmjrRokfm2s2c73zathx+W8uVzNzJ4Ewn1oBZU/xuLFi2q2rVr2y0rXLiwSpYsmWE53ODp+oo7dkgFC3q2T0/YtElatszqKILPU09Zt+/4eKljR/OHHWfOnjXL+dx0kzka4Z9/pPPnvRfTO+9IixZ5r/+c8uZzBwAArvGXH6P79LE6AgQyTxzHJLx86447pN27zXOi77+XevQwl997b/b+LVydfLR1a/f7dpej43HKFOm336TslP0dODDzHxgkafp09/uF53njfcQwzCvxS5TwfN/wmqBKosMLZswwR50Gg6x+TYZ3fPNNzvu4ckUqXNj97X75RVqyxPxzpkwZ83bPHmn5cunppzO2mTFDqlzZee1wd2qdX7jgelt/EygnMb/+an4RbtDA6kgAAMgeX33m+kuyHoB/2L3bvP3tNykxMXX5lSvS4cMZ2/v7+UFWc2r9+6+0cKF5PzTUfl3t2tIffzjfNv28Xp7g76+nv8rqdUtbUsdTn3sDB5r1/GfNkjp39kyf6S1cKIWHS82aeaf/IBT0SfTly5dbHUJge+gh7/R79ap3+kVweust83I7d79UxMZmXOasj9WrpZ9+yrh88+bUEQaB+KUmNlbq21e67z7XPtxd/VJx4IB3J/bJri1bpPvvN+8H4r8XAADZsXix1REAyG08/V06J/25su3SpeYgqrTq1k297+g8JyEh9X5cnP26HTvM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0qVLUadOHbi5uaF9+/Y4ceKEvatEREREREREREREREVMiQyib9iwAePGjUNISAhOnz6Nli1bomfPnrh37569q0ZERERERERERERERUiJDKIvWLAAb7/9NoKCgtC0aVMsX74cZcuWxTfffGPvqhERERERERERERFREVLiguhpaWmIiIiAr69vVpmTkxN8fX1x7NixHMunpqYiMTHRaCIiIiIiIiIiIiKikqHEBdEfPHiAzMxMeHl5GZV7eXkhLi4ux/KhoaHw8PDImry9vQurqkRERERERERERERkZyUuiG6tSZMmISEhIWu6efOmvatERERERERERERERIWklL0rUNg8PT3h7OyMu3fvGpXfvXsX1atXz7G8q6srXF1dC6t6RERERERERERERFSElLie6C4uLmjTpg3279+fVabVarF//3506NDBjjUjIiIiIiIiIiIioqKmxPVEB4Bx48YhMDAQbdu2Rbt27bBw4UKkpKQgKCgoz3WVUgDAAUaJiIiIiIiIiIiIHJguxquL+ZpTIoPoAwcOxP379zFt2jTExcWhVatW2LVrV47BRk1JSkoCAA4wSkRERERERERERFQMJCUlwcPDw+x8jcorzE5GtFotbt++jQoVKkCj0di7OoUuMTER3t7euHnzJtzd3e1dHaJihe2LyHbYvohsh+2LyHbYvohsh+2LyHYcqX0ppZCUlISaNWvCycl85vMS2RP973ByckLt2rXtXQ27c3d3L/KNgMhRsX0R2Q7bF5HtsH0R2Q7bF5HtsH0R2Y6jtK/ceqDrlLiBRYmIiIiIiIiIiIiILMUgOhERERERERERERGRGQyik1VcXV0REhICV1dXe1eFqNhh+yKyHbYvItth+yKyHbYvItth+yKyneLYvjiwKBERERERERERERGRGeyJTkRERERERERERERkBoPoRERERERERERERERmMIhORERERERERERERGQGg+iUw9KlS1GnTh24ubmhffv2OHHiRK7Lb9q0CY0bN4abmxt8fHywc+fOQqopkeOxpn2tWLECXbp0QaVKlVCpUiX4+vrm2R6JSjJrf7901q9fD41Gg759+9q2gkQOzNr29fjxY4wcORI1atSAq6srGjZsyGNEIjOsbV8LFy5Eo0aNUKZMGXh7e2Ps2LH466+/Cqm2RI7j8OHDCAgIQM2aNaHRaLB169Y81zl0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "rolling_length = 10\n", + "\n", + "fig, axs = plt.subplots(ncols=1, nrows=3, figsize=(15, 12))\n", + "\n", + "# Rewards\n", + "reward_ma = np.convolve(\n", + " np.array(dqn_rewards),\n", + " np.ones(rolling_length),\n", + " mode=\"valid\"\n", + ") / rolling_length\n", + "\n", + "axs[0].plot(reward_ma, color=\"blue\")\n", + "axs[0].set_title(\"Episode Rewards (moving average)\")\n", + "axs[0].set_xlabel(\"Episode\")\n", + "axs[0].set_ylabel(\"Reward\")\n", + "\n", + "\n", + "# Episode lengths\n", + "length_ma = np.convolve(\n", + " np.array(dqn_lengths),\n", + " np.ones(rolling_length),\n", + " mode=\"valid\"\n", + ") / rolling_length\n", + "\n", + "axs[1].plot(length_ma, color=\"green\")\n", + "axs[1].set_title(\"Episode Lengths (moving average)\")\n", + "axs[1].set_xlabel(\"Episode\")\n", + "axs[1].set_ylabel(\"Steps\")\n", + "\n", + "# Losses\n", + "loss_ma = np.convolve(\n", + " np.array(dqn_losses),\n", + " np.ones(rolling_length),\n", + " mode=\"valid\"\n", + ") / rolling_length\n", + "\n", + "axs[2].plot(loss_ma, color=\"red\")\n", + "axs[2].set_title(\"Training Loss (moving average)\")\n", + "axs[2].set_xlabel(\"Training step\")\n", + "axs[2].set_ylabel(\"Loss\")\n", + "\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "61b15101-7327-416d-a531-eafbcd979eff", + "metadata": {}, + "source": [ + "The training curves show that the modified environment makes the learning process considerably more difficult. At the beginning of training, the moving average reward is strongly negative, which indicates that the agent frequently crashes or fails to land successfully. During the first part of the training process, the reward improves only slowly and remains unstable for many episodes.\n", + "\n", + "After approximately 1200 episodes, the reward starts to increase more clearly, reaching positive values in several parts of the training. This suggests that the agent eventually learns useful landing strategies despite the presence of wind and turbulence. However, the curve remains much noisier than in a standard environment, with frequent drops in performance. These drops are expected because the external forces introduced by the environment make the same action less predictable than in the deterministic or less perturbed setting.\n", + "\n", + "The episode length also reflects this behaviour. During the early episodes, the lander fails quickly, resulting in short episodes. As training progresses, the episode length increases substantially, meaning that the agent survives for longer and is able to control the lander for more steps. Later in training, the episode length decreases and stabilizes around intermediate values. This can be interpreted as the agent becoming more efficient: instead of simply surviving for many steps, it learns to complete the landing task more directly.\n", + "\n", + "The loss curve is also highly unstable, especially in the middle and final parts of training. This is consistent with the difficulty of the environment. Since wind and turbulence introduce additional variability in the transitions, the agent has to update its value estimates more aggressively, which produces larger loss peaks. Therefore, the loss curve should not be interpreted independently as a sign of failure, but together with the reward curve, which shows that the policy still improves over time." + ] + }, + { + "cell_type": "markdown", + "id": "0af3c3b2-2ee0-46d9-9e75-2c9e87bb90f1", + "metadata": {}, + "source": [ + "#### Video of the model" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "ff66558c-fa36-4f06-ad4b-707535f123d7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Takeoff...\n", + "Landing complete. Final reward: 76.45\n" + ] + } + ], + "source": [ + "# We put render_mode = human to see the agent in a video\n", + "test_env = gym.make(\"LunarLander-v3\", render_mode=\"human\",\n", + " continuous=False, gravity=-10.0,\n", + " enable_wind=True, wind_power=5.0, turbulence_power=2)\n", + "state, info = test_env.reset()\n", + "done = False\n", + "total_test_reward = 0\n", + "\n", + "print(\"Takeoff...\")\n", + "\n", + "while not done:\n", + " state_t = torch.tensor(state, dtype=torch.float32, device=device).unsqueeze(0)\n", + " \n", + " with torch.no_grad():\n", + " # We use the better action\n", + " action = policy_net(state_t).max(1).indices.item()\n", + " \n", + " state, reward, terminated, truncated, info = test_env.step(action)\n", + " total_test_reward += reward\n", + " done = terminated or truncated\n", + "\n", + "print(f\"Landing complete. Final reward: {total_test_reward:.2f}\")\n", + "test_env.close()" + ] + }, + { + "cell_type": "markdown", + "id": "95d6f3f3-812a-4a85-a30a-5925e6793e3a", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "### Agent Wrapper" + ] + }, + { + "cell_type": "markdown", + "id": "f8d87f11-5b44-4be9-afb7-bd0e847ea7db", + "metadata": {}, + "source": [ + "In this case I create a wrapper for my DQN agent. It is important because it exposes the trained model thanks to the `act` function. Without it pgeon can not interact with the agent because can't know the agent's behaviour." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "9acf19d0-eeff-4c49-ae94-9b4d94bff1b1", + "metadata": {}, + "outputs": [], + "source": [ + "class DQNAgentWrapper:\n", + " def __init__(self, model, device, epsilon=0.05):\n", + " self.model = model\n", + " self.device = device\n", + " self.epsilon = epsilon\n", + "\n", + " def act(self, observation):\n", + " # exploration\n", + " if np.random.random() < self.epsilon:\n", + " return np.random.randint(4)\n", + "\n", + " state_t = torch.tensor(\n", + " observation, dtype=torch.float32, device=self.device\n", + " ).unsqueeze(0)\n", + "\n", + " with torch.no_grad():\n", + " return self.model(state_t).argmax(dim=1).item()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "b59f1c60-eaeb-4c71-9736-f5b17faa0e67", + "metadata": {}, + "outputs": [], + "source": [ + "agent_wrapper = DQNAgentWrapper(policy_net, device)" + ] + }, + { + "cell_type": "markdown", + "id": "f9ab7e42-dea8-452a-8224-e4999f1bb678", + "metadata": {}, + "source": [ + "### Converting the Policy in an Agent" + ] + }, + { + "cell_type": "markdown", + "id": "284467a4-d2de-4343-aff6-59f5ad0aedb8", + "metadata": {}, + "source": [ + "This part is important because transforms a raw neural network into a structured decision policy, separating the learning component from the actual action-selection logic. This step ensures that the resulting object is wrapped into a proper PGEON agent interface. As a result, the approximator and the rest of the system can interact with it uniformly, since it behaves like a valid PGEON agent rather than a raw model with framework-specific assumptions." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "3225d914-aa26-4299-bae0-345024e8f61f", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.agent import TorchPolicy\n", + "\n", + "policy = TorchPolicy(policy_net, device)" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "ddb9edc6-fe87-4a6d-b881-e745b1e0ae22", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.agent import CallableAgent\n", + "\n", + "agent = CallableAgent(policy)" + ] + }, + { + "cell_type": "markdown", + "id": "f3681154-9225-42bf-9a32-d1fad0359575", + "metadata": {}, + "source": [ + "### Approximator of the Agent" + ] + }, + { + "cell_type": "markdown", + "id": "f5a25b14-5276-4572-bad0-d888f3b35f4f", + "metadata": {}, + "source": [ + "To build the agent’s policy approximator, we first import two key classes from pgeon.\n", + "`PolicyApproximatorFromBasicObservation` is responsible for learning a policy based on observed transitions, mapping states (or their abstractions) to actions.\n", + "`GraphRepresentation`, on the other hand, defines the structure of the policy graph (PG), specifying how states are represented and connected within the graph." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ff3381a1-4fec-478d-953e-1b0648576cb4", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon import PolicyApproximatorFromBasicObservation, GraphRepresentation\n", + "\n", + "# Creating the representation\n", + "representation = GraphRepresentation()\n", + "\n", + "# Initializing the approximator\n", + "approximator = PolicyApproximatorFromBasicObservation(\n", + " discretizer, \n", + " representation, \n", + " env, \n", + " agent\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "38c0c367-202c-422f-806a-a3b6b7aa7168", + "metadata": {}, + "source": [ + "#### Fit 500" + ] + }, + { + "cell_type": "markdown", + "id": "703a488e-1573-42ac-9425-f8981543383b", + "metadata": {}, + "source": [ + "It is necessary because is the phase where the approximator learns from the agent's behaviour interacting repeatedly with it and the env." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "ff0e4bc7-ec5b-4dfd-b2ee-dd987687d88e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initiating mapping of the DQN policy to pgeon...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Fitting policy approximator...: 100%|█████████████████████████████████████| 500/500 [02:02<00:00, 4.10it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡Mapping completed!\n", + "Discovered states: 22\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# Auto mapping of 500 episodes\n", + "print(\"Initiating mapping of the DQN policy to pgeon...\")\n", + "approximator.fit(n_episodes=500)\n", + "\n", + "print(f\"¡Mapping completed!\")\n", + "print(f\"Discovered states: {len(list(approximator.policy_representation.states))}\")" + ] + }, + { + "cell_type": "markdown", + "id": "3d13ddce-7d7d-4417-9e38-93f644073bcd", + "metadata": {}, + "source": [ + "#### Save Fit" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "8b75a10e-e385-4d08-a1d6-56db585909d4", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator saved successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_fit_500_example2.dill\", \"wb\") as f:\n", + " dill.dump(approximator, f)\n", + "\n", + "print(\"¡DQN approximator saved successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "91632021-ed5a-41e1-b9b9-ddb6354910f6", + "metadata": {}, + "source": [ + "#### Load Fit" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "c48728d4-4887-4e0c-8ef1-163fa059cadd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator loaded successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_fit_500_example2.dill\", \"rb\") as f:\n", + " approximator_loaded = dill.load(f)\n", + "\n", + "print(\"¡DQN approximator loaded successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "d64f1827-7d9b-4b97-9142-fbb094a59a68", + "metadata": {}, + "source": [ + "### Generating PG from Approximator" + ] + }, + { + "cell_type": "markdown", + "id": "09266f48-8137-4f1f-af23-216b50155076", + "metadata": {}, + "source": [ + "For generating the PG from an approximator you just have to use the function `policy_representation`" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "c585413c-3319-4e7d-9dc5-a3173787a18b", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of states in the PG: 22\n", + "Number of transitions in the PG: 121\n" + ] + } + ], + "source": [ + "pg = approximator_loaded.policy_representation\n", + "print(f'Number of states in the PG: {len(list(pg.states))}')\n", + "print(f'Number of transitions in the PG: {len(list(pg.transitions))}')" + ] + }, + { + "cell_type": "markdown", + "id": "25efe211-54ab-49e2-af41-bafb5208ce44", + "metadata": {}, + "source": [ + "#### Visualizating States" + ] + }, + { + "cell_type": "markdown", + "id": "7012e261-9ad0-439e-9aeb-5ce9ca4628d5", + "metadata": {}, + "source": [ + "You can visualize all the states in the PG to know the values of each predicate." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "7c239ae1-72cb-4480-90e4-728e0d5ae634", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Estado 0:\n", + "('predicates', frozenset({NO_CONTACT(), HIGH_ALTITUDE(), NO_HORIZONTAL_MOVEMENT(), CENTER_POS(), NO_ROTATION(), HOVERING(), UPRIGHT()}))\n", + "Estado 1:\n", + "('predicates', frozenset({NO_HORIZONTAL_MOVEMENT(), CENTER_POS(), LEFT_LEG(), DESCENT_ZONE(), NO_ROTATION(), HOVERING(), UPRIGHT()}))\n", + "Estado 2:\n", + "('predicates', frozenset({RIGHT_LEG(), NO_HORIZONTAL_MOVEMENT(), CENTER_POS(), DESCENT_ZONE(), NO_ROTATION(), HOVERING(), UPRIGHT()}))\n", + "Estado 3:\n", + "('predicates', frozenset({BOTH_LEGS(), NO_HORIZONTAL_MOVEMENT(), CENTER_POS(), DESCENT_ZONE(), NO_ROTATION(), HOVERING(), UPRIGHT()}))\n", + "Estado 4:\n", + "('predicates', frozenset({NO_CONTACT(), NO_HORIZONTAL_MOVEMENT(), CENTER_POS(), DESCENT_ZONE(), NO_ROTATION(), HOVERING(), UPRIGHT()}))\n", + "Estado 5:\n", + "('predicates', frozenset({NO_CONTACT(), NO_HORIZONTAL_MOVEMENT(), DESCENT_ZONE(), NO_ROTATION(), HOVERING(), LEFT_POS(), UPRIGHT()}))\n", + "Estado 6:\n", + "('predicates', frozenset({NO_CONTACT(), NO_HORIZONTAL_MOVEMENT(), DESCENT_ZONE(), NO_ROTATION(), RIGHT_POS(), HOVERING(), UPRIGHT()}))\n", + "Estado 7:\n", + "('predicates', frozenset({NO_CONTACT(), HIGH_ALTITUDE(), NO_HORIZONTAL_MOVEMENT(), NO_ROTATION(), HOVERING(), LEFT_POS(), UPRIGHT()}))\n", + "Estado 8:\n", + "('predicates', frozenset({NO_HORIZONTAL_MOVEMENT(), LEFT_LEG(), DESCENT_ZONE(), NO_ROTATION(), RIGHT_POS(), HOVERING(), UPRIGHT()}))\n", + "Estado 9:\n", + "('predicates', frozenset({NO_HORIZONTAL_MOVEMENT(), CENTER_POS(), LEFT_LEG(), ROTATING_LEFT(), DESCENT_ZONE(), HOVERING(), UPRIGHT()}))\n", + "Estado 10:\n", + "('predicates', frozenset({NO_HORIZONTAL_MOVEMENT(), LEFT_LEG(), ROTATING_LEFT(), DESCENT_ZONE(), RIGHT_POS(), HOVERING(), UPRIGHT()}))\n", + "Estado 11:\n", + "('predicates', frozenset({NO_CONTACT(), HIGH_ALTITUDE(), NO_HORIZONTAL_MOVEMENT(), NO_ROTATION(), RIGHT_POS(), HOVERING(), UPRIGHT()}))\n", + "Estado 12:\n", + "('predicates', frozenset({NO_HORIZONTAL_MOVEMENT(), LEFT_LEG(), DESCENT_ZONE(), NO_ROTATION(), HOVERING(), LEFT_POS(), UPRIGHT()}))\n", + "Estado 13:\n", + "('predicates', frozenset({RIGHT_LEG(), NO_HORIZONTAL_MOVEMENT(), DESCENT_ZONE(), NO_ROTATION(), HOVERING(), LEFT_POS(), UPRIGHT()}))\n", + "Estado 14:\n", + "('predicates', frozenset({NO_HORIZONTAL_MOVEMENT(), CENTER_POS(), LEFT_LEG(), DESCENT_ZONE(), TILTED_LEFT(), NO_ROTATION(), HOVERING()}))\n", + "Estado 15:\n", + "('predicates', frozenset({RIGHT_LEG(), NO_HORIZONTAL_MOVEMENT(), DESCENT_ZONE(), NO_ROTATION(), RIGHT_POS(), HOVERING(), UPRIGHT()}))\n", + "Estado 16:\n", + "('predicates', frozenset({NO_CONTACT(), MOVE_LEFT(), DESCENT_ZONE(), NO_ROTATION(), HOVERING(), LEFT_POS(), UPRIGHT()}))\n", + "Estado 17:\n", + "('predicates', frozenset({NO_CONTACT(), MOVE_LEFT(), CENTER_POS(), DESCENT_ZONE(), NO_ROTATION(), HOVERING(), UPRIGHT()}))\n", + "Estado 18:\n", + "('predicates', frozenset({NO_CONTACT(), NO_HORIZONTAL_MOVEMENT(), CENTER_POS(), DESCENT_ZONE(), NO_ROTATION(), HOVERING(), TILTED_RIGHT()}))\n", + "Estado 19:\n", + "('predicates', frozenset({BOTH_LEGS(), NO_HORIZONTAL_MOVEMENT(), DESCENT_ZONE(), NO_ROTATION(), RIGHT_POS(), HOVERING(), UPRIGHT()}))\n", + "Estado 20:\n", + "('predicates', frozenset({LEFT_LEG(), DESCENT_ZONE(), NO_ROTATION(), RIGHT_POS(), HOVERING(), UPRIGHT(), MOVE_RIGHT()}))\n", + "Estado 21:\n", + "('predicates', frozenset({NO_CONTACT(), NO_HORIZONTAL_MOVEMENT(), DESCENT_ZONE(), NO_ROTATION(), HOVERING(), LEFT_POS(), TILTED_RIGHT()}))\n" + ] + } + ], + "source": [ + "for i, state in enumerate(pg.states):\n", + " print(f\"Estado {i}:\")\n", + " print(discretizer.state_to_str(state))" + ] + }, + { + "cell_type": "markdown", + "id": "086d0406-1093-4a07-9ca9-044af32e22ca", + "metadata": {}, + "source": [ + "#### Visualizating PG" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "f595316c-3d8a-4252-81e4-91c241422571", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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c801ev31112l6zlz5mjnzp26++67FRYWpg0bNuiTTz7Rhg0btHTp0gKldUnq16+foqOj9cYbb2jp0qUaPXq0jh07pq+//rrAuEWLFunnn3/W0KFD5efnp9GjR+vGG29UcnKy630/l3379ik5OVlNmjQpsD4qKkqSNGnSJN18883y9vY+5/bt2rXTsGHDNHr0aD377LOKiYmRJNfjuHHj5Ovrq8cee0y+vr6aP3++XnzxRaWnp+udd96RJD333HNKS0vT3r179e6770qSfH19JUlOp1O9e/fWokWLdO+99yomJkbr1q3Tu+++q61bt2rKlCkX/B1MmjRJmZmZeuCBB1ShQgX99ddfev/997V3715NmjSpwFiHw6GuXbuqRYsWevvttzVr1iy99NJLysvL0yuvvCLp9O+vf//+6tixo9566y1J0qZNm/Tnn3/qkUceuej7IUlbtmxR//79dd999+mee+5RrVq1JEkffvih6tatq969e8vNzU3Tpk3T0KFD5XQ69eCDD7q2z5+1vW7dunrmmWcUGBioVatWadasWbrtttsu+H6ey9y5c9WtWzdVq1ZNI0aM0KlTp/T++++rdevWWrlyZYGbF6TTn8mqVavqjTfe0MqVK/XZZ58pJCTE9X7ka9q0qUzT1OLFi9WzZ88L/p4AAAAAAAAAAP8MhXkAAAAAAAAAKEJpaWk6fPiwsrKy9Oeff+qVV16Rl5eXevbsqTVr1uirr77SkCFD9Omnn0qShg4dqpCQEP3nP/9RQkKC4uLiLvlYDz/8sEzT1MqVK1WlShXX+jfffFPS6dnQ77jjDo0cOVJpaWkKCAiQJB06dEi//fabayb689m8ebNq1aold3f3AutPnDhRYIZzLy8v+fj4FBjTsGFD16zf+YYOHarHH3+8wLoWLVqof//+WrRokdq2bVvgtapVq2rq1KmSpAcffFD+/v4aO3asnnjiCTVo0MA1btOmTdq4caOqV68u6fTs5g0bNtT333+vhx566ILnl3+cM4WHh+vOO+/U119/rcqVK6tDhw5q3bq1evToUWCm/WrVqqlt27YaPXq0OnXqpA4dOhTYz/jx4+Xl5eX6+f7779f999+vsWPH6rXXXpOHh4c6deqkiIgIHTt2THfcccdZ28+dO1cLFy50zdIvSfXq1dP999+vxYsXq1WrVuc9v7feeqvA8e+9917V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6DgXkj8z99+3+ft7caYPPvigwM/vv/++JKlbt26XfNwLiYiIUGRkpJYvX15g/cGDB7Vx48azxufk5GjevHmy2WyuwnZ+ofr48eMFxp7rfHNycjR27Niz9uvj46O0tLSz1vfr10/79u3Tp59+etZrp06dUkZGxnnP7VzHN01T77333nm3OfNbB0zT1JgxY+Tu7q6OHTtKko4cOVJgvM1mc33bQHZ2tutcpLPfjws5V9a0tDR9+eWXBcZ17txZfn5+euONN5SVlVXgtTO3Pd/7+Xfh4eFq1KiRvvrqqwJ5169fr99++83193olVqxYIcMw1LJlyyveBwAAAAAAAADg0jDDPAAAAAAAAAAUEw0bNtTAgQP1ySef6Pjx42rfvr3++usvffXVV+rbt6/i4uIua3+jR49WmzZt1KRJE917772qWrWqkpKSNH36dK1evbrA2DvvvFM33XSTJOnVV1+9pP2XL19ekydPVq9evdSwYUPdeuutatasmdzd3bVnzx5NmjRJkgrMCn4+/v7+ateund5++23l5uYqIiJCv/322wVnd9+1a5d69+6trl27asmSJfr222912223qWHDhpeU/1L06dNHkydPlmmarpnJ9+7dq2uvvVbx8fHq2LGjwsLClJqaqu+//15r1qzRo48+6rrhoFGjRrLb7XrrrbeUlpYmDw8PxcfHq1WrVgoKCtLAgQM1bNgwGYahb7755pw3GTRt2lQTJkzQY489pmbNmsnX11e9evXSgAEDNHHiRN1///1KSEhQ69at5XA4tHnzZk2cOFGzZ89WbGzsOc+rdu3aql69up544gnt27dP/v7++umnn3Ts2LFzjvf09NSsWbM0cOBANW/eXDNnztT06dP17LPPKjg4WJI0ZMgQHT16VPHx8apcubJ2796t999/X40aNXLNpH6+9yMkJOS8v4POnTu7Zq6/7777dPLkSX366acKCQnRgQMHXOP8/f317rvvasiQIWrWrJluu+02BQUFac2aNcrMzNRXX311wffzXN555x1169ZNLVu21ODBg3Xq1Cm9//77CggI0IgRI86b+WLmzJmj1q1bq0KFCle8DwAAAAAAAADApaEwDwAAAAAAAADFyGeffaZq1app3Lhxmjx5ssLCwvTMM8/opZdeuux9NWzYUEuXLtULL7ygDz/8UFlZWYqKilK/fv3OGturVy8F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r1696NWrFxERZ16Rr3Xr1q7wdklJCW3btiU/P//4IZxOHnroIR566CEAHnjgAd5//32WLVuG2WymQ4cOhISE4OPjwx9//FGrEquiKHh4eKCqKsXFxSxcuJCFCxeiKAohISEMGTKEadOm0aZNG7c+vbnyYLMPy8Px111GcRVvrTrIk8PasHXrVm699dZaAw1UVaV3795cccUV9OrViy5duriqxp+N1qHeGHUaLHbn+TqFJs+o09A61Nv189GjR/nggw+YNWsWFouFcePG8cQTT9CiRYvG6+QFZDab+e2331wV1nfu3AlAly5deOjv4+k6tDuPL8tplrM21EtROLbkLXwUFa32+MCUkpISdu3ahaenJ1arlV69etGxY0f0en0jd/bC0ul03HHHHdx2220sXLiQ6dOnM2zYMPr27cusWbPo2rUrAHrt6cO5hohWADgqjv25sp7QZOWB3/FKGkTg4Ptc61S7Fae54qSWdT9eF3D8M0zr5Ydniy6n7Vt9NAYPjFGJrp/NaTtQdEaMUe3d2hnO4PzFpUur1bpmGjhfrFZrvcH6eYctrC/yuChmA1EUGN8vQcLyDSgkJIR7772Xe++9l4qKCpYvX878+fN55513eOmll4iOjmbQoEEMHDiQgQMHctVVV9Xah6qq5OXl1QrSp6SksGLFCvLy8lxtvby8XJXoTw7Ux8XFNctA8Re/p128vy82EzVXu9cuYFje4XCwY8cO1qxZw88//8y6deuorKykdevW3HPPPVx//fVcdtllUkleCCGEEAIJzAshhBBCCCGEEEIIIZoZD72WsX1bMHvt4UsmDKDVKDicKu0jfLmybSiz1hxu7C6dV4pGy0f39CWr29usXLmSr776in/84x8AxMTEuMLzvXr1onv37phMptPu09/f3y0U06VLF1fgFuCDDz7ggw8+ACApKYnU1FQWLFhAx44dXW22bdvGk08+yR9//EFlZSXV1dV/9llRMBqNOJ1O8vPz+fbbb/n222/RaDRERkYyevRobhg/mU9+Tb1oAr2qCh/9ksJbk++hIHlTnW2cTicdOnTgkUce+UvH0ms1XN0pgvk7snFcAm90rUbhms6ROB12vl+wiM8++4zly5fj6enJAw88wKRJk85q8Ehz5HA42LNnD6tXr2bFihX88ssvmM1mIiIiGDZsGE8++SSDBw8mLCzM9ZgDlcl8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CCGEEKKZkcC8EEIIIYQQQgghhBBCNILp06fz7rvvugK+l6Ly8nK2b9/O1q1b2bt3L/v27SM5OZmSkhIAdDodrVu3JjEx0W1p27bteQ/En4kjR47wf//3f/z222/ccsstvPHGG0RFRbm2Xz3rN3ZnlV7wfjW2pEhffnywLx9//DGffPIJycnJmM1m4Hhwva5wvN1u59VXX+XTTz8lKyvrlAF6jUZDREQEI0aM4IUXXnB7zk9WWFjIsmXLWLx4MT/99BNlZWV4e3sTGRmJVquloKCAwsJC134TEhJol9iemMQutGyTSOt27QkNj8So12LUa/HUa4kJ8JRwvHCTkZHBI488wo8//siwYcP48ssviYi49Cp/2+123nzzTd5//33S09MBCA0N5f/+7/+YNm0a3t5Nu/LrY298xfz8ALRaLU0xX6g6HSiKwjs3d+babrGN3R0hhBBN2M7MEq59//fG7sYFs/Chy2WWJyGEEEIIcdYkMC+EEEIIIYQQQgghhBCN4JVXXuG99967ZALz1dXV7Ny5k82bN7NlyxY2b97M/v37UVUVT09Pt0B8+/btSUxMpGXLluj1+sbuuhtVVfn666954oknqKqq4sUXX2TChAno9Xqm/riH/2zKwN4Uk5cNRHXYKd+xjOKVH9a53cfHh7KystPux26389JLL/HVV1+dNkCv0+mIiYnhhhtuYOrUqfj5+dW7zw0bNrBkyRKWLFnCnj170Ol09OrVi86dOxMWFkZxcTH79+9n3759ZGRkAODn50f37t3p2bMnPXr0oEePHsTFxblV1ReXppqZE1566SX8/f15++23GTNmzCX32li3bh1Tp07l999/x+FwYDAYGDx4MDNmzKBLly6N3b0zNnr0aArxwThgPJnFVU0qNK+qTvTmUr56YBCXt41s7O4IIYRoBka++yv7c8ua1OfZ+aZRIDHClyUT+jV2V4QQQgghRDMkgXkhhBBCCCGEEEIIIYRoBK+88gqzZs0iNze3sbty3jkcDnbt2sWmTZtc4fg9e/a4gpWdO3emR48erkByYmIiOp2usbt9VkpKSpg6dSrvv/8+HTp04K233qLQtzVP/bC7sbt2gamUrnifkm0/1blVURR69+7Np59+Svv27c94rzabjeDgYBwOB9XV1TidznrbGgwGEhISuOOOO3jiiScwGo11tktPT2fp0qUsWbKE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mfrNb36jgwcPmo4HAE3W/v379eijj6p3795666239Nxzz2nz5s0aPXq06WgAAAAAgBamdf3FEgAAAAAAAACaiMuZMH/O8OHD9f7772vFihUaM2aM9u7dew2TAWgJNmzYoJEjR6q0tFRz585Vp06drst+Q31e3Tw4VT5v65gK7PN6NHN4Z73yv/+jAwcOaOPGjXrmmWd08uRJPfbYY+rcubOGDBmip59+WkuXLpXf7zcdGQCM2717tx577DH16tXLLcrv3btX3/zmNxUTE2M6HgAAAACgBaIwDwAAAAAAAACGXM6E+XMmTpyolStXqqKiQiNGjFBBQcE1TAagOfvjH/+oMWPGKDExUUVFRerXr9913f8DN3RTIHj5JwU1Z4Ggowdu6CrpH+/pgwcP1lNPPaUlS5bo+PHj+stf/qKhQ4fq1Vdf1YQJE5SUlKS7775bv//971VaWmo4PQBcPydPntSvf/1rjR07Vr169dLf/vY3ivIAAAAAgOuGwjwAAAAAAAAAGHAlE+bPGTJkiIqKijRmzBhZlqUf/OAHCgaD1yAdgOaovr5eX/nKV3T//ffrjjvu0LJly9SlS5frnmNI5wT1T41TSx8y7/VIAzrEaXCnhIs+36ZNG9111136v//7Px09elRr1qzRl7/8Ze3du1cPPfSQ2rdvr1GjRum73/2u1qxZw/s5gBanurpab775pm655Ra1b99eX/ziF5WQkKA//elPKikpoSgPAAAAALhuPM6n+VQGAAAAAAAAAHBVnnzySS1btkwbNmy44tcGg0E999xz+u53v6vJkyfrl7/8pfr27dv4IQE0Gx9++KG+8IUvqKioSD/72c/0xBNPXNFVLBrbX9cd0Df+9qGx/V8vP7l9iG4f0emKX1daWqqCggLZtq05c+bo9OnTSkpKUk5OjizLUmZmptq0aXMNEgPAtVVRUaHCwkK9++67+tvf/qbKykqNGjVKDzzwgO68804lJyebjggAAAAAaIUozAMAAAAAAACAAU888YSWL1/+qQrz58ydO1ePPvqoDh48qK9//et69tlnFRUV1XghATR5lZWV+u53v6uXX35Zffr00W9+8xuNHTvWdCzV1AeU/vx8nan1m45yzcSGh2jtM1MVEeq7qu34/X6tWrVKtm3Ltm1t3LhRXq/XvZqIZVkaPHiw0RMgAOBSAoGAioqKNHfuXM2d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ZSk7O1tJSUlGjhVo7crLyy/6u757927t379fwWBQkuTz+dS1a9eLnkDTo0cPJsYDAAAAAPARFOYBAAAAAAAAwIAvfOELWr9+vdauXWs6ikpKSvS73/1Ov/vd77R//361bdtWN998s2bMmKFp06a12OIucL35/X4tWbJE77zzjmbPnq2DBw8qKSlJn/nMZzRr1iz169fPdMTr4s2iA/rWP0vzTflDKs8/b39ksCz/SWpray85cXr37t2qqqpy101OTlbnzp2VkpKi9u3bKyUlRSkpKTpz5ox27typdevWafPmzZKkUaNGudPnR4wYIa/Xa+oQgWYvGAyqrKxMR48e1bFjxy64PXd///79OnXqlPu6uLi4Sxbiu3TpwsmNAAAAAABcAQrzAAAAAAAAAGDA5z//eX3wwQdNojB/TjAY1Lp169wyb3FxsaKiopSVlaUZM2bopptuUmJioumYQLNSXV2tefPm6e2339b777+vU6dOqXPnzpo5c6ZmzpzZaq/oYG86oi/+5QM5jqNgE/ykyuuRPB6PfnHPMOUMTDUd51NxHEelpaUNCvSHDh26oKRbW1vb4HUhISEKCwtTbW2tAoGAIiIi1Lt3b40YMUITJkxQz5493cJ9XFycPB7PJRIALZfjOCorK7to8f2jt6WlpfL7/Q1eHxUVdcHJK507d25QjE9MTOT3CwAAAACARkJhHgAAAAAAAAAM+PznP68NGzZozZo1pqNc0vbt2zV79mzNnj1bq1atks/n08SJE5WZmanJkydr2LBhrbLoC3wcx3G0c+dOFRYWat68eSooKNDZs2eVlpamW2+9VTNnztTw4cMpQUpav79MX3ljgw6UVTWp0rzHI3VpE6Wf3TVUw7u0MR3nmnIcRxUVFRct+h45ckTbtm3T3r17deLECdXX11/w+vDwcLfwe37x96OPJScnKzY2lkn1aNICgYD7+/BxBfhzz330dyIyMvITfxfO3Y+JiTF0lAAAAAAAtE4U5gEAAAAAAADAgM997nPauHFjky7Mn+/w4cN677339O6772rJkiWqqqpSXFycJkyYoIyMDGVkZGjIkCGUIdEqlZSUaOHChSosLNTChQt16NAh+Xw+jRo1Srfccotmzpypvn37mo7ZJNXUB/TTeTv0m6V75PHIaHHe65EcR/r8hB76ytQ+igj1mQvTBB04cEBvvfWW3n//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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "G = pg.graph.backend\n", + "\n", + "mapping = {state: f\"State {i}\" for i, state in enumerate(G.nodes())}\n", + "G_labeled = nx.relabel_nodes(G, mapping)\n", + "\n", + "plt.figure(figsize=(30, 10))\n", + "pos = nx.spring_layout(G_labeled, seed=42)\n", + "\n", + "nx.draw(\n", + " G_labeled,\n", + " pos,\n", + " with_labels=True,\n", + " node_size=2000,\n", + " arrows=True\n", + ")\n", + "\n", + "plt.title(\"Policy Graph (State abstraction)\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "cf593446-2828-4b94-a6cd-ab387a665d33", + "metadata": {}, + "source": [ + "The resulting Policy Graph contains 22 symbolic states. This is a significant increase compared with the first environment, where the graph was much smaller and mainly concentrated around stable landing states. Since the same discretizer is used in both notebooks, this difference cannot be attributed to a change in the symbolic representation. Instead, it reflects a change in the behaviour learned by the agent under more difficult environmental conditions.\n", + "\n", + "In the first environment, the agent mostly visited states where the lander was centered, upright, hovering, with no horizontal movement and no angular rotation. These states represented a very stable behaviour close to the landing zone. In contrast, the second environment produces a richer set of states. Although many states are still stable in terms of vertical velocity, horizontal velocity and angle, the lander now appears in different horizontal positions, with partial leg contacts, small rotations and occasional tilted orientations." + ] + }, + { + "cell_type": "markdown", + "id": "141f2821-ea97-467c-8856-2e16eae6c656", + "metadata": {}, + "source": [ + "#### P(s) of each State" + ] + }, + { + "cell_type": "markdown", + "id": "9ad3c534-dbd1-42a9-b8a4-c38eaf353b2c", + "metadata": {}, + "source": [ + "This is the probability of the agent visiting each State s and how many times that s was visited." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "10a30ebf-5dd0-45cb-bba4-9e867b79d002", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Estado 0: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 59154\n", + " p(s): 0.162794\n", + "Estado 1: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 5601\n", + " p(s): 0.015414\n", + "Estado 2: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2681\n", + " p(s): 0.007378\n", + "Estado 3: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 67023\n", + " p(s): 0.184450\n", + "Estado 4: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 217948\n", + " p(s): 0.599801\n", + "Estado 5: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 4593\n", + " p(s): 0.012640\n", + "Estado 6: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 4562\n", + " p(s): 0.012555\n", + "Estado 7: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1481\n", + " p(s): 0.004076\n", + "Estado 8: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 5\n", + " p(s): 0.000014\n", + "Estado 9: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 4\n", + " p(s): 0.000011\n", + "Estado 10: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('XPos', 'RIGHT_POS'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s): 0.000006\n", + "Estado 11: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 218\n", + " p(s): 0.000600\n", + "Estado 12: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 12\n", + " p(s): 0.000033\n", + "Estado 13: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 13\n", + " p(s): 0.000036\n", + "Estado 14: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_LEFT')]\n", + " Times visited: 5\n", + " p(s): 0.000014\n", + "Estado 15: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 10\n", + " p(s): 0.000028\n", + "Estado 16: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 5\n", + " p(s): 0.000014\n", + "Estado 17: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 9\n", + " p(s): 0.000025\n", + "Estado 18: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + " Times visited: 4\n", + " p(s): 0.000011\n", + "Estado 19: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 29\n", + " p(s): 0.000080\n", + "Estado 20: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'MOVE_RIGHT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s): 0.000006\n", + "Estado 21: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + " Times visited: 6\n", + " p(s): 0.000017\n" + ] + } + ], + "source": [ + "for i, state in enumerate(pg.states):\n", + " data = pg.states[state]\n", + "\n", + " print(f\"Estado {i}: {state}\")\n", + " print(f\" Times visited: {data.metadata.frequency}\")\n", + " print(f\" p(s): {data.metadata.probability:.6f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "058e3cc5-616a-4f26-b6fa-03b7c0aab4e7", + "metadata": {}, + "source": [ + "The most frequent state is state 4, with probability 0.5998. This state represents the lander centered in the descent zone, hovering, upright, without horizontal movement, without angular rotation and without contact with the ground. Therefore, most of the observed behaviour corresponds to the agent being close to the landing area in a controlled posture, but still before final contact.\n", + "\n", + "The second most frequent state is state 3, with probability 0.1844. This state represents the lander centered in the descent zone, hovering, upright, without horizontal or angular movement, and with both legs touching the ground. This can be interpreted as the main successful landing-related symbolic state.\n", + "\n", + "The third most frequent state is state 0, with probability 0.1628. In this case, the lander is centered, upright and stable, but still at high altitude and without ground contact. This suggests that the agent often reaches a controlled configuration before descending into the landing zone.\n", + "\n", + "Together, states 4, 3 and 0 account for approximately 94.7% of all visited states. This is an important result because it shows that the policy is not spread randomly across many unstable situations. Instead, the agent spends most of its time in symbolic states that are centered, upright, hovering and without horizontal or angular instability.\n", + "\n", + "The remaining states have much lower probabilities. States 1 and 2 represent partial landing contact, where only one leg touches the ground while the lander is still centered, upright and stable. These states can be interpreted as intermediate steps before reaching the both-leg contact state.\n", + "\n", + "States 5 and 6 represent the lander in the descent zone but displaced to the left or to the right. Their probabilities are around 0.0126 each, which makes them secondary but still relevant. These states are especially important in this second environment because wind and turbulence can push the lander away from the center, requiring corrective behaviour.\n", + "\n", + "Most of the other states have extremely small probabilities. Some of them include tilted orientations, horizontal movement, angular rotation or asymmetric contacts away from the center. These states are not dominant in the learned policy, but they show that the harder environment occasionally introduces perturbations that move the lander away from the ideal trajectory." + ] + }, + { + "cell_type": "markdown", + "id": "774791a4-2dc7-482b-b87a-3a6dcc2483f5", + "metadata": {}, + "source": [ + "#### P(a|s) for each State" + ] + }, + { + "cell_type": "markdown", + "id": "f29bcd17-a140-447c-87b0-443b54174ab1", + "metadata": {}, + "source": [ + "It is the probability of doing an Action a in a State s." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "14f73d31-917d-4106-9424-80b8522e2bf7", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "Estado 0: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Do nothing: 0.791\n", + " -> Right engine: 0.120\n", + " -> Right engine: 0.044\n", + " -> Main engine: 0.019\n", + " -> Left engine: 0.013\n", + " -> Main engine: 0.006\n", + " -> Main engine: 0.006\n", + "\n", + "Estado 1: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Main engine: 0.457\n", + " -> Right engine: 0.160\n", + " -> Right engine: 0.160\n", + " -> Right engine: 0.123\n", + " -> Left engine: 0.037\n", + " -> Left engine: 0.019\n", + " -> Main engine: 0.012\n", + " -> Left engine: 0.006\n", + " -> Main engine: 0.006\n", + " -> Main engine: 0.006\n", + " -> Main engine: 0.006\n", + " -> Right engine: 0.006\n", + "\n", + "Estado 2: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Left engine: 0.744\n", + " -> Left engine: 0.189\n", + " -> Do nothing: 0.034\n", + " -> Do nothing: 0.023\n", + " -> Main engine: 0.001\n", + " -> Right engine: 0.001\n", + " -> Main engine: 0.001\n", + " -> Main engine: 0.001\n", + " -> Main engine: 0.001\n", + " -> Main engine: 0.001\n", + " -> Main engine: 0.001\n", + "\n", + "Estado 3: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Do nothing: 0.438\n", + " -> Do nothing: 0.250\n", + " -> Do nothing: 0.198\n", + " -> Right engine: 0.031\n", + " -> Right engine: 0.010\n", + " -> Main engine: 0.010\n", + " -> Main engine: 0.010\n", + " -> Left engine: 0.010\n", + " -> Right engine: 0.010\n", + " -> Left engine: 0.010\n", + " -> Left engine: 0.010\n", + " -> Main engine: 0.010\n", + "\n", + "Estado 4: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Do nothing: 0.483\n", + " -> Do nothing: 0.158\n", + " -> Left engine: 0.128\n", + " -> Left engine: 0.059\n", + " -> Do nothing: 0.054\n", + " -> Do nothing: 0.034\n", + " -> Right engine: 0.025\n", + " -> Right engine: 0.010\n", + " -> Left engine: 0.005\n", + " -> Right engine: 0.005\n", + " -> Main engine: 0.005\n", + " -> Main engine: 0.005\n", + " -> Left engine: 0.005\n", + " -> Main engine: 0.005\n", + " -> Do nothing: 0.005\n", + " -> Left engine: 0.005\n", + " -> Main engine: 0.005\n", + " -> Main engine: 0.005\n", + "\n", + "Estado 5: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Right engine: 0.721\n", + " -> Left engine: 0.105\n", + " -> Right engine: 0.047\n", + " -> Right engine: 0.023\n", + " -> Right engine: 0.023\n", + " -> Do nothing: 0.012\n", + " -> Main engine: 0.012\n", + " -> Left engine: 0.012\n", + " -> Main engine: 0.012\n", + " -> Right engine: 0.012\n", + " -> Do nothing: 0.012\n", + " -> Left engine: 0.012\n", + "\n", + "Estado 6: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Right engine: 0.718\n", + " -> Right engine: 0.155\n", + " -> Right engine: 0.028\n", + " -> Main engine: 0.028\n", + " -> Left engine: 0.014\n", + " -> Do nothing: 0.014\n", + " -> Main engine: 0.014\n", + " -> Main engine: 0.014\n", + " -> Main engine: 0.014\n", + "\n", + "Estado 7: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Left engine: 0.826\n", + " -> Main engine: 0.087\n", + " -> Right engine: 0.043\n", + " -> Do nothing: 0.022\n", + " -> Main engine: 0.022\n", + "\n", + "Estado 8: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Main engine: 0.500\n", + " -> Main engine: 0.250\n", + " -> Left engine: 0.250\n", + "\n", + "Estado 9: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Main engine: 0.250\n", + " -> Main engine: 0.250\n", + " -> Left engine: 0.250\n", + " -> Left engine: 0.250\n", + "\n", + "Estado 10: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('XPos', 'RIGHT_POS'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Main engine: 1.000\n", + "\n", + "Estado 11: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Right engine: 0.944\n", + " -> Main engine: 0.028\n", + " -> Do nothing: 0.014\n", + " -> Main engine: 0.014\n", + "\n", + "Estado 12: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Main engine: 0.750\n", + " -> Main engine: 0.250\n", + "\n", + "Estado 13: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Main engine: 0.286\n", + " -> Right engine: 0.286\n", + " -> Right engine: 0.143\n", + " -> Do nothing: 0.143\n", + " -> Main engine: 0.143\n", + "\n", + "Estado 14: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_LEFT')]\n", + "P(a|s):\n", + " -> Left engine: 1.000\n", + "\n", + "Estado 15: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Main engine: 0.700\n", + " -> Main engine: 0.100\n", + " -> Main engine: 0.100\n", + " -> Main engine: 0.100\n", + "\n", + "Estado 16: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Main engine: 1.000\n", + "\n", + "Estado 17: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Main engine: 0.889\n", + " -> Main engine: 0.111\n", + "\n", + "Estado 18: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + "P(a|s):\n", + " -> Right engine: 1.000\n", + "\n", + "Estado 19: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Left engine: 0.833\n", + " -> Do nothing: 0.056\n", + " -> Right engine: 0.056\n", + " -> Right engine: 0.056\n", + "\n", + "Estado 20: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'MOVE_RIGHT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "P(a|s):\n", + " -> Main engine: 0.500\n", + " -> Main engine: 0.500\n", + "\n", + "Estado 21: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + "P(a|s):\n", + " -> Right engine: 1.000\n" + ] + } + ], + "source": [ + "for i, state in enumerate(pg.states):\n", + "\n", + " print(f\"\\nEstado {i}: {state}\")\n", + " print(\"P(a|s):\")\n", + "\n", + " actions_probs = approximator_loaded.question1(state)\n", + "\n", + " for action, prob in actions_probs:\n", + " print(f\" -> {action_names[action]}: {prob:.3f}\")" + ] + }, + { + "cell_type": "markdown", + "id": "f162e4e3-f9bb-45d4-9d76-8506e0e99980", + "metadata": {}, + "source": [ + "The most relevant states are again states 0, 3 and 4, because they were the most frequently visited states in the previous analysis.\n", + "\n", + "In state 0, the lander is centered, at high altitude, hovering, upright, with no horizontal movement and no angular rotation. The dominant action is `Do nothing`, with probability 0.791. This suggests that, when the lander is already stable at high altitude, the agent usually avoids unnecessary corrections and lets the lander continue its trajectory. This is coherent with the symbolic description of the state, since there is no lateral displacement, no rotation and no tilt that needs to be corrected.\n", + "\n", + "In state 4, the lander is centered in the descent zone, hovering, upright, without horizontal movement, without angular rotation and without contact with the ground. The most frequent action is also `Do nothing`. If the repeated entries are considered together, the tendency to do nothing is clearly dominant. This indicates that, when the lander is already close to the landing zone and stable, the agent often chooses not to apply thrust. This can be interpreted as an attempt to preserve stability and avoid introducing unnecessary movement before contact.\n", + "\n", + "In state 3, the lander has both legs in contact with the ground, is centered, upright, hovering, and has no horizontal or angular movement. The dominant action is again `Do nothing`, with several repeated entries that together represent most of the probability. This is a desirable behaviour: once the lander has reached a stable contact state, the best action is usually to stop using the engines and remain still.\n", + "\n", + "The secondary states show more corrective behaviour. For example, state 5 represents the lander in the descent zone, displaced to the left, but still upright and without horizontal or angular movement. In this state, the dominant action is `Right engine`, with probability 0.721. This suggests that the agent is trying to compensate for the lateral displacement and move the lander back toward the center.\n", + "\n", + "States involving partial contact also show active corrections. In state 1, where only the left leg is touching the ground while the lander is centered and upright, the dominant action is `Main engine`. This may indicate that the agent is trying to reduce or correct an unstable contact situation instead of simply remaining passive. In state 2, where only the right leg is touching the ground, the dominant action is `Left engine`, suggesting an asymmetric correction after partial contact.\n", + "\n", + "The rare states with tilted orientation or movement also tend to have very deterministic corrective actions. For example, state 14, where the lander is tilted left with left-leg contact, selects `Left engine` with probability 1.000. State 18, where the lander is tilted right without contact, selects `Right engine` with probability 1.000. These states were visited very few times, so they should not be overinterpreted, but they suggest that the policy reacts strongly when an angular deviation appears." + ] + }, + { + "cell_type": "markdown", + "id": "1c751dd3-9554-439d-86b0-e690d848c6c5", + "metadata": {}, + "source": [ + "#### P(s', a|s) for each State" + ] + }, + { + "cell_type": "markdown", + "id": "0768a1b0-826c-4798-a9c6-7e2aeefb07fc", + "metadata": {}, + "source": [ + "It is the probability of arriving to a State s' from a State s when in s the agent realize Action a." + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "2e927605-0982-4882-bbc7-06a6bf638464", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Transition 0\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.013\n", + "\n", + "Transition 1\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 7\n", + " p(s_to,a | s_from): 0.044\n", + "\n", + "Transition 2\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.006\n", + "\n", + "Transition 3\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 3\n", + " p(s_to,a | s_from): 0.019\n", + "\n", + "Transition 4\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 125\n", + " p(s_to,a | s_from): 0.791\n", + "\n", + "Transition 5\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.006\n", + "\n", + "Transition 6\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 19\n", + " p(s_to,a | s_from): 0.120\n", + "\n", + "Transition 7\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 20\n", + " p(s_to,a | s_from): 0.123\n", + "\n", + "Transition 8\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.006\n", + "\n", + "Transition 9\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.012\n", + "\n", + "Transition 10\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.006\n", + "\n", + "Transition 11\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 26\n", + " p(s_to,a | s_from): 0.160\n", + "\n", + "Transition 12\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 6\n", + " p(s_to,a | s_from): 0.037\n", + "\n", + "Transition 13\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.006\n", + "\n", + "Transition 14\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_LEFT')]\n", + " Times visited: 3\n", + " p(s_to,a | s_from): 0.019\n", + "\n", + "Transition 15\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 26\n", + " p(s_to,a | s_from): 0.160\n", + "\n", + "Transition 16\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.006\n", + "\n", + "Transition 17\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 74\n", + " p(s_to,a | s_from): 0.457\n", + "\n", + "Transition 18\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.006\n", + "\n", + "Transition 19\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.001\n", + "\n", + "Transition 20\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 16\n", + " p(s_to,a | s_from): 0.023\n", + "\n", + "Transition 21\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 134\n", + " p(s_to,a | s_from): 0.189\n", + "\n", + "Transition 22\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.001\n", + "\n", + "Transition 23\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.001\n", + "\n", + "Transition 24\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 527\n", + " p(s_to,a | s_from): 0.744\n", + "\n", + "Transition 25\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.001\n", + "\n", + "Transition 26\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.001\n", + "\n", + "Transition 27\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.001\n", + "\n", + "Transition 28\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 24\n", + " p(s_to,a | s_from): 0.034\n", + "\n", + "Transition 29\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.001\n", + "\n", + "Transition 30\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 24\n", + " p(s_to,a | s_from): 0.250\n", + "\n", + "Transition 31\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.010\n", + "\n", + "Transition 32\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.010\n", + "\n", + "Transition 33\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 42\n", + " p(s_to,a | s_from): 0.438\n", + "\n", + "Transition 34\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.010\n", + "\n", + "Transition 35\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.010\n", + "\n", + "Transition 36\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.010\n", + "\n", + "Transition 37\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.010\n", + "\n", + "Transition 38\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 3\n", + " p(s_to,a | s_from): 0.031\n", + "\n", + "Transition 39\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 19\n", + " p(s_to,a | s_from): 0.198\n", + "\n", + "Transition 40\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.010\n", + "\n", + "Transition 41\n", + "From: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.010\n", + "\n", + "Transition 42\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 11\n", + " p(s_to,a | s_from): 0.054\n", + "\n", + "Transition 43\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 44\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 45\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 46\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 32\n", + " p(s_to,a | s_from): 0.158\n", + "\n", + "Transition 47\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 48\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 49\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 26\n", + " p(s_to,a | s_from): 0.128\n", + "\n", + "Transition 50\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 51\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 5\n", + " p(s_to,a | s_from): 0.025\n", + "\n", + "Transition 52\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 53\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 98\n", + " p(s_to,a | s_from): 0.483\n", + "\n", + "Transition 54\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 55\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 56\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.005\n", + "\n", + "Transition 57\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.010\n", + "\n", + "Transition 58\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 7\n", + " p(s_to,a | s_from): 0.034\n", + "\n", + "Transition 59\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 12\n", + " p(s_to,a | s_from): 0.059\n", + "\n", + "Transition 60\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 9\n", + " p(s_to,a | s_from): 0.105\n", + "\n", + "Transition 61\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 4\n", + " p(s_to,a | s_from): 0.047\n", + "\n", + "Transition 62\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.012\n", + "\n", + "Transition 63\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.012\n", + "\n", + "Transition 64\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.012\n", + "\n", + "Transition 65\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.012\n", + "\n", + "Transition 66\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.023\n", + "\n", + "Transition 67\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.023\n", + "\n", + "Transition 68\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.012\n", + "\n", + "Transition 69\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 62\n", + " p(s_to,a | s_from): 0.721\n", + "\n", + "Transition 70\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.012\n", + "\n", + "Transition 71\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.012\n", + "\n", + "Transition 72\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.028\n", + "\n", + "Transition 73\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 11\n", + " p(s_to,a | s_from): 0.155\n", + "\n", + "Transition 74\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.014\n", + "\n", + "Transition 75\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.014\n", + "\n", + "Transition 76\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.014\n", + "\n", + "Transition 77\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'MOVE_RIGHT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.014\n", + "\n", + "Transition 78\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.014\n", + "\n", + "Transition 79\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 51\n", + " p(s_to,a | s_from): 0.718\n", + "\n", + "Transition 80\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.028\n", + "\n", + "Transition 81\n", + "From: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.043\n", + "\n", + "Transition 82\n", + "From: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.022\n", + "\n", + "Transition 83\n", + "From: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.022\n", + "\n", + "Transition 84\n", + "From: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 4\n", + " p(s_to,a | s_from): 0.087\n", + "\n", + "Transition 85\n", + "From: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 38\n", + " p(s_to,a | s_from): 0.826\n", + "\n", + "Transition 86\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.250\n", + "\n", + "Transition 87\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('XPos', 'RIGHT_POS'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.250\n", + "\n", + "Transition 88\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.500\n", + "\n", + "Transition 89\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('XPos', 'RIGHT_POS'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.250\n", + "\n", + "Transition 90\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.250\n", + "\n", + "Transition 91\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.250\n", + "\n", + "Transition 92\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.250\n", + "\n", + "Transition 93\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('XPos', 'RIGHT_POS'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 1.000\n", + "\n", + "Transition 94\n", + "From: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.028\n", + "\n", + "Transition 95\n", + "From: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.014\n", + "\n", + "Transition 96\n", + "From: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 68\n", + " p(s_to,a | s_from): 0.944\n", + "\n", + "Transition 97\n", + "From: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.014\n", + "\n", + "Transition 98\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 9\n", + " p(s_to,a | s_from): 0.750\n", + "\n", + "Transition 99\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 3\n", + " p(s_to,a | s_from): 0.250\n", + "\n", + "Transition 100\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.286\n", + "\n", + "Transition 101\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.143\n", + "\n", + "Transition 102\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 0.286\n", + "\n", + "Transition 103\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.143\n", + "\n", + "Transition 104\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.143\n", + "\n", + "Transition 105\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_LEFT')]\n", + "Action: Left engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_LEFT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 1.000\n", + "\n", + "Transition 106\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.100\n", + "\n", + "Transition 107\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.100\n", + "\n", + "Transition 108\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 7\n", + " p(s_to,a | s_from): 0.700\n", + "\n", + "Transition 109\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.100\n", + "\n", + "Transition 110\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 4\n", + " p(s_to,a | s_from): 1.000\n", + "\n", + "Transition 111\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 8\n", + " p(s_to,a | s_from): 0.889\n", + "\n", + "Transition 112\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.111\n", + "\n", + "Transition 113\n", + "From: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + "Action: Right engine\n", + "To: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + " Times visited: 2\n", + " p(s_to,a | s_from): 1.000\n", + "\n", + "Transition 114\n", + "From: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Left engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 15\n", + " p(s_to,a | s_from): 0.833\n", + "\n", + "Transition 115\n", + "From: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Do nothing\n", + "To: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.056\n", + "\n", + "Transition 116\n", + "From: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.056\n", + "\n", + "Transition 117\n", + "From: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Right engine\n", + "To: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.056\n", + "\n", + "Transition 118\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'MOVE_RIGHT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'MOVE_RIGHT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.500\n", + "\n", + "Transition 119\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'MOVE_RIGHT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + "Action: Main engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Times visited: 1\n", + " p(s_to,a | s_from): 0.500\n", + "\n", + "Transition 120\n", + "From: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + "Action: Right engine\n", + "To: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + " Times visited: 5\n", + " p(s_to,a | s_from): 1.000\n", + "\n" + ] + } + ], + "source": [ + "for i, transition in enumerate(pg.transitions):\n", + " from_state = transition.from_state\n", + " to_state = transition.to_state\n", + " action = transition.transition.action\n", + "\n", + " print(f\"Transition {i}\")\n", + " print(f\"From: {from_state}\")\n", + " print(f\"Action: {action_names[action]}\")\n", + " print(f\"To: {to_state}\")\n", + " print(f\" Times visited: {transition.transition.frequency}\")\n", + " print(f\" p(s_to,a | s_from): {transition.transition.probability:.3f}\")\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "bbf5fa42-aba6-448c-a56e-43bd3dd773f1", + "metadata": {}, + "source": [ + "The first relevant transition pattern appears in the centered high-altitude state. In this state, the lander is centered, upright, hovering, without horizontal movement, without angular rotation and without contact with the ground. The dominant transition from this state uses the action `Do nothing` and leads to the centered descent-zone state with probability 0.791. This suggests that, when the lander is already stable at high altitude, the policy usually avoids applying thrust and allows the lander to continue descending naturally towards the landing zone.\n", + "\n", + "This behaviour is coherent with the symbolic state description. Since the lander is already centered and stable, applying lateral or main thrust could introduce unnecessary changes. Therefore, the most common transition preserves the controlled posture while moving from high altitude to the descent zone.\n", + "\n", + "Another important group of transitions starts from the centered descent-zone state without contact. This state represents the lander close to the landing area, upright, hovering, without horizontal movement and without angular rotation. From this state, the most relevant transitions lead to contact states. In particular, there is a transition with action `Do nothing` toward a right-leg contact state with probability 0.483, and another transition with action `Do nothing` toward the both-leg contact state with probability 0.158.\n", + "\n", + "This indicates that the agent often reaches the landing phase without needing strong corrections. In many cases, simply not applying thrust allows the lander to progress from a stable descent-zone state into ground contact. This supports the interpretation that the policy has learned to approach the ground in a controlled way, at least at the symbolic level.\n", + "\n", + "The transitions from the both-leg contact state are also meaningful. When the lander is centered, upright, stable and touching the ground with both legs, the dominant action is mostly `Do nothing`. Several transitions from this state use `Do nothing`, either remaining in the same both-leg contact state or moving temporarily to one-leg contact states.\n", + "\n", + "The fact that `Do nothing` appears frequently from this state is desirable, because once the lander has reached a stable contact configuration, the policy should avoid unnecessary engine activations. However, some transitions move from both-leg contact back to single-leg contact states. This suggests that the symbolic landing state may not always be fully terminal or perfectly stable in the observed trajectories. It may represent a brief stable contact within a continuing episode, rather than a guaranteed final successful landing.\n", + "\n", + "The partial-contact states reveal how the policy behaves when the landing is not yet fully symmetric. For example, from the centered state with only left-leg contact, the most frequent transition keeps the agent in the same symbolic state using the `Main engine`, with probability 0.457. Other relevant transitions from this state lead either to both-leg contact or back to no-contact states.\n", + "\n", + "This suggests that partial contact is not always immediately resolved into a complete landing. The agent may remain in an intermediate contact situation for some time, or may temporarily lose contact again. Therefore, these transitions are useful to understand the final landing phase in more detail: the agent often reaches the ground, but the transition from partial contact to stable both-leg contact is not perfectly direct.\n", + "\n", + "The graph also contains transitions from laterally displaced states. For instance, when the lander is in the descent zone and displaced to the left, the dominant transition uses `Right engine` and remains in the same symbolic left-position state with probability 0.721. Although this does not immediately move the lander back to the center in the symbolic representation, it shows that the policy reacts actively to lateral displacement.\n", + "\n", + "There are also smaller-probability transitions from the left-position state back to the centered descent-zone state. This indicates that some corrective transitions are observed, but the symbolic abstraction may require several environment steps before a continuous correction becomes visible as a change of symbolic position.\n", + "\n", + "Overall, the transition analysis shows that the policy follows a mostly coherent structure. From stable high-altitude states, the agent usually descends toward the landing zone without applying thrust. From stable descent-zone states, many transitions naturally progress toward ground contact. Once both legs are in contact, the policy frequently selects `Do nothing`, which is the expected behaviour for a stable landing configuration.\n", + "\n", + "At the same time, the transition graph also reveals that the landing process is not perfectly clean. Some transitions move from both-leg contact back to single-leg contact, and some partial-contact states persist instead of immediately resolving into a final stable state. This suggests that the policy reaches landing-like symbolic configurations, but the final contact phase can still include oscillations or temporary instability.\n", + "\n", + "Therefore, the transition graph provides a more detailed explanation than the state distribution alone. It shows not only where the agent spends time, but also how it moves between stable descent, partial contact and landing-related states." + ] + }, + { + "cell_type": "markdown", + "id": "9c327f3c-cf5d-44cb-8505-554fe8dedeb8", + "metadata": {}, + "source": [ + "### Registering a Desire in a PG (First Attempt)" + ] + }, + { + "cell_type": "markdown", + "id": "b213d176-0408-4732-bd4a-2b00f42d325f", + "metadata": {}, + "source": [ + "The first think you will have to do is create a new PG but a with `GraphRepresentation` that includes *IntentionalStateMetadata* as *state_metadata_class* value." + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "d874f462-8731-468d-aa3f-80c184ae8056", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.desire import IntentionalStateMetadata\n", + "\n", + "representation = GraphRepresentation(\n", + " state_metadata_class=IntentionalStateMetadata\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "5dc78f95-023a-431f-aeab-c2b2f42dd3cd", + "metadata": {}, + "source": [ + "Creating the intention aware approximator." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "4565affb-ad05-4055-9784-ce19ad4507e8", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon import IntentionAwarePolicyApproximator\n", + "\n", + "approximator = IntentionAwarePolicyApproximator(\n", + " discretizer=discretizer,\n", + " policy_representation=representation,\n", + " environment=env,\n", + " agent=agent,\n", + " verbose=True\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "d2737c36-3fd7-479b-be95-f2ab89ac70e5", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Fit 500" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "efdcc368-638d-4cb1-aef0-e45bcdea62b1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initiating mapping of the DQN policy to pgeon...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Fitting policy approximator...: 100%|█████████████████████████████████████| 500/500 [01:55<00:00, 4.31it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡Mapping completed!\n", + "Discovered states: 22\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "print(\"Initiating mapping of the DQN policy to pgeon...\")\n", + "approximator.fit(n_episodes=500)\n", + "\n", + "print(f\"¡Mapping completed!\")\n", + "print(f\"Discovered states: {len(list(approximator.policy_representation.states))}\")" + ] + }, + { + "cell_type": "markdown", + "id": "37bafb9b-ac3d-41da-ac6e-6635ae9fa14b", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Save Fit" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "5f3efe9f-dce5-48c2-b767-2bf7be7137f1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator saved successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_intention_fit_500_example2.dill\", \"wb\") as f:\n", + " dill.dump(approximator, f)\n", + "\n", + "print(\"¡DQN approximator saved successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "49e14edc-9d4f-43f6-b895-59ca19526625", + "metadata": {}, + "source": [ + "#### Load Fit" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "804a8414-4af1-486a-88b9-306c58bd861f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator loaded successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_intention_fit_500_example2.dill\", \"rb\") as f:\n", + " approximator = dill.load(f)\n", + "\n", + "print(\"¡DQN approximator loaded successfully!\")" + ] + }, + { + "cell_type": "markdown", + "id": "0be27ff1-eab7-44b5-84c7-ed3abdf435d2", + "metadata": {}, + "source": [ + "#### Declaring the desire and registering in the PG" + ] + }, + { + "cell_type": "markdown", + "id": "68253341-9d59-4b8a-8a5d-6e0a04762218", + "metadata": {}, + "source": [ + "The first thing you have to do is defining the goal state of the desire." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "e35a1423-ff31-4364-9f46-709d3daa017b", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.discretizer import Predicate, PredicateBasedState\n", + "\n", + "goal_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.UPRIGHT),\n", + " Predicate(Contact.BOTH_LEGS),\n", + " Predicate(XPos.CENTER_POS)\n", + " }\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "eb35f312-62a2-4c20-a5d7-fe10c2b702de", + "metadata": {}, + "source": [ + "After defining the goal state, a Desire is defined by assigning a name and associating it with a specific action, enabling the model to relate goal conditions with action-driven behavior." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "895e8598-1ff3-4e2d-bae9-0679cbe8fc11", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.desire import Desire\n", + "from pgeon.discretizer import Action\n", + "\n", + "desire = Desire(\n", + " name=\"rest_after_landing\",\n", + " action=Action(0),\n", + " clause=goal_state\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "66268fb6-fccf-4f67-944f-749de0fa635d", + "metadata": {}, + "source": [ + "Once the desire is created, it is registered in the IPG and it is calculated the statistics of this desire." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "b2375081-252b-4332-9988-6071aad2c442", + "metadata": {}, + "outputs": [], + "source": [ + "approximator.register_desire(desire)" + ] + }, + { + "cell_type": "markdown", + "id": "8831826c-2225-40da-a291-3474332bf43f", + "metadata": {}, + "source": [ + "#### Computing P(a∊ Ad | s∊Sd)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "06ea1ee6-7ebb-47d5-960e-4efdd976a039", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([0.8854166666666666],\n", + " [[('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "approximator.compute_desire_statistics(desire)" + ] + }, + { + "cell_type": "markdown", + "id": "f87409ac-62a2-4d88-a57f-6bcec0ca3f6c", + "metadata": {}, + "source": [ + "The method `compute_desire_statistics(desire)` identifies all symbolic states that satisfy the desire clause and computes the probability of selecting the desired action in those states.\n", + "\n", + "In this case, only one symbolic state satisfies the desire conditions:\n", + "\n", + "- `Contact = BOTH_LEGS`\n", + "- `XPos = CENTER_POS`\n", + "- `Angle = UPRIGHT`\n", + "\n", + "This state also includes additional predicates that describe a fully stable landing configuration: the lander is in the descent zone, hovering, without horizontal movement and without angular rotation.\n", + "\n", + "The result is `0.8854`, this means that when the agent is in a state satisfying the desire clause, it selects the desired action `Do nothing` with probability 0.8854. This is a high value and indicates that the policy strongly supports the desire `rest_after_landing`.\n", + "\n", + "Therefore, once the agent reaches the symbolic landing state, it usually behaves as expected: it does not activate any engine and remains inactive. This is coherent with the meaning of the desire, because after a stable landing the best action is to rest rather than applying additional thrust.\n", + "\n", + "The result also shows that only one state satisfies the desire clause. This is expected because the desire is defined with strict conditions: the lander must be centered, upright and touching the ground with both legs. Other states may be close to this situation, such as one-leg contact states or non-centered both-leg contact states, but they do not fully satisfy the clause." + ] + }, + { + "cell_type": "markdown", + "id": "81cd4a3d-8e78-4596-8b9f-46ab4ccd9276", + "metadata": {}, + "source": [ + "#### Computing Id(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "fa0b769e-a9ae-4f68-97ff-9f9115914879", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "State: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.340323810109263\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.507007599938997\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.3844847030280586\n", + "\n", + "State: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.9304980838755531\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.39365794641005286\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.20551794939606768\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.2352391029516987\n", + "\n", + "State: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.1550235330754562\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.1628551622396276\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.2916853246126452\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('XPos', 'RIGHT_POS'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.1628551622396276\n", + "\n", + "State: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.12707505439918687\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.13270931735144578\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.15332560471563358\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_LEFT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.0\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.38941635186481827\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.0\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.0\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.0\n", + "\n", + "State: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.9067409994088994\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'MOVE_RIGHT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.11689724747595603\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.0\n", + "\n" + ] + } + ], + "source": [ + "for s in approximator.get_all_state_ids():\n", + " intentions = approximator.get_intentions(s)\n", + " \n", + " print(f\"State: {s}\")\n", + " \n", + " for d, I_ds in intentions.items():\n", + " print(f\" Desire: {d.name} -> I_d(s) = {I_ds}\")\n", + " \n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "985b6610-4844-405d-a42f-5bd2c0820e16", + "metadata": {}, + "source": [ + "The highest intention value appears in the centered both-leg contact state, with `I_d(s) = 0.9305`. This is expected because this state directly satisfies the desire clause: the lander is upright, centered and touching the ground with both legs. Therefore, this state is strongly associated with the intention of resting after landing.\n", + "\n", + "There is also a very high intention value for the state where the lander has both legs touching the ground but is positioned to the right, with `I_d(s) = 0.9067`. This state does not fully satisfy the desire clause because the lander is not centered, but it is still very close to the desired landing situation. Its high value suggests that the intention mechanism identifies it as strongly related to the same landing-resting behaviour.\n", + "\n", + "States with partial contact receive intermediate intention values. For example, the centered left-leg contact state has `I_d(s) = 0.5070`, while the centered right-leg contact state has `I_d(s) = 0.3845`. These states do not fully satisfy the desire because only one leg is touching the ground, but they are close to the final landing condition. This suggests that the intention mechanism captures them as intermediate states related to the desire.\n", + "\n", + "The centered descent-zone state without contact has `I_d(s) = 0.3937`, and the centered high-altitude state has `I_d(s) = 0.3403`. These values indicate that the desire is not only associated with the final contact state, but also with earlier stable states that may lead toward it. The agent is not yet satisfying the desire in these states, but they are part of a plausible trajectory toward landing. \n", + "\n", + "Lower intention values appear in states that are farther from the desired landing configuration. For example, displaced states without contact receive lower values, such as `0.2055` for the left-position descent-zone state and `0.2352` for the right-position descent-zone state. These states are still upright and stable, but they lack either the centered position or the final ground contact required by the desire.\n", + "\n", + "Finally, some states have an intention value of `0.0`. These states usually contain properties that are incompatible with the desire, such as tilted orientation or horizontal movement. For example, tilted states and states with horizontal movement receive no intention value for `rest_after_landing`. This is coherent because the desire represents resting after a stable landing, while these states still require correction.\n", + "\n", + "Overall, the results show that the desire is well represented by the Intention Policy Graph. The direct desire statistic is high, meaning that the agent usually selects `Do nothing` when it is exactly in the desired landing state. The intention values then extend this interpretation by assigning high values to states that satisfy or are very close to the desire, intermediate values to partial landing states, and zero values to unstable or incompatible states." + ] + }, + { + "cell_type": "markdown", + "id": "e5d599ca-eff8-4601-9667-7b2196d5f483", + "metadata": {}, + "source": [ + "### Registering more Desires in the Approximator" + ] + }, + { + "cell_type": "markdown", + "id": "54bee5f5-c3f4-490b-bb5e-4a143f15ecf2", + "metadata": {}, + "source": [ + "This new desire is the one related to have the rocket ship upright without any possibility of changing his angle." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "f915928c-deab-4ccd-9fc0-f1b19d20cca7", + "metadata": {}, + "outputs": [], + "source": [ + "goal_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.UPRIGHT),\n", + " Predicate(AngularVel.NO_ROTATION)\n", + " }\n", + ")\n", + "\n", + "desire1 = Desire(\n", + " name=\"stable_rocket\",\n", + " action=Action(0),\n", + " clause=goal_state\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "8c34d21d-2d74-4207-94a2-b47c4edacafb", + "metadata": {}, + "outputs": [], + "source": [ + "approximator.register_desire(desire1)" + ] + }, + { + "cell_type": "markdown", + "id": "f4b6969b-1816-41b1-912a-7b625594a252", + "metadata": {}, + "source": [ + "This other is the one related to being in the center of the env where there are the landing flags and descending with caution." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "1724232d-9317-4257-a50e-752f0856827f", + "metadata": {}, + "outputs": [], + "source": [ + "goal_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.UPRIGHT),\n", + " Predicate(AngularVel.NO_ROTATION),\n", + " Predicate(XPos.CENTER_POS),\n", + " Predicate(YVel.HOVERING)\n", + " }\n", + ")\n", + "\n", + "desire2 = Desire(\n", + " name=\"center_controled_descending\",\n", + " action=Action(0),\n", + " clause=goal_state\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "e0f188be-db45-46f4-863b-44166ff258a8", + "metadata": {}, + "outputs": [], + "source": [ + "approximator.register_desire(desire2)" + ] + }, + { + "cell_type": "markdown", + "id": "47fc3fa9-6d6a-441e-b30c-d52a015f8adc", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Computing P(a∊ Ad | s∊Sd)" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "95613a28-b33d-47d0-9b0a-cb9262810dad", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([0.7911392405063291,\n", + " 0,\n", + " 0.05649717514124294,\n", + " 0.8854166666666666,\n", + " 0.7339901477832512,\n", + " 0.023255813953488372,\n", + " 0.014084507042253521,\n", + " 0.021739130434782608,\n", + " 0,\n", + " 0.013888888888888888,\n", + " 0,\n", + " 0.14285714285714285,\n", + " 0,\n", + " 0,\n", + " 0,\n", + " 0.05555555555555555,\n", + " 0],\n", + " [[('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')],\n", + " [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')],\n", + " [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')],\n", + " [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')],\n", + " [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')],\n", + " [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')],\n", + " [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')],\n", + " [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'MOVE_RIGHT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "approximator.compute_desire_statistics(desire1)" + ] + }, + { + "cell_type": "markdown", + "id": "accbbbdb-c8ae-4ac2-9540-a9b59ca648e8", + "metadata": {}, + "source": [ + "This desire is less restrictive than `rest_after_landing`, because it does not require the lander to be centered, touching the ground, or located in the descent zone. It only checks whether the lander is upright and not rotating. Therefore, many symbolic states satisfy this desire clause.\n", + "\n", + "The highest values appear in the most clearly stable and controlled states. For example, the centered high-altitude state has a probability of `0.7911`, meaning that when the lander is upright, not rotating, centered, and still high above the ground, the agent usually chooses not to apply any engine. This is reasonable because the lander is already stable and does not require immediate correction.\n", + "\n", + "The centered both-leg landing state has an even higher value, `0.8854`. This is the same state used in the rest_after_landing desire, and it shows that when the lander is already upright, centered, stable, and touching the ground with both legs, the policy strongly prefers Do nothing.\n", + "\n", + "Another important state is the centered descent-zone state without contact, which has a probability of `0.7340`. This means that when the lander is close to the landing area, upright, not rotating, and still in the air, the agent also tends to remain inactive. This suggests that the policy often lets the lander continue its descent naturally when it is already well positioned.\n", + "\n", + "However, not all states satisfying the stability clause have high probabilities for `Do nothing`. This happens especially in states that are upright and not rotating, but still require correction for other reasons, such as partial contact, lateral displacement, or horizontal movement. For instance, while the centered left-leg contact state receives a probability of exactly `0`, the centered right-leg contact state receives a marginal probability of `0.0565`. In both cases, the agent almost completely rejects Do nothing because an asymmetric, single-leg touch is inherently unstable and demands immediate active thruster control to flatten out the craft.\n", + "\n", + "Therefore, the result shows that the desire `stable_rocket` is only partially aligned with `Do nothing`. The agent tends to remain inactive when the lander is both stable and in a good position, but it does not always choose Do nothing just because the lander is upright and not rotating. This is a useful result: it shows that stability alone is not enough to explain the policy. The agent also considers whether the lander is centered, whether it has ground contact, and whether it still needs positional correction." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "31213839-b64d-49e3-8424-5906a0bada4c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([0.7911392405063291,\n", + " 0,\n", + " 0.05649717514124294,\n", + " 0.8854166666666666,\n", + " 0.7339901477832512,\n", + " 0],\n", + " [[('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')],\n", + " [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')],\n", + " [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]])" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "approximator.compute_desire_statistics(desire2)" + ] + }, + { + "cell_type": "markdown", + "id": "f58d107e-22f5-4a52-8518-78b9a1acc25b", + "metadata": {}, + "source": [ + "This desire is more restrictive than `stable_rocket`, because it not only requires the lander to be upright and not rotating, but also to be centered and descending in a controlled way. As a result, only six symbolic states satisfy this clause.\n", + "\n", + "The first state is the centered high-altitude state, with probability `0.7911`. This means that when the lander is centered, upright, hovering, and not rotating at high altitude, the agent usually chooses `Do nothing`. This suggests that the agent does not apply unnecessary corrections when the lander is already following a controlled trajectory.\n", + "\n", + "The centered both-leg contact state has probability `0.8854`, which is the highest value among the states satisfying this desire. This is expected because this state represents the most complete stable configuration: the lander is centered, upright, hovering, not rotating, and already in contact with the ground using both legs. In this case, doing nothing is clearly the desired behaviour.\n", + "\n", + "The centered descent-zone state without contact also has a high probability, `0.7340`. This is an important result because it shows that, when the lander is close to the ground and already centered and stable, the policy tends to avoid activating engines. This can be interpreted as allowing the lander to continue a controlled descent toward contact.\n", + "\n", + "However, not all states satisfying this desire have high probabilities. The centered left-leg contact state has probability `0`, and the centered right-leg contact state has probability `0.0565`. These states satisfy the clause because the lander is upright, centered, hovering, and not rotating, but they involve only one leg touching the ground. Therefore, the agent does not usually choose to rest in these situations. This makes sense because one-leg contact is not yet a complete stable landing, so corrective action may still be needed.\n", + "\n", + "The last state, where the lander is centered and hovering but moving left, also has probability `0`. Although it satisfies the explicit predicates of the desire, it includes `XVel = MOVE_LEFT`, which means the lander is not horizontally stable. Since horizontal movement is not included in the desire clause, the state is selected by the desire, but the policy still avoids `Do nothing`.\n", + "\n", + "Overall, this desire gives a clearer interpretation than `stable_rocket`. The agent tends to select `Do nothing` when the lander is centered, upright, not rotating, and either safely descending or already landed. However, if the lander has only partial contact or horizontal movement, the policy usually chooses corrective actions instead. This shows that the desire captures an important part of the policy, but it could be made stricter by adding `XVel = NO_HORIZONTAL_MOVEMENT` if the objective is to describe only fully controlled descent states." + ] + }, + { + "cell_type": "markdown", + "id": "4f5778bd-3967-4142-a46d-02007325c822", + "metadata": { + "jp-MarkdownHeadingCollapsed": true + }, + "source": [ + "#### Computing Id(s)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "6962ff68-3564-4236-89ae-24cd78f6d48c", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "State: [('XPos', 'CENTER_POS'), ('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.340323810109263\n", + " Desire: stable_rocket -> I_d(s) = 0.9537511605345339\n", + " Desire: center_controled_descending -> I_d(s) = 0.9494305618691977\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.507007599938997\n", + " Desire: stable_rocket -> I_d(s) = 0.8412458572064817\n", + " Desire: center_controled_descending -> I_d(s) = 0.8435506007416606\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.3844847030280586\n", + " Desire: stable_rocket -> I_d(s) = 0.8914039797693492\n", + " Desire: center_controled_descending -> I_d(s) = 0.8938359553422321\n", + "\n", + "State: [('Contact', 'BOTH_LEGS'), ('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.9304980838755531\n", + " Desire: stable_rocket -> I_d(s) = 0.9789710023767069\n", + " Desire: center_controled_descending -> I_d(s) = 0.9791684565038213\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.39365794641005286\n", + " Desire: stable_rocket -> I_d(s) = 0.9131421565105843\n", + " Desire: center_controled_descending -> I_d(s) = 0.9133262024870404\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.20551794939606768\n", + " Desire: stable_rocket -> I_d(s) = 0.709824489734148\n", + " Desire: center_controled_descending -> I_d(s) = 0.6774104462029591\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.2352391029516987\n", + " Desire: stable_rocket -> I_d(s) = 0.718745764636157\n", + " Desire: center_controled_descending -> I_d(s) = 0.7186685800221657\n", + "\n", + "State: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.1550235330754562\n", + " Desire: stable_rocket -> I_d(s) = 0.7702237393108722\n", + " Desire: center_controled_descending -> I_d(s) = 0.7091616846681884\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.1628551622396276\n", + " Desire: stable_rocket -> I_d(s) = 0.6250514809458279\n", + " Desire: center_controled_descending -> I_d(s) = 0.6276410187786027\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.2916853246126452\n", + " Desire: stable_rocket -> I_d(s) = 0.7285215415168392\n", + " Desire: center_controled_descending -> I_d(s) = 0.7319879194391063\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('XPos', 'RIGHT_POS'), ('AngularVel', 'ROTATING_LEFT'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.1628551622396276\n", + " Desire: stable_rocket -> I_d(s) = 0.6250514809458279\n", + " Desire: center_controled_descending -> I_d(s) = 0.6276410187786027\n", + "\n", + "State: [('YPos', 'HIGH_ALTITUDE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.12707505439918687\n", + " Desire: stable_rocket -> I_d(s) = 0.8034565398420365\n", + " Desire: center_controled_descending -> I_d(s) = 0.7492938262933132\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.13270931735144578\n", + " Desire: stable_rocket -> I_d(s) = 0.5942108800209075\n", + " Desire: center_controled_descending -> I_d(s) = 0.5692598632905097\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.15332560471563358\n", + " Desire: stable_rocket -> I_d(s) = 0.7267207614604156\n", + " Desire: center_controled_descending -> I_d(s) = 0.600288567404117\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_LEFT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.0\n", + " Desire: stable_rocket -> I_d(s) = 0.0\n", + " Desire: center_controled_descending -> I_d(s) = 0.0\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Contact', 'RIGHT_LEG'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.38941635186481827\n", + " Desire: stable_rocket -> I_d(s) = 0.7509589249122194\n", + " Desire: center_controled_descending -> I_d(s) = 0.73497411349128\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.0\n", + " Desire: stable_rocket -> I_d(s) = 0.0\n", + " Desire: center_controled_descending -> I_d(s) = 0.0\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'MOVE_LEFT'), ('Contact', 'NO_CONTACT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.0\n", + " Desire: stable_rocket -> I_d(s) = 0.0\n", + " Desire: center_controled_descending -> I_d(s) = 0.0\n", + "\n", + "State: [('XPos', 'CENTER_POS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.0\n", + " Desire: stable_rocket -> I_d(s) = 0.0\n", + " Desire: center_controled_descending -> I_d(s) = 0.0\n", + "\n", + "State: [('Contact', 'BOTH_LEGS'), ('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.9067409994088994\n", + " Desire: stable_rocket -> I_d(s) = 0.9679959563422796\n", + " Desire: center_controled_descending -> I_d(s) = 0.9370748647433177\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('Contact', 'LEFT_LEG'), ('XVel', 'MOVE_RIGHT'), ('AngularVel', 'NO_ROTATION'), ('XPos', 'RIGHT_POS'), ('Angle', 'UPRIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.11689724747595603\n", + " Desire: stable_rocket -> I_d(s) = 0.5488179586341094\n", + " Desire: center_controled_descending -> I_d(s) = 0.5566803948984451\n", + "\n", + "State: [('YPos', 'DESCENT_ZONE'), ('YVel', 'HOVERING'), ('XPos', 'LEFT_POS'), ('Contact', 'NO_CONTACT'), ('XVel', 'NO_HORIZONTAL_MOVEMENT'), ('AngularVel', 'NO_ROTATION'), ('Angle', 'TILTED_RIGHT')]\n", + " Desire: rest_after_landing -> I_d(s) = 0.0\n", + " Desire: stable_rocket -> I_d(s) = 0.0\n", + " Desire: center_controled_descending -> I_d(s) = 0.0\n", + "\n" + ] + } + ], + "source": [ + "for s in approximator.get_all_state_ids():\n", + " intentions = approximator.get_intentions(s)\n", + " \n", + " print(f\"State: {s}\")\n", + " \n", + " for d, I_ds in intentions.items():\n", + " print(f\" Desire: {d.name} -> I_d(s) = {I_ds}\")\n", + " \n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "0da5b032-36d4-48ca-8be7-21b2c3cf56eb", + "metadata": {}, + "source": [ + "The final intention table shows that the centered both-leg contact state receives very high values for all three desires. Its values are `0.9305` for `rest_after_landing`, `0.9790` for `stable_rocket`, and `0.9792` for `center_controled_descending`. This is expected because this state satisfies all three desires: the lander is upright, not rotating, centered, hovering, and touching the ground with both legs. It is the clearest example of a final stable landing state. :contentReference[oaicite:0]{index=0}\n", + "\n", + "The centered high-altitude state also has high intention values for `stable_rocket` and `center_controled_descending`, with values of `0.9538` and `0.9494`, while its value for `rest_after_landing` is lower, `0.3403`. This makes sense because the lander is upright, centered, hovering, and not rotating, so it is strongly related to stability and controlled descent. However, it is not yet close to the final resting-after-landing condition because there is no ground contact. :contentReference[oaicite:1]{index=1}\n", + "\n", + "The centered descent-zone state without contact follows the same pattern. It has high values for `stable_rocket` and `center_controled_descending`, both around `0.913`, but a lower value for `rest_after_landing`, `0.3937`. This state represents a controlled pre-landing situation: the lander is close to the ground, centered, upright, hovering, and not rotating, but it has not landed yet. Therefore, it is strongly associated with stability and controlled descent, but only moderately associated with resting after landing. :contentReference[oaicite:2]{index=2}\n", + "\n", + "Partial-contact states receive intermediate values. For example, the centered left-leg contact state has `0.5070` for `rest_after_landing`, `0.8412` for `stable_rocket`, and `0.8436` for `center_controled_descending`. The centered right-leg contact state has `0.3845`, `0.8914`, and `0.8938`, respectively. These states are close to landing, but they are not complete landing states because only one leg is touching the ground. The intention values reflect this: they are highly related to stability and controlled descent, but less strongly related to the final rest-after-landing desire. :contentReference[oaicite:3]{index=3}\n", + "\n", + "States that are stable but laterally displaced receive lower values for `center_controled_descending` than centered states. For example, the left-position descent-zone state without contact has `0.7098` for `stable_rocket` but `0.6774` for `center_controled_descending`. The difference appears because `stable_rocket` only requires upright posture and no rotation, while `center_controled_descending` also requires being centered. Since the lander is displaced to the left, the second desire is less strongly represented. :contentReference[oaicite:4]{index=4}\n", + "\n", + "A similar pattern appears for right-position states. The right-position descent-zone state without contact has `0.7187` for `stable_rocket` and `0.7187` for `center_controled_descending`, while the right-position high-altitude state has `0.8035` for `stable_rocket` and `0.7493` for `center_controled_descending`. These states are still upright and not rotating, so they are related to stability, but their lack of centered position reduces their relation to the controlled descending desire. :contentReference[oaicite:5]{index=5} :contentReference[oaicite:6]{index=6}\n", + "\n", + "The non-centered both-leg contact state is also interesting. It has a very high value for `rest_after_landing`, `0.9067`, and also high values for `stable_rocket`, `0.9680`, and `center_controled_descending`, `0.9371`. Although the lander is not centered, it is still upright, not rotating, hovering, and touching the ground with both legs. This explains why it is strongly associated with the landing-related desires, especially `rest_after_landing` and `stable_rocket`. :contentReference[oaicite:7]{index=7}\n", + "\n", + "Finally, several states receive `0.0` for all desires. These include tilted states and states with horizontal movement. For example, the tilted-left contact state, the moving-left states, and the tilted-right states all receive zero intention values. This is coherent because these states are incompatible with the intended behaviours: they do not represent a stable rocket, a controlled centered descent, or a final resting landing configuration. :contentReference[oaicite:8]{index=8}\n", + "\n", + "Overall, the final intention study shows that the three desires separate the behaviour of the agent in a meaningful way. `rest_after_landing` is mainly activated in states with ground contact, especially both-leg contact. `stable_rocket` receives high values in many upright and non-rotating states, even when the lander is not centered. `center_controled_descending` is more selective, assigning its highest values to states that are upright, non-rotating, hovering, and centered. Therefore, the final `I_d(s)` values provide a structured explanation of the policy by distinguishing between general stability, controlled descent, and final resting after landing." + ] + }, + { + "cell_type": "markdown", + "id": "c7bf54c6-4954-4695-b77d-54c739d37ec7", + "metadata": {}, + "source": [ + "### Sorted Predicated Values for PG and IPG" + ] + }, + { + "cell_type": "markdown", + "id": "369dfd23-7386-4c3b-8faa-da801c1c1bbd", + "metadata": {}, + "source": [ + "After fixing several issues related to converting states into strings and reconstructing states from strings, a new version of the discretizer was implemented. This discretizer serializes predicates using a deterministic order, so the same symbolic state is always represented in the same way. This is important because states are composed of several predicates, and if their order changes between executions or after saving and loading a Policy Graph, comparing states becomes harder. In this example, the new discretizer is imported and used to generate a new Policy Graph. " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "cb93ba20-1ea6-4cbd-a6b8-a6490fd22922", + "metadata": {}, + "outputs": [], + "source": [ + "from t4_discretizer import LunarLanderSemanticSortedDiscretizer\n", + "from t4_discretizer import Contact, XPos, YPos, YVel, XVel, AngularVel, Angle\n", + "\n", + "discretizer = LunarLanderSemanticSortedDiscretizer()" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "7603aebf-e3bd-495c-bbd5-1182e69190b1", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon import PolicyApproximatorFromBasicObservation, GraphRepresentation\n", + "\n", + "# Creating the representation\n", + "representation = GraphRepresentation()\n", + "\n", + "# Initializing the approximator\n", + "approximator = PolicyApproximatorFromBasicObservation(\n", + " discretizer, \n", + " representation, \n", + " env, \n", + " agent\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "0d4604f1-c369-4980-8333-f92dbc9d8cac", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Initiating mapping of the DQN policy to pgeon...\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Fitting policy approximator...: 100%|█████████████████████████████████████| 500/500 [01:59<00:00, 4.19it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡Mapping completed!\n", + "Discovered states: 22\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "# Auto mapping of 500 episodes\n", + "print(\"Initiating mapping of the DQN policy to pgeon...\")\n", + "approximator.fit(n_episodes=500)\n", + "\n", + "print(f\"¡Mapping completed!\")\n", + "print(f\"Discovered states: {len(list(approximator.policy_representation.states))}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "4d9330d4-127a-4053-bd10-1a50c1f5925f", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator saved successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_sorted_fit_500_example2.dill\", \"wb\") as f:\n", + " dill.dump(approximator, f)\n", + "\n", + "print(\"¡DQN approximator saved successfully!\")" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "1ac99831-f043-4710-b36f-f347390dd857", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "¡DQN approximator loaded successfully!\n" + ] + } + ], + "source": [ + "with open(\"./dqn_pgeon_sorted_fit_500_example2.dill\", \"rb\") as f:\n", + " approximator_loaded = dill.load(f)\n", + "\n", + "print(\"¡DQN approximator loaded successfully!\")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "12157fa9-72da-462a-bca8-59acbc131235", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Number of states in the PG: 22\n", + "Number of transitions in the PG: 121\n" + ] + } + ], + "source": [ + "pg = approximator_loaded.policy_representation\n", + "print(f'Number of states in the PG: {len(list(pg.states))}')\n", + "print(f'Number of transitions in the PG: {len(list(pg.transitions))}')" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "30f13149-e526-4a01-b278-7b01b870703e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Estado 0:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "Estado 1:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "Estado 2:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "Estado 3:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + "Estado 4:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + "Estado 5:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "Estado 6:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "Estado 7:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "Estado 8:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "Estado 9:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.ROTATING_LEFT)&Predicate(Contact.LEFT_LEG)\n", + "Estado 10:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.ROTATING_LEFT)&Predicate(Contact.LEFT_LEG)\n", + "Estado 11:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "Estado 12:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "Estado 13:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + "Estado 14:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.TILTED_LEFT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "Estado 15:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + "Estado 16:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_LEFT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "Estado 17:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_LEFT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "Estado 18:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.TILTED_RIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "Estado 19:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + "Estado 20:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_RIGHT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "Estado 21:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.TILTED_RIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n" + ] + } + ], + "source": [ + "for i, state in enumerate(pg.states):\n", + " print(f\"Estado {i}:\")\n", + " print(discretizer.state_to_str(state))" + ] + }, + { + "cell_type": "markdown", + "id": "87733682-cec6-42ef-8626-24f625d97226", + "metadata": {}, + "source": [ + "By comparing the states printed before and after the modification, it can be observed that the new representation is clearer and more consistent. Predicates now appear in the same order across states, which makes it easier to identify similarities and differences between them. As a result, the behaviour of the agent can be analysed more easily, since symbolic states are more readable and directly comparable." + ] + }, + { + "cell_type": "markdown", + "id": "64fdd40f-148c-45c2-a710-3ea2032e5046", + "metadata": {}, + "source": [ + "### Registering desires to the IPG (Last attempt)" + ] + }, + { + "cell_type": "markdown", + "id": "190eef8f-fab9-4583-af21-31f722736ab8", + "metadata": {}, + "source": [ + "As in `Example 1`, the same set of desires is registered again in this second example in order to evaluate whether the agent behaves according to the expected objectives. The desires are kept unchanged so that the results can be compared consistently between both examples.\n", + "\n", + "However, in this case the desires are evaluated using the new discretizer and the new Policy Graph generated from this agent. This is important because the symbolic states are now represented in a more consistent and readable order, which makes it easier to identify whether each desire is satisfied in the corresponding states.\n", + "\n", + "Therefore, this example allows us to verify two aspects at the same time: first, whether the same desires can still be applied to a different Policy Graph, and second, whether the improved state representation makes the analysis of the agent behaviour clearer." + ] + }, + { + "cell_type": "markdown", + "id": "00e6d48d-dd20-4704-af91-3ee340946d02", + "metadata": {}, + "source": [ + "#### Creating the IPG for the desires" + ] + }, + { + "cell_type": "markdown", + "id": "8e3d138d-b13e-4173-80ad-c552ebac1342", + "metadata": {}, + "source": [ + "Here I just create the IPG from the PG." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "b2b6055d-c166-4aa7-b931-fe414cd4f9bc", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon import IntentionAwarePolicyApproximator\n", + "\n", + "ipg = IntentionAwarePolicyApproximator.from_pg(\n", + " approximator_loaded\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "6202d20f-bd02-4644-bcb3-7936bd7c3d5c", + "metadata": {}, + "source": [ + "#### Action-Independent Rest After Landing" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "57c7c20e-e363-4c6e-9647-00fe7398d590", + "metadata": {}, + "outputs": [], + "source": [ + "from pgeon.discretizer import Predicate, PredicateBasedState, Action\n", + "from pgeon.desire import Desire\n", + "\n", + "goal_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.UPRIGHT),\n", + " Predicate(Contact.BOTH_LEGS),\n", + " Predicate(XPos.CENTER_POS)\n", + " }\n", + ")\n", + "\n", + "rest_after_landing_desires = [\n", + " Desire(\n", + " name=f\"rest_after_landing_action_{action_id}\",\n", + " action=Action(action_id),\n", + " clause=goal_state\n", + " )\n", + " for action_id in range(env.action_space.n)\n", + "]" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "ed81ae6a-cbdd-49a6-9c69-092a537f9cd1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Registering desire: rest_after_landing_action_0\n", + "State 1\n", + " Probability: 0.8854\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + "\n", + "\n", + "Registering desire: rest_after_landing_action_1\n", + "State 1\n", + " Probability: 0.0312\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + "\n", + "\n", + "Registering desire: rest_after_landing_action_2\n", + "State 1\n", + " Probability: 0.0312\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + "\n", + "\n", + "Registering desire: rest_after_landing_action_3\n", + "State 1\n", + " Probability: 0.0521\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + "\n", + "\n" + ] + } + ], + "source": [ + "for desire in rest_after_landing_desires:\n", + " print(f\"Registering desire: {desire.name}\")\n", + "\n", + " ipg.register_desire(desire)\n", + "\n", + " probabilities, states = ipg.compute_desire_statistics(desire)\n", + "\n", + " if not states:\n", + " print(\"No matching states found.\")\n", + "\n", + " for i, (probability, state) in enumerate(zip(probabilities, states), start=1):\n", + " print(f\"State {i}\")\n", + " print(f\" Probability: {probability:.4f}\")\n", + " print(f\"State:\")\n", + " print(discretizer.state_to_str(state))\n", + " print(f\"\\n\")" + ] + }, + { + "cell_type": "markdown", + "id": "1da2697c-6337-4f21-9ba2-ee7ede599a7e", + "metadata": {}, + "source": [ + "The results show that the most likely action in this state is `Action(0)`, corresponding to `Do nothing`, with probability `0.8854`. This means that, once the agent reaches this symbolic landing state, it chooses not to activate any engine in most cases. This is the expected behaviour for a successful landing, because after reaching a stable contact state the agent should remain still instead of applying additional thrust.\n", + "\n", + "The remaining actions have much lower probabilities. `Action(1)` has probability `0.0312`, `Action(2)` also has probability `0.0312`, and `Action(3)` has probability `0.0521`. These values indicate that the agent only rarely activates the side engines or the main engine in this state.\n", + "\n", + "Therefore, the comparison confirms that the learned policy is strongly aligned with the desired behaviour after landing. The agent does not simply reach the symbolic landing state; it also tends to select the correct action once it is there. In this case, the correct action is to do nothing, because the lander is already stable and touching the ground with both legs." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "5a6d3400-9bdf-46d8-bf18-713f5a468130", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.5070075999389976\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.017301303306248336\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.017275288762183233\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.031929493892813084\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.39365794641005286\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.011422745894484\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.01140649811842653\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.021268632230196993\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.3403238101092626\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.009104239948787288\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.009091385695577263\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.01696646428622257\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.9304980838755532\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.04738078955054427\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.04726379519209981\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.08197696604560774\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.38448470302805854\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.008988353140542575\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.008988353140542575\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.017046048283651395\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.2055179493960679\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0036699810398282133\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0036699810398282133\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.007386374907424194\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.23523910295169864\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0042798271631323236\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0042798271631323236\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.00850448934900982\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.1550235330754563\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0015268616432722632\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0015268616432722632\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.003421305154645798\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.16285516223962748\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.002048780792853116\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.002048780792853116\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.0044893815610869735\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.ROTATING_LEFT)&Predicate(Contact.LEFT_LEG)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.29168532461264507\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0066080492986342046\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0066080492986342046\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.013318864474657114\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.ROTATING_LEFT)&Predicate(Contact.LEFT_LEG)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.16285516223962748\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.002048780792853116\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.002048780792853116\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.0044893815610869735\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.12707505439918698\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0004321253426469273\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0004321253426469273\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.0022722308366149675\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.132709317351446\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0009513929910092962\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0009513929910092962\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.0028126270968415554\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.15332560471563364\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0018218407917945047\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0018218407917945047\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.004210687090461701\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.TILTED_LEFT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.0\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.38941635186481793\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0021217031484367195\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0021217031484367195\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.007586159412846705\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_LEFT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.0\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_LEFT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.0\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.TILTED_RIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.0\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.9067409994088996\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.03421853989915177\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.03421853989915177\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.06169946114889007\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_RIGHT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.11689724747595591\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0008307187811819078\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0008307187811819078\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.002120885278889679\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.TILTED_RIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: rest_after_landing_action_0 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_1 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_2 -> I_d(s) = 0.0\n", + " Desire: rest_after_landing_action_3 -> I_d(s) = 0.0\n", + "\n" + ] + } + ], + "source": [ + "for s in ipg.get_all_state_ids():\n", + " intentions = ipg.get_intentions(s)\n", + "\n", + " print(f\"State:\")\n", + " print(discretizer.state_to_str(s))\n", + "\n", + " for d, I_ds in intentions.items():\n", + " print(f\" Desire: {d.name} -> I_d(s) = {I_ds}\")\n", + "\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "14d2bf9e-561b-4310-93b7-1e5ead76e779", + "metadata": {}, + "source": [ + "The results show that `rest_after_landing_action_0`, corresponding to `Do nothing`, receives by far the highest intention values across the relevant states. In the centered both-leg contact state, which directly represents the desired landing configuration, the intention value for `Action(0)` is `0.9305`. In contrast, the same state receives much lower values for the other actions: `0.0474` for `Action(1)`, `0.0473` for `Action(2)`, and `0.0820` for `Action(3)`. This shows that the intention associated with the landing state is clearly linked to doing nothing rather than activating an engine.\n", + "\n", + "The same pattern appears in states that are close to the desired landing configuration. For example, in the centered left-leg contact state, the value for `Action(0)` is `0.5070`, while the values for the other actions remain very low. Similarly, in the centered right-leg contact state, `Action(0)` obtains `0.3845`, while the remaining actions are close to zero. These states do not fully satisfy the desire because only one leg is touching the ground, but they are still related to the landing process. The intention mechanism therefore assigns them a moderate value for `Do nothing`, while keeping the engine actions weakly associated with the desire.\n", + "\n", + "The centered descent-zone state without contact also follows this tendency. It has an intention value of `0.3937` for `Action(0)`, but only `0.0114`, `0.0114`, and `0.0213` for the other actions. This suggests that the policy considers this state related to the future landing-resting behaviour, but the intended action remains clearly `Do nothing`, not an engine activation.\n", + "\n", + "States that are farther from the landing configuration receive lower intention values. For example, states where the lander is displaced to the left or right but still upright and hovering have lower values for `Action(0)`, such as `0.2055` and `0.2352`. The other actions still receive values close to zero. This indicates that these states are only weakly related to the final resting-after-landing intention because the lander is not centered and has not touched the ground yet. \n", + "\n", + "The non-centered both-leg contact state is also relevant. When the lander is touching the ground with both legs but is positioned to the right, `Action(0)` still receives a very high intention value of `0.9067`, while the other actions remain much lower. This suggests that both-leg contact is strongly associated with the resting intention even when the lander is not perfectly centered. However, because the desired clause requires `CENTER_POS`, the centered both-leg contact state remains the clearest match for the desire.\n", + "\n", + "Finally, several unstable or incompatible states receive an intention value of `0.0` for all four desires. These include tilted states and states with horizontal movement. This is coherent because the desire represents a stable landing situation, and these states are not compatible with resting after landing.\n", + "\n", + "Overall, the output confirms that `Action(0)` is the action most strongly associated with the intention of resting after landing. The other actions receive very low intention values in almost every state, including the target landing state. Therefore, the comparison validates the definition of the original `rest_after_landing` desire: after reaching a stable landing configuration, the policy is best explained as intending to do nothing rather than firing any engine." + ] + }, + { + "cell_type": "markdown", + "id": "9ea74b28-1808-4e35-85d7-f8977fe08b7e", + "metadata": {}, + "source": [ + "#### Horizontal Position Correction Desires" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "id": "ec54d788-e171-4f22-8519-5cd327c3adf2", + "metadata": {}, + "outputs": [], + "source": [ + "ACTION_TO_TILT_RIGHT = Action(3)\n", + "\n", + "move_right_from_left_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.TILTED_RIGHT),\n", + " Predicate(XVel.MOVE_RIGHT),\n", + " }\n", + ")\n", + "\n", + "move_right_from_left_desire = Desire(\n", + " name=\"move_right_from_left\",\n", + " action=ACTION_TO_TILT_RIGHT,\n", + " clause=move_right_from_left_state,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "2fe08057-cba8-41bc-bcf6-5c2b85c7a7ab", + "metadata": {}, + "outputs": [], + "source": [ + "ACTION_TO_TILT_LEFT = Action(1)\n", + "\n", + "move_left_from_right_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.TILTED_LEFT),\n", + " Predicate(XVel.MOVE_LEFT),\n", + " }\n", + ")\n", + "\n", + "move_left_from_right_desire = Desire(\n", + " name=\"move_left_from_right\",\n", + " action=ACTION_TO_TILT_LEFT,\n", + " clause=move_left_from_right_state,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "c7232e1a-249e-4ab2-a1db-0d6f1fbd30d1", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Registering desire: move_right_from_left\n", + "\n", + "=== move_right_from_left ===\n", + "No matching states found.\n", + "Registering desire: move_left_from_right\n", + "\n", + "=== move_left_from_right ===\n", + "No matching states found.\n" + ] + } + ], + "source": [ + "horizontal_correction_desires = [\n", + " move_right_from_left_desire,\n", + " move_left_from_right_desire,\n", + "]\n", + "\n", + "for desire in horizontal_correction_desires:\n", + " print(f\"Registering desire: {desire.name}\")\n", + "\n", + " ipg.register_desire(desire)\n", + "\n", + " probabilities, states = ipg.compute_desire_statistics(desire)\n", + "\n", + " print(f\"\\n=== {desire.name} ===\")\n", + "\n", + " if not states:\n", + " print(\"No matching states found.\")\n", + "\n", + " for i, (probability, state) in enumerate(zip(probabilities, states), start=1):\n", + " print(f\"State {i}\")\n", + " print(f\" Probability: {probability:.4f}\")\n", + " print(f\"State:\")\n", + " print(discretizer.state_to_str(state))\n", + " print(f\"\\n\")" + ] + }, + { + "cell_type": "markdown", + "id": "178f8907-97d5-49b7-8422-ba0f98e86631", + "metadata": {}, + "source": [ + "As we can see in this IPG we don't have any state that fulfills the desire. For finally testing I'm gonna put the same horizontal position correction desires but for any action." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "id": "798f0e3d-0e46-476d-a7f2-1877b14ae1e9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Registering desire: move_right_from_left_with_do_nothing\n", + "\n", + "=== move_right_from_left_with_do_nothing ===\n", + "Action: Do nothing\n", + "No matching states found.\n", + "Registering desire: move_left_from_right_with_do_nothing\n", + "\n", + "=== move_left_from_right_with_do_nothing ===\n", + "Action: Do nothing\n", + "No matching states found.\n", + "Registering desire: move_right_from_left_with_left_engine\n", + "\n", + "=== move_right_from_left_with_left_engine ===\n", + "Action: Left engine\n", + "No matching states found.\n", + "Registering desire: move_left_from_right_with_left_engine\n", + "\n", + "=== move_left_from_right_with_left_engine ===\n", + "Action: Left engine\n", + "No matching states found.\n", + "Registering desire: move_right_from_left_with_main_engine\n", + "\n", + "=== move_right_from_left_with_main_engine ===\n", + "Action: Main engine\n", + "No matching states found.\n", + "Registering desire: move_left_from_right_with_main_engine\n", + "\n", + "=== move_left_from_right_with_main_engine ===\n", + "Action: Main engine\n", + "No matching states found.\n", + "Registering desire: move_right_from_left_with_right_engine\n", + "\n", + "=== move_right_from_left_with_right_engine ===\n", + "Action: Right engine\n", + "No matching states found.\n", + "Registering desire: move_left_from_right_with_right_engine\n", + "\n", + "=== move_left_from_right_with_right_engine ===\n", + "Action: Right engine\n", + "No matching states found.\n" + ] + } + ], + "source": [ + "def action_name_to_identifier(action_name):\n", + " return action_name.lower().replace(\" \", \"_\")\n", + "\n", + "\n", + "horizontal_correction_desires = []\n", + "\n", + "for action_id, action_name in action_names.items():\n", + " action = Action(action_id)\n", + " action_identifier = action_name_to_identifier(action_name)\n", + "\n", + " move_right_from_left_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.TILTED_RIGHT),\n", + " Predicate(XVel.MOVE_RIGHT),\n", + " }\n", + " )\n", + "\n", + " move_right_from_left_desire = Desire(\n", + " name=f\"move_right_from_left_with_{action_identifier}\",\n", + " action=action,\n", + " clause=move_right_from_left_state,\n", + " )\n", + "\n", + " move_left_from_right_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(Angle.TILTED_LEFT),\n", + " Predicate(XVel.MOVE_LEFT),\n", + " }\n", + " )\n", + "\n", + " move_left_from_right_desire = Desire(\n", + " name=f\"move_left_from_right_with_{action_identifier}\",\n", + " action=action,\n", + " clause=move_left_from_right_state,\n", + " )\n", + "\n", + " horizontal_correction_desires.extend(\n", + " [\n", + " move_right_from_left_desire,\n", + " move_left_from_right_desire,\n", + " ]\n", + " )\n", + "\n", + "\n", + "for desire in horizontal_correction_desires:\n", + " print(f\"Registering desire: {desire.name}\")\n", + "\n", + " ipg.register_desire(desire)\n", + "\n", + " probabilities, states = ipg.compute_desire_statistics(desire)\n", + "\n", + " print(f\"\\n=== {desire.name} ===\")\n", + " action_id = desire.action.value if hasattr(desire.action, \"value\") else desire.action\n", + " print(f\"Action: {action_names[action_id]}\")\n", + "\n", + " if not states:\n", + " print(\"No matching states found.\")\n", + "\n", + " for i, (probability, state) in enumerate(zip(probabilities, states), start=1):\n", + " print(f\"State {i}\")\n", + " print(f\" Probability: {probability:.4f}\")\n", + " print(\"State:\")\n", + " print(discretizer.state_to_str(state))\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "2a942ea3-2953-432f-b4c9-c2ea4a5fe011", + "metadata": {}, + "source": [ + "In the first definition of the horizontal correction desires, the desire clauses combined the inclination of the lander with its horizontal velocity. For example, one desire required the state to satisfy both `Angle.TILTED_RIGHT` and `XVel.MOVE_RIGHT`. However, when the generated Policy Graph was inspected, no state contained this exact combination of predicates. Some states represented the lander as tilted, while others represented horizontal movement, but these two conditions did not appear together in the same symbolic state.\n", + "\n", + "This result does not indicate an implementation error. Instead, it highlights an important limitation of the symbolic abstraction used to build the graph. The Policy Graph is generated from observed trajectories, and therefore it only contains the discretized states that were actually visited by the agent. If a desire is defined using a combination of predicates that is not present in the graph, the corresponding intention cannot be evaluated because there are no matching states.\n", + "\n", + "This also shows the dependency between desire design and the discretization function. A very restrictive desire clause may be semantically meaningful from a human point of view, but still fail to match any state if the discretizer does not generate that symbolic combination. In this case, the discretization separates inclination and horizontal movement into independent predicates, but the observed trajectories did not include states where both appeared simultaneously. Therefore, the desire definition was revised to use more general clauses based on the horizontal position of the lander, such as `XPos.LEFT_POS` and `XPos.RIGHT_POS`. These predicates better represent the intended correction behaviour and are present in the generated graph as we can see above." + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "af7c82ca-7f45-4d90-a66e-99498e5a1e55", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Registering desire: move_right_from_left_with_do_nothing\n", + "\n", + "=== move_right_from_left_with_do_nothing ===\n", + "Action: Do nothing\n", + "State 1\n", + " Probability: 0.0233\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 2\n", + " Probability: 0.0217\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 3\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 4\n", + " Probability: 0.1429\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + "\n", + "State 5\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_LEFT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 6\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.TILTED_RIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "Registering desire: move_left_from_right_with_do_nothing\n", + "\n", + "=== move_left_from_right_with_do_nothing ===\n", + "Action: Do nothing\n", + "State 1\n", + " Probability: 0.0141\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 2\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 3\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.ROTATING_LEFT)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 4\n", + " Probability: 0.0139\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 5\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + "\n", + "State 6\n", + " Probability: 0.0556\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + "\n", + "State 7\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_RIGHT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "Registering desire: move_right_from_left_with_left_engine\n", + "\n", + "=== move_right_from_left_with_left_engine ===\n", + "Action: Left engine\n", + "State 1\n", + " Probability: 0.1279\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 2\n", + " Probability: 0.8261\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 3\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 4\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + "\n", + "State 5\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_LEFT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 6\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.TILTED_RIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "Registering desire: move_left_from_right_with_left_engine\n", + "\n", + "=== move_left_from_right_with_left_engine ===\n", + "Action: Left engine\n", + "State 1\n", + " Probability: 0.0141\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 2\n", + " Probability: 0.2500\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 3\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.ROTATING_LEFT)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 4\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 5\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + "\n", + "State 6\n", + " Probability: 0.8333\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + "\n", + "State 7\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_RIGHT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "Registering desire: move_right_from_left_with_main_engine\n", + "\n", + "=== move_right_from_left_with_main_engine ===\n", + "Action: Main engine\n", + "State 1\n", + " Probability: 0.0233\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 2\n", + " Probability: 0.1087\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 3\n", + " Probability: 1.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 4\n", + " Probability: 0.4286\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + "\n", + "State 5\n", + " Probability: 1.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_LEFT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 6\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.TILTED_RIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "Registering desire: move_left_from_right_with_main_engine\n", + "\n", + "=== move_left_from_right_with_main_engine ===\n", + "Action: Main engine\n", + "State 1\n", + " Probability: 0.0704\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 2\n", + " Probability: 0.7500\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 3\n", + " Probability: 1.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.ROTATING_LEFT)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 4\n", + " Probability: 0.0417\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 5\n", + " Probability: 1.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + "\n", + "State 6\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + "\n", + "State 7\n", + " Probability: 1.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_RIGHT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "Registering desire: move_right_from_left_with_right_engine\n", + "\n", + "=== move_right_from_left_with_right_engine ===\n", + "Action: Right engine\n", + "State 1\n", + " Probability: 0.8256\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 2\n", + " Probability: 0.0435\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 3\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 4\n", + " Probability: 0.4286\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + "\n", + "State 5\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_LEFT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 6\n", + " Probability: 1.0000\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.TILTED_RIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "Registering desire: move_left_from_right_with_right_engine\n", + "\n", + "=== move_left_from_right_with_right_engine ===\n", + "Action: Right engine\n", + "State 1\n", + " Probability: 0.9014\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 2\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 3\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.ROTATING_LEFT)&Predicate(Contact.LEFT_LEG)\n", + "\n", + "State 4\n", + " Probability: 0.9444\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + "\n", + "State 5\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + "\n", + "State 6\n", + " Probability: 0.1111\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + "\n", + "State 7\n", + " Probability: 0.0000\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_RIGHT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + "\n" + ] + } + ], + "source": [ + "horizontal_correction_desires = []\n", + "\n", + "for action_id, action_name in action_names.items():\n", + " action = Action(action_id)\n", + " action_identifier = action_name_to_identifier(action_name)\n", + "\n", + " move_right_from_left_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(XPos.LEFT_POS),\n", + " }\n", + " )\n", + "\n", + " move_right_from_left_desire = Desire(\n", + " name=f\"move_right_from_left_with_{action_identifier}\",\n", + " action=action,\n", + " clause=move_right_from_left_state,\n", + " )\n", + "\n", + " move_left_from_right_state = PredicateBasedState(\n", + " predicates={\n", + " Predicate(XPos.RIGHT_POS),\n", + " }\n", + " )\n", + "\n", + " move_left_from_right_desire = Desire(\n", + " name=f\"move_left_from_right_with_{action_identifier}\",\n", + " action=action,\n", + " clause=move_left_from_right_state,\n", + " )\n", + "\n", + " horizontal_correction_desires.extend(\n", + " [\n", + " move_right_from_left_desire,\n", + " move_left_from_right_desire,\n", + " ]\n", + " )\n", + "\n", + "\n", + "for desire in horizontal_correction_desires:\n", + " print(f\"Registering desire: {desire.name}\")\n", + "\n", + " ipg.register_desire(desire)\n", + "\n", + " probabilities, states = ipg.compute_desire_statistics(desire)\n", + "\n", + " action_id = desire.action.value if hasattr(desire.action, \"value\") else desire.action\n", + "\n", + " print(f\"\\n=== {desire.name} ===\")\n", + " print(f\"Action: {action_names[action_id]}\")\n", + "\n", + " if not states:\n", + " print(\"No matching states found.\")\n", + "\n", + " for i, (probability, state) in enumerate(zip(probabilities, states), start=1):\n", + " print(f\"State {i}\")\n", + " print(f\" Probability: {probability:.4f}\")\n", + " print(\"State:\")\n", + " print(discretizer.state_to_str(state))\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "ce8582d1-f5e9-4855-9f75-b2d58e6dd822", + "metadata": {}, + "source": [ + "The results show that the learned policy does not present a fully symmetric horizontal correction behaviour. In the state where the lander is located to the left of the landing zone, in the descent zone, upright, hovering, with no horizontal movement, no angular rotation, and no ground contact, the probability of selecting the right engine is `0.8256`, while the probability of selecting the left engine is only `0.1279`. This suggests that, in this situation, the policy tends to choose an action that may be counterproductive with respect to the expected horizontal correction, since the lander is already on the left side and should be corrected towards the right.\n", + "\n", + "However, the opposite case shows a more coherent behaviour. When the lander is located to the right of the landing zone under equivalent stable conditions, the probability of selecting the right engine is `0.9014`, while the probability of selecting the left engine is only `0.0141`. In this case, the selected action is consistent with the expected correction, because activating the right engine can push the lander towards the left, helping it move back towards the centre of the landing zone.\n", + "\n", + "These results indicate that the agent has not learned a completely balanced horizontal correction strategy. Instead, the policy shows a strong preference for the right engine in several relevant states, independently of whether the lander is positioned to the left or to the right of the landing zone. This behaviour is correct for some right-position states, but may be incorrect or inefficient for some left-position states." + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "id": "1edd2046-1fc9-4d3f-9791-50e438b50021", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.0008\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0011\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.0133\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.0029\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.0131\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.0213\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.0503\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.1021\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.0066\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0073\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.0566\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.0128\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.0219\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.0649\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.1054\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.2182\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.0132\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0087\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.1119\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.0094\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.0599\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.0703\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.1271\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.2124\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.0004\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0004\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.0127\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.0007\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.0048\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.0166\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.0454\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.1024\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.0022\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0026\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.0262\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.0031\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.0057\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.0298\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.0644\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.1412\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.1152\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0018\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.5885\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.0023\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.2520\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.0263\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.8754\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.1176\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.0018\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0585\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.0269\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.1171\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.0028\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.3748\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.0622\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.9557\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.1519\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0002\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.8809\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.0002\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.6754\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.0107\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.4966\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.1072\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.0004\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0476\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.0128\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.3991\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.0004\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 1.0000\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.0430\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.9376\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.ROTATING_LEFT)&Predicate(Contact.LEFT_LEG)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.0013\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0132\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.0159\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.1266\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.0060\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.3522\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.0469\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.3889\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.ROTATING_LEFT)&Predicate(Contact.LEFT_LEG)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.0004\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0476\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.0128\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.3991\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.0004\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 1.0000\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.0430\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.9376\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.HIGH_ALTITUDE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.2511\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.0378\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.0037\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.0047\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.9976\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.0323\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.9748\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.0929\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.5412\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 1.0000\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.0068\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.8662\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.0845\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + " Desire: move_right_from_left_with_do_nothing -> I_d(s) = 0.3256\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0003\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.5547\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.0003\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.7962\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 0.0126\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.9477\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.0947\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.RIGHT_LEG)\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.1687\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.0011\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.3300\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 1.0000\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.0221\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.6585\n", + "\n", + "State:\n", + "Predicate(XPos.CENTER_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_LEFT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 0.9991\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_LEFT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: move_right_from_left_with_main_engine -> I_d(s) = 1.0000\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.BOTH_LEGS)\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.4991\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.9375\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.0084\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.9991\n", + "\n", + "State:\n", + "Predicate(XPos.RIGHT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.MOVE_RIGHT)&Predicate(YVel.HOVERING)&Predicate(Angle.UPRIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.LEFT_LEG)\n", + " Desire: move_left_from_right_with_do_nothing -> I_d(s) = 0.0382\n", + " Desire: move_right_from_left_with_left_engine -> I_d(s) = 0.0050\n", + " Desire: move_left_from_right_with_left_engine -> I_d(s) = 0.3802\n", + " Desire: move_left_from_right_with_main_engine -> I_d(s) = 1.0000\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 0.0305\n", + " Desire: move_left_from_right_with_right_engine -> I_d(s) = 0.9130\n", + "\n", + "State:\n", + "Predicate(XPos.LEFT_POS)&Predicate(YPos.DESCENT_ZONE)&Predicate(XVel.NO_HORIZONTAL_MOVEMENT)&Predicate(YVel.HOVERING)&Predicate(Angle.TILTED_RIGHT)&Predicate(AngularVel.NO_ROTATION)&Predicate(Contact.NO_CONTACT)\n", + " Desire: move_right_from_left_with_right_engine -> I_d(s) = 1.0000\n", + "\n" + ] + } + ], + "source": [ + "desire_name_filters = [\n", + " \"move_right_from_left\",\n", + " \"move_left_from_right\",\n", + "]\n", + "\n", + "for s in ipg.get_all_state_ids():\n", + " intentions = ipg.get_intentions(s)\n", + "\n", + " matching_intentions = {\n", + " d: I_ds\n", + " for d, I_ds in intentions.items()\n", + " if any(name_filter in d.name for name_filter in desire_name_filters)\n", + " and I_ds > 0.0\n", + " }\n", + "\n", + " if not matching_intentions:\n", + " continue\n", + "\n", + " print(\"State:\")\n", + " print(discretizer.state_to_str(s))\n", + "\n", + " for d, I_ds in matching_intentions.items():\n", + " print(f\" Desire: {d.name} -> I_d(s) = {I_ds:.4f}\")\n", + "\n", + " print()" + ] + }, + { + "cell_type": "markdown", + "id": "551bbbbd-07d7-44f2-8084-596c023a4c11", + "metadata": {}, + "source": [ + "The intention values obtained for the horizontal correction desires show that the learned policy does not implement a fully symmetric correction strategy. The IPG assigns high intention values to states located on both sides of the landing zone, which indicates that these symbolic situations are relevant for the propagation of horizontal correction desires. However, the dominant intentions are not always aligned with the physically expected correction.\n", + " \n", + "For states where the lander is located to the left of the landing zone, the desire `move_right_from_left_with_right_engine` obtains a high intention value. For example, in the state where the lander is on the left, in the descent zone, upright, hovering, with no horizontal movement, no angular rotation, and no ground contact, this desire reaches an intention value of `0.8754`. Nevertheless, this result must be interpreted carefully, since the action name refers to the engine that is activated, not directly to the direction of movement. Activating the right engine can push the lander further to the left, which would be counterproductive in this situation.\n", + "\n", + "In contrast, for equivalent states where the lander is located to the right of the landing zone, the desire `move_left_from_right_with_right_engine` obtains very high intention values. In the stable right-position state with no ground contact, this desire reaches an intention value of `0.9557`. In this case, the behaviour is more consistent with the expected correction, since activating the right engine can help move the lander towards the left, and therefore towards the centre of the landing zone.\n", + "\n", + "The results therefore reveal an asymmetric behaviour. The policy appears to rely strongly on the right engine in several relevant situations, independently of whether the lander is located to the left or to the right of the target area. This behaviour can be appropriate when the lander is on the right side, but it may be inefficient or counterproductive when the lander is on the left side.\n", + "\n", + "Another relevant observation is that desires associated with the main engine obtain very high intention values in several states involving ground contact or horizontal movement. This suggests that, in these cases, the policy may be prioritising vertical stabilisation or safe landing recovery over pure horizontal correction.\n", + "\n", + "Overall, the IPG analysis shows that the agent has learned some meaningful correction-related behaviours, but these behaviours are not fully balanced across both sides of the landing zone. The intention values make it possible to detect this asymmetry and to identify cases where the learned policy differs from the behaviour that would be expected from a manually defined symbolic desire." + ] + }, + { + "cell_type": "markdown", + "id": "e3e67bc2-445e-4fee-9841-22685a66c8e6", + "metadata": {}, + "source": [ + "### Conclusion of Example 2" + ] + }, + { + "cell_type": "markdown", + "id": "b924a415-aa34-465b-bb4d-bb4eaff80435", + "metadata": {}, + "source": [ + "The second example extends the analysis performed in the first example by applying the same methodology to a second DQN agent trained in a more complex version of the LunarLander environment. In this case, the environment includes stronger gravity and wind, which makes the task more difficult and introduces less stable landing conditions. As a result, the generated graph contains a wider variety of symbolic states and transitions, allowing a richer analysis of the learned policy.\n", + "\n", + "The resulting Policy Graph contains 22 symbolic states and 121 transitions, which is significantly larger than the graph obtained in the first example. This indicates that the second agent visits a broader set of situations during the graph generation process. In particular, the graph includes not only centred and stable states, but also states where the lander is located to the left or to the right of the landing zone. This makes it possible to analyse behaviours that were not observable with the same level of detail in the first example.\n", + "\n", + "The desire rest_after_landing correctly identifies the stable landing state, defined as the lander being centred, upright, without horizontal movement or angular rotation, and with both legs in contact with the ground. When this condition is evaluated for all possible actions, the results show that Action(0), corresponding to Do nothing, obtains the highest probability in the landing state. This behaviour is coherent with the expected interpretation of a successful landing: once the lander has reached a stable position on the ground, the agent should stop activating the engines.\n", + "\n", + "The intention values also support this interpretation. The desire associated with doing nothing after landing obtains the highest intention value in the stable landing state, while the remaining actions obtain much lower values. Therefore, in this second example, the symbolic desire defined from a human point of view is better aligned with the behaviour actually learned by the agent.\n", + "\n", + "A relevant part of the second example is the refinement of the horizontal correction desires. In the first example, the horizontal correction desires were initially defined using a restrictive combination of angle and horizontal velocity. More specifically, move_right_from_left was associated with the predicates Angle.TILTED_RIGHT and XVel.MOVE_RIGHT, while move_left_from_right was associated with Angle.TILTED_LEFT and XVel.MOVE_LEFT. This formulation tried to capture a very specific dynamic situation, but it depended on both predicates appearing together in the same symbolic state.\n", + "\n", + "In Example 2, this same restrictive formulation was first extended by evaluating the two clauses for all possible actions. This allowed the analysis to check whether any action was strongly associated with these specific tilted-and-moving situations. However, the results showed that this definition was still too restrictive for studying horizontal correction in a general way. The desired combinations of inclination and horizontal movement did not appear consistently enough in the generated graph to provide a complete interpretation of lateral correction.\n", + "\n", + "For this reason, a second formulation of the horizontal correction desires was introduced in Example 2. Instead of defining correction through angle and velocity, the new definition uses the relative horizontal position of the lander. The desire move_right_from_left is defined for states satisfying XPos.LEFT_POS, while the desire move_left_from_right is defined for states satisfying XPos.RIGHT_POS. This formulation is less restrictive and better aligned with the intuitive meaning of horizontal correction: if the lander is located to the left of the landing zone, it should move towards the right, and if it is located to the right, it should move towards the left.\n", + "\n", + "Using this position-based formulation, the intention values obtained for the horizontal correction desires show that the learned policy does not implement a fully symmetric correction strategy. The IPG assigns high intention values to states located on both sides of the landing zone, which indicates that these symbolic situations are relevant for the propagation of horizontal correction desires. However, the dominant intentions are not always aligned with the physically expected correction.\n", + "\n", + "For states where the lander is located to the left of the landing zone, the desire move_right_from_left_with_right_engine obtains a high intention value. For example, in the state where the lander is on the left, in the descent zone, upright, hovering, with no horizontal movement, no angular rotation, and no ground contact, this desire reaches an intention value of 0.8754. Nevertheless, this result must be interpreted carefully, since the action name refers to the engine that is activated, not directly to the direction of movement. Activating the right engine can push the lander further to the left, which would be counterproductive in this situation if the expected objective is to return towards the centre.\n", + "\n", + "In contrast, for equivalent states where the lander is located to the right of the landing zone, the desire move_left_from_right_with_right_engine obtains very high intention values. In the stable right-position state with no ground contact, this desire reaches an intention value of 0.9557. In this case, the behaviour is more consistent with the expected correction, since activating the right engine can help move the lander towards the left, and therefore towards the centre of the landing zone.\n", + "\n", + "The results therefore reveal an asymmetric behaviour. The policy appears to rely strongly on the right engine in several relevant situations, independently of whether the lander is located to the left or to the right of the target area. This behaviour can be appropriate when the lander is on the right side, but it may be inefficient or counterproductive when the lander is on the left side.\n", + "\n", + "A possible explanation for this asymmetry is that the action associated with the intuitive correction may not always lead to the expected long-term effect in the learned trajectories. The intention value is not computed only from the immediate physical interpretation of the action, but from how the desire propagates through the transitions of the IPG. Therefore, even if the left engine would seem to be the most intuitive action when the lander is located on the left side, the learned policy may have associated other actions with trajectories that more often lead to the desired symbolic states. Since this second environment includes wind and stronger gravity, the resulting dynamics may also make some actions more useful than expected in specific situations. However, this should be interpreted as a possible explanation rather than as a definitive cause.\n", + "\n", + "Another relevant observation is that desires associated with the main engine obtain very high intention values in several states involving ground contact or horizontal movement. This suggests that, in these cases, the policy may be prioritising vertical stabilisation or safe landing recovery over pure horizontal correction.\n", + "\n", + "Overall, Example 2 provides a more complete behavioural analysis than Example 1. It shows that the definition of desires is a relevant part of the interpretability process: overly restrictive clauses may fail to capture the intended behaviour, while more general symbolic clauses can provide a broader and more useful analysis. In this case, the agent shows a coherent behaviour for the stable landing desire, but it does not implement a fully balanced horizontal correction strategy." + ] + }, + { + "cell_type": "markdown", + "id": "974f7dc4-6849-4098-a87c-bb381552521e", + "metadata": {}, + "source": [ + "### Comparison Agent with Example 1" + ] + }, + { + "cell_type": "markdown", + "id": "c572b354-b32d-4a44-80ce-68cd6b252971", + "metadata": {}, + "source": [ + "Both examples use a DQN agent trained in the LunarLander environment, but the agents were trained under different conditions. The first agent was trained in a simpler environment, with standard gravity and wind disabled. The second agent was trained in a more difficult environment, with stronger gravity and wind enabled. Therefore, the second agent had to learn under more unstable and demanding conditions.\n", + "\n", + "The first agent produces a much smaller graph, with only 5 states and 37 transitions. This suggests that its observed behaviour during the graph-fitting phase is concentrated around a reduced set of symbolic situations. Most of these states correspond to centred, upright and stable configurations near the landing zone. As a result, the first agent is easier to inspect, but its behaviour is less diverse.\n", + "\n", + "The second agent produces a larger and more diverse graph, with 22 states and 121 transitions. This indicates that the agent reaches a wider range of symbolic situations during the fitting process. The graph includes centred states, left-position states, right-position states, different contact configurations, and some variations in angle and angular velocity. Consequently, its behaviour can be analysed in greater detail.\n", + "\n", + "From the point of view of landing behaviour, the second agent appears more coherent with the manually defined desire rest_after_landing. In Example 2, when the lander is centred, upright, stable and touching the ground with both legs, the most probable action is Do nothing. This matches the expected behaviour after a successful landing. In Example 1, the same type of state is mainly associated with the Main engine, which is less intuitive and reveals a mismatch between the expected symbolic desire and the actual learned policy.\n", + "\n", + "The treatment of horizontal correction also differs between the two examples. In Example 1, the correction desires were only tested using the initial restrictive definition based on angle and horizontal velocity. This allowed the methodology to test whether those specific symbolic situations appeared in the graph, but it did not provide any state that fulfills the desire states and action. In Example 2, the same restrictive formulation was first evaluated for all possible actions, and then a second position-based formulation was introduced. This second formulation made it possible to study horizontal correction more directly by considering whether the lander was located to the left or to the right of the landing zone.\n", + "\n", + "However, the second agent is not perfect. Although it represents more behaviours and better matches the landing desire, the intention analysis reveals that it also presents an asymmetric horizontal correction strategy. In particular, the policy relies strongly on the right engine in both left-position and right-position states. This means that the second agent is better suited for analysis, but it still contains behaviours that are not fully aligned with the intuitive correction strategy.\n", + "\n", + "Therefore, the comparison between both agents shows two complementary results. Agent 1 is useful for demonstrating the basic workflow and for exposing the limitations that appear when the generated graph has low behavioural diversity or when a desire is defined with very restrictive clauses. Agent 2 is more useful for evaluating richer desires, because its graph contains a broader set of symbolic states and because the desire definitions are refined during the analysis. Together, both agents show that the quality of the explanation depends strongly on both the representativeness of the generated graph and the way symbolic desires are defined." + ] + } + ], + "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.12.8" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/example/LunarLander/Complex Env/discretizer.py b/example/LunarLander/Complex Env/discretizer.py new file mode 100644 index 0000000..05ad0e0 --- /dev/null +++ b/example/LunarLander/Complex Env/discretizer.py @@ -0,0 +1,158 @@ +from enum import Enum, auto +from typing import Tuple +import numpy as np + +from pgeon import Discretizer, Predicate + + +# --- +# Clases por Variable +# --- + +# - X - +class XPos(Enum): + LEFT_POS = auto() + CENTER_POS = auto() + RIGHT_POS = auto() + + +# - Y - +class YPos(Enum): + LOW_ALTITUDE = auto() + DESCENT_ZONE = auto() + HIGH_ALTITUDE = auto() + + +# - X Velocity - +class XVel(Enum): + MOVE_LEFT = auto() + NO_HORIZONTAL_MOVEMENT = auto() + MOVE_RIGHT = auto() + + +# - Y Velocity - +class YVel(Enum): + DESCENDING = auto() + HOVERING = auto() + ASCENDING = auto() + + +# - Angle - +class Angle(Enum): + TILTED_LEFT = auto() + UPRIGHT = auto() + TILTED_RIGHT = auto() + + +# - Angular Velocity - +class AngularVel(Enum): + ROTATING_LEFT = auto() + NO_ROTATION = auto() + ROTATING_RIGHT = auto() + + +# --- CONTACTOS --- +class Contact(Enum): + NO_CONTACT = auto() + LEFT_LEG = auto() + RIGHT_LEG = auto() + BOTH_LEGS = auto() + + +# --- +# Discretizador +# --- + +class LunarLanderSemanticDiscretizer(Discretizer): + def __init__(self): + super().__init__() + + self.low = np.array([-2.5, -2.5, -10, -10, -2*np.pi, -10]) + self.high = np.array([ 2.5, 2.5, 10, 10, 2*np.pi, 10]) + + # nº de estados por variable (todas = 3) + self.n_states = [3, 3, 3, 3, 3, 3] + + # crear bordes automáticamente + self.edges = [ + np.linspace(self.low[i], self.high[i], self.n_states[i] + 1) + for i in range(6) + ] + + self.maps = [ + list(XPos), + list(YPos), + list(XVel), + list(YVel), + list(Angle), + list(AngularVel), + ] + + # --- Métodos obligatorios para la clase abstracta --- + def nearest_state(self, state): + """ + Devuelve el estado más cercano en el espacio de predicados. + Para este caso, simplemente devolvemos el mismo estado. + """ + return state + + def str_to_state(self, state_str): + """ + Convierte un string de estado de vuelta a la tupla de Predicates. + Asume que state_to_str usa '&' como separador. + """ + return tuple(state_str.split("&")) + + def _map_value(self, value, edges, mapping, low, high): + value = np.clip(value, low, high) + idx = np.digitize(value, edges[1:-1]) # devuelve 0,1,2 + return mapping[idx] + + def map_contact(self, left_leg, right_leg): + left = int(left_leg) == 1 + right = int(right_leg) == 1 + + if left and right: + return Contact.BOTH_LEGS + elif left: + return Contact.LEFT_LEG + elif right: + return Contact.RIGHT_LEG + else: + return Contact.NO_CONTACT + + def discretize( + self, obs: np.ndarray + ) -> Tuple[Predicate, Predicate, Predicate, Predicate, Predicate, Predicate, Predicate, Predicate]: + + x, y, x_vel, y_vel, angle, ang_vel, left_leg, right_leg = obs + + contact = self.map_contact(left_leg, right_leg) + + return ( + Predicate(self._map_value(x, self.edges[0], self.maps[0], self.low[0], self.high[0])), + Predicate(self._map_value(y, self.edges[1], self.maps[1], self.low[1], self.high[1])), + Predicate(self._map_value(x_vel, self.edges[2], self.maps[2], self.low[2], self.high[2])), + Predicate(self._map_value(y_vel, self.edges[3], self.maps[3], self.low[3], self.high[3])), + Predicate(self._map_value(angle, self.edges[4], self.maps[4], self.low[4], self.high[4])), + Predicate(self._map_value(ang_vel, self.edges[5], self.maps[5], self.low[5], self.high[5])), + Predicate(contact), + ) + + def state_to_str(self, state): + return "&".join(str(pred) for pred in state) + + def all_actions(self): + return [0, 1, 2, 3] + + def get_predicate_space(self): + states = [] + for xp in XPos: + for yp in YPos: + for xv in XVel: + for yv in YVel: + for a in Angle: + for av in AngularVel: + for c in Contact: + states.append((xp, yp, xv, yv, a, av, c)) + return states \ No newline at end of file diff --git a/example/LunarLander/Complex Env/dqn.py b/example/LunarLander/Complex Env/dqn.py new file mode 100644 index 0000000..8afb46b --- /dev/null +++ b/example/LunarLander/Complex Env/dqn.py @@ -0,0 +1,15 @@ +import torch.nn as nn +import torch.nn.functional as F + + +class DQN(nn.Module): + def __init__(self, n_observations, n_actions): + super().__init__() + self.layer1 = nn.Linear(n_observations, 128) + self.layer2 = nn.Linear(128, 128) + self.layer3 = nn.Linear(128, n_actions) + + def forward(self, x): + x = F.relu(self.layer1(x)) + x = F.relu(self.layer2(x)) + return self.layer3(x) \ No newline at end of file diff --git a/example/LunarLander/Complex Env/t4_discretizer.py b/example/LunarLander/Complex Env/t4_discretizer.py new file mode 100644 index 0000000..47d2ba4 --- /dev/null +++ b/example/LunarLander/Complex Env/t4_discretizer.py @@ -0,0 +1,220 @@ +from enum import Enum, auto +from typing import Tuple + +import numpy as np + +from pgeon import Discretizer, Predicate + + +# --- +# Classes by variable +# --- + +class XPos(Enum): + LEFT_POS = auto() + CENTER_POS = auto() + RIGHT_POS = auto() + + +class YPos(Enum): + LOW_ALTITUDE = auto() + DESCENT_ZONE = auto() + HIGH_ALTITUDE = auto() + + +class XVel(Enum): + MOVE_LEFT = auto() + NO_HORIZONTAL_MOVEMENT = auto() + MOVE_RIGHT = auto() + + +class YVel(Enum): + DESCENDING = auto() + HOVERING = auto() + ASCENDING = auto() + + +class Angle(Enum): + TILTED_LEFT = auto() + UPRIGHT = auto() + TILTED_RIGHT = auto() + + +class AngularVel(Enum): + ROTATING_LEFT = auto() + NO_ROTATION = auto() + ROTATING_RIGHT = auto() + + +class Contact(Enum): + NO_CONTACT = auto() + LEFT_LEG = auto() + RIGHT_LEG = auto() + BOTH_LEGS = auto() + + +class LunarLanderSemanticSortedDiscretizer(Discretizer): + PREDICATE_TYPES = ( + XPos, + YPos, + XVel, + YVel, + Angle, + AngularVel, + Contact, + ) + + def __init__(self): + super().__init__() + + self.low = np.array([-2.5, -2.5, -10, -10, -2 * np.pi, -10]) + self.high = np.array([2.5, 2.5, 10, 10, 2 * np.pi, 10]) + + self.n_states = [3, 3, 3, 3, 3, 3] + + self.edges = [ + np.linspace(self.low[i], self.high[i], self.n_states[i] + 1) + for i in range(6) + ] + + self.maps = [ + list(XPos), + list(YPos), + list(XVel), + list(YVel), + list(Angle), + list(AngularVel), + ] + + def discretize( + self, obs: np.ndarray + ) -> Tuple[ + Predicate, + Predicate, + Predicate, + Predicate, + Predicate, + Predicate, + Predicate, + ]: + x, y, x_vel, y_vel, angle, ang_vel, left_leg, right_leg = obs + + contact = self.map_contact(left_leg, right_leg) + + return ( + Predicate( + self._map_value( + x, + self.edges[0], + self.maps[0], + self.low[0], + self.high[0], + ) + ), + Predicate( + self._map_value( + y, + self.edges[1], + self.maps[1], + self.low[1], + self.high[1], + ) + ), + Predicate( + self._map_value( + x_vel, + self.edges[2], + self.maps[2], + self.low[2], + self.high[2], + ) + ), + Predicate( + self._map_value( + y_vel, + self.edges[3], + self.maps[3], + self.low[3], + self.high[3], + ) + ), + Predicate( + self._map_value( + angle, + self.edges[4], + self.maps[4], + self.low[4], + self.high[4], + ) + ), + Predicate( + self._map_value( + ang_vel, + self.edges[5], + self.maps[5], + self.low[5], + self.high[5], + ) + ), + Predicate(contact), + ) + + def state_to_str(self, state) -> str: + return super().state_to_str(state) + + def str_to_state(self, state_str): + return super().str_to_state(state_str) + + def nearest_state(self, state): + """ + Return the nearest symbolic states. + + For now, this discretizer only returns the same state. If the library + expects an iterator, yielding is safer than returning the state directly. + """ + yield state + + def all_actions(self): + return [0, 1, 2, 3] + + def get_predicate_space(self): + states = [] + + for xp in XPos: + for yp in YPos: + for xv in XVel: + for yv in YVel: + for a in Angle: + for av in AngularVel: + for c in Contact: + states.append( + ( + Predicate(xp), + Predicate(yp), + Predicate(xv), + Predicate(yv), + Predicate(a), + Predicate(av), + Predicate(c), + ) + ) + + return states + + def _map_value(self, value, edges, mapping, low, high): + value = np.clip(value, low, high) + idx = np.digitize(value, edges[1:-1]) + return mapping[idx] + + def map_contact(self, left_leg, right_leg): + left = int(left_leg) == 1 + right = int(right_leg) == 1 + + if left and right: + return Contact.BOTH_LEGS + elif left: + return Contact.LEFT_LEG + elif right: + return Contact.RIGHT_LEG + else: + return Contact.NO_CONTACT \ No newline at end of file