{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Adaptive Stress Testing: Walk1D Example\n", "\n", "This notebook expands on the Walk1D example, see the [Walk1D.jl](https://github.com/sisl/POMDPStressTesting.jl/blob/master/test/Walk1D.jl) file for the non-notebook version and [walk1d.pdf](https://github.com/sisl/POMDPStressTesting.jl/blob/master/test/pdf/walk1d.pdf) for the write-up version.\n", "\n", "---\n", "\n", "See the [documentation](https://sisl.github.io/POMDPStressTesting.jl/dev/) for more details.\n", "\n", "## Abstract\n", "In this self-contained tutorial, we define a simple problem for adaptive stress testing (AST)\n", "to find failures. This problem, called Walk1D, samples random walking distances from a standard\n", "normal distribution $\\mathcal{N}(0,1)$ and defines failures as walking past a certain threshold\n", "(which is set to ±10 in this example). AST will either select the seed which deterministically\n", "controls the sampled value from the distribution (i.e. from the transition model) or will directly\n", "sample the provided environmental distributions. These action modes are determined by the seed-action or\n", "sample-action options. AST will guide the simulation to failure events using a notion of distance to failure,\n", "while simultaneously trying to find the set of actions that maximizes the log-likelihood of the samples.\n", "\n", "Some definitions to note for this example problem:\n", "- **System**: a one-dimensional walking agent\n", "- **Environment**: distribution of random walking actions, sampled from a standard normal distribution $\\mathcal N(0.1)$\n", "- **Failure event**: agent walks outside of the ±10 region\n", "- **Distance metric**: how close to the ±10 edge is the agent?" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "scrolled": false }, "outputs": [], "source": [ "using POMDPStressTesting # this package\n", "using Distributions # for the Normal distribution\n", "using Parameters # for @with_kw default struct parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "# Gray-box Simulator and Environment\n", "The simulator and environment are treated as gray-box because we need\n", "access to the state-transition distributions and their associated likelihoods. Refer to the [gray-box definition](https://sisl.github.io/POMDPStressTesting.jl/dev/#sim_env) section in the documentation for further details." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Parameters\n", "First, we define the parameters of our simulation." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Walk1DParams" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@with_kw mutable struct Walk1DParams\n", " startx::Float64 = 0 # Starting x-position\n", " threshx::Float64 = 10 # +- boundary threshold\n", " endtime::Int64 = 30 # Simulate end time\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### GrayBox.Simulation\n", "Next, we define a `GrayBox.Simulation` structure which stores simulation-related values." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Walk1DSim" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "@with_kw mutable struct Walk1DSim <: GrayBox.Simulation\n", " params::Walk1DParams = Walk1DParams() # Parameters\n", " x::Float64 = 0 # Current x-position\n", " t::Int64 = 0 # Current time ±\n", " distribution::Distribution = Normal(0, 1) # Transition distribution\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### GrayBox.environment\n", "Then, we define our `GrayBox.Environment` distributions.\n", "When using the `ASTSampleAction`, as opposed to `ASTSeedAction`,\n", "we need to provide access to the sampleable environment." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "GrayBox.environment(sim::Walk1DSim) = GrayBox.Environment(:x => sim.distribution)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### GrayBox.transition!\n", "We override the transition function from the `GrayBox` interface,\n", "which takes an environment sample as input. We apply the sample in our simulator,\n", "and return the log-likelihood." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "function GrayBox.transition!(sim::Walk1DSim, sample::GrayBox.EnvironmentSample)\n", " sim.t += 1 # Keep track of time\n", " sim.x += sample[:x].value # Move agent using sampled value from input\n", " return logpdf(sample)::Real # Summation handled by `logpdf()`\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "# Black-box System\n", "The system under test, in this case a simple single-dimensional moving agent,\n", "is always treated as *black-box*. The following interface functions are overridden\n", "to minimally interact with the system, and use outputs from the system to\n", "determine failure event indications and distance metrics. Refer to the [black-box definition](https://sisl.github.io/POMDPStressTesting.jl/dev/#system) section of the documntation for further details." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### BlackBox.initialize!\n", "Now we override the `BlackBox` interface, starting with the\n", "function that initializes the simulation object. Interface functions\n", "ending in `!` may modify the `sim` object in place." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "function BlackBox.initialize!(sim::Walk1DSim)\n", " sim.t = 0\n", " sim.x = sim.params.startx\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### BlackBox.distance\n", "We define how close we are to a failure event using a non-negative distance metric." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "BlackBox.distance(sim::Walk1DSim) = max(sim.params.threshx - abs(sim.x), 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### BlackBox.isevent\n", "We define an indication that a failure event occurred." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "BlackBox.isevent(sim::Walk1DSim) = abs(sim.x) >= sim.params.threshx" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### BlackBox.isterminal\n", "Similarly, we define an indication that the simulation (or system) is in a terminal state." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "BlackBox.isterminal(sim::Walk1DSim) = BlackBox.isevent(sim) || sim.t >= sim.params.endtime" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### BlackBox.evaluate!\n", "Lastly, we use our defined interface to evaluate the system under test.\n", "Using the input sample, we return the log-likelihood, distance to an event, and event indication." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "function BlackBox.evaluate!(sim::Walk1DSim, sample::GrayBox.EnvironmentSample)\n", " logprob::Real = GrayBox.transition!(sim, sample) # Step simulation\n", " d::Real = BlackBox.distance(sim) # Calculate miss distance\n", " event::Bool = BlackBox.isevent(sim) # Check event indication\n", " return (logprob::Real, d::Real, event::Bool)\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "# AST Setup and Running\n", "Setting up our simulation, we instantiate our simulation object and\n", "pass that to the Markov decision proccess (MDP) object of the adaptive stress testing\n", "formulation. We use Monte Carlo tree search (MCTS) with progressive widening on the action\n", "space as our solver. Hyperparameters are passed to `MCTSPWSolver`, which is\n", "a simple wrapper around the `POMDPs.jl` implementation of [MCTS.jl](https://github.com/JuliaPOMDP/MCTS.jl). Lastly, we solve the MDP\n", "to produce a `planner`. Note we are using the `ASTSampleAction`.\n", "\n", "### Setup/create AST planner\n", "* `planner` is used to play out the search\n", "* `planner.mdp::ASTMDP` is the main MDP problem formulation object for AST (this holds reward metrics)\n", "* `planner.mdp.sim::Walk1DSim` is the main simulation object, holding all simulation information (e.g., current x position, settings for the simulation, etc)\n", "* `solver::MCTSPWSolver` holds solver-specific parameters and is used to generate the `planner`\n", " * *See below for additional solvers*" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "setup_ast (generic function with 2 methods)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "function setup_ast(seed=0)\n", " # Create gray-box simulation object\n", " sim::GrayBox.Simulation = Walk1DSim()\n", "\n", " # AST MDP formulation object\n", " mdp::ASTMDP = ASTMDP{ASTSampleAction}(sim)\n", " mdp.params.debug = true # record metrics\n", " mdp.params.top_k = 10 # record top k best trajectories\n", " mdp.params.seed = seed # set RNG seed for determinism\n", "\n", " # Hyperparameters for MCTS-PW as the solver\n", " solver = MCTSPWSolver(n_iterations=1000, # number of algorithm iterations\n", " exploration_constant=1.0, # UCT exploration\n", " k_action=1.0, # action widening\n", " alpha_action=0.5, # action widening\n", " depth=sim.params.endtime) # tree depth\n", "\n", " # Get online planner (no work done, yet)\n", " planner = solve(solver, mdp)\n", "\n", " return planner\n", "end" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Search\n", "After setup, we *search* for failures using the planner and output the best action trace." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "planner = setup_ast();" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[32mProgress: 100%|█████████████████████████████████████████| Time: 0:00:00\u001b[39m\n" ] }, { "data": { "text/plain": [ "10-element Array{ASTAction,1}:\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "action_trace = search!(planner)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Playback\n", "We can also *playback* specific trajectories and print intermediate $x$-values." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.0\n", "0.015327970235574946\n", "0.30370765717228826\n", "1.4997663258450742\n", "2.109577482502034\n", "2.952826155527804\n", "4.426053954911257\n", "6.803697217082685\n", "8.03548741774146\n", "9.178959112657289\n", "10.490317369782634\n" ] }, { "data": { "text/plain": [ "ASTState\n", " t_index: Int64 11\n", " parent: ASTState\n", " action: ASTSampleAction\n", " hash: UInt64 0x12ff54a6c31b4cce\n", " q_value: Float64 -1.7787687724700838\n", " terminal: Bool true\n" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "final_state = playback(planner, action_trace, sim->sim.x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Metrics\n", "Finally, we can print metrics associated with the AST run for further analysis." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "First failure: 23 of 62506\n", "Number of failures: 510\n", "Failure rate: 0.81592%\n" ] }, { "data": { "text/plain": [ "0.8159216715195341" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "failure_rate = print_metrics(planner)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "# Visualize interactive MCTS tree (using D3.js)\n", "When using the `MCTSPWSolver`, we can output the tree from the `search!` function and visulize it using `D3Trees.jl`." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[32mProgress: 100%|█████████████████████████████████████████| Time: 0:00:00\u001b[39m\n" ] }, { "data": { "text/html": [ " \n", " \n", " \n", " \n", " MCTS-DPW Tree\n", " \n", " \n", "
\n", " \n", " \n", "

\n", " Attempting to display the tree. If the tree is large, this may take some time.\n", "

\n", "

\n", " Note: D3Trees.jl requires an internet connection. If no tree appears, please check your connection. To help fix this, please see this issue. You may also diagnose errors with the javascript console (Ctrl-Shift-J in chrome).\n", "

\n", "
\n", " \n", " \n", "\n" ], "text/plain": [ " 0x16b17352d92f1cb7\n", "N: 1000\n", "\n", "├──x => 0.6791074260357777 (-1.1495319812531424)\n", "│ Q: -46.97\n", "│ N: 26\n", "\n", "│ └── 0xff52f28ea80abd55\n", "│ N: 25\n", "\n", "│ ├──x => 0.5435481378302569 (-1.0666608222740428)\n", "│ │ Q: -46.03\n", "│ │ N: 6\n", " (1 children)\n", "│ ├──x => -0.2947594496665117 (-0.9623800997885252)\n", "│ │ Q: -46.82\n", "│ │ N: 6\n", " (1 children)\n", "│ ├──x => -1.2368361267547476 (-1.6838203354275159)\n", "│ │ Q: -45.45\n", "│ │ N: 5\n", " (1 children)\n", "│ ├──x => -0.7358978245627738 (-1.1897113373027843)\n", "│ │ Q: -46.41\n", "│ │ N: 7\n", " (1 children)\n", "│ └──x => -2.7228179305542612 (-4.625807274678568)\n", "│ Q: -51.40\n", "│ N: 1\n", " (1 children)\n", "├──x => -0.1777237158026607 (-0.9347313927840253)\n", "│ Q: -46.42\n", "│ N: 107\n", "\n", "│ └── 0x3b05f485975e2f91\n", "│ N: 106\n", "\n", "│ ├──x => 0.46603646981163493 (-1.0275335288019183)\n", "│ │ Q: -53.94\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -0.3648450932569445 (-0.9854945042415071)\n", "│ │ Q: -44.94\n", "│ │ N: 52\n", " (1 children)\n", "│ ├──x => 1.3036814323584236 (-1.7687311717427283)\n", "│ │ Q: -45.04\n", "│ │ N: 35\n", " (1 children)\n", "│ ├──x => 0.8949777127958453 (-1.319431086405314)\n", "│ │ Q: -47.82\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => 0.25409922130523627 (-0.9512217403386365)\n", "│ │ Q: -46.20\n", "│ │ N: 6\n", " (1 children)\n", "│ ├──x => -0.7503650780445552 (-1.2004624083790785)\n", "│ │ Q: -46.54\n", "│ │ N: 2\n", " (1 children)\n", "│ ├──x => 0.32698856077744665 (-0.9723992926443258)\n", "│ │ Q: -47.41\n", "│ │ N: 2\n", " (1 children)\n", "│ ├──x => 0.6681989298293807 (-1.1421834381172375)\n", "│ │ Q: -48.72\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => 0.874740072479805 (-1.30152363040566)\n", "│ │ Q: -46.90\n", "│ │ N: 4\n", " (1 children)\n", "│ ├──x => 0.45318636938189555 (-1.0216274759014448)\n", "│ │ Q: -49.09\n", "│ │ N: 1\n", " (1 children)\n", "│ └──x => -2.15412283181975 (-3.2390611204882425)\n", "│ Q: -61.83\n", "│ N: 1\n", " (1 children)\n", "├──x => -2.426170424815962 (-3.862089998330505)\n", "│ Q: -50.39\n", "│ N: 1\n", "\n", "│ └── 0xf580f2e78ae88ce9\n", "│ N: 0\n", "\n", "├──x => 0.48138093457342374 (-1.0348023352900642)\n", "│ Q: -52.34\n", "│ N: 1\n", "\n", "│ └── 0x3273d22b1ac9b943\n", "│ N: 0\n", "\n", "├──x => -1.075397365168889 (-1.4971782797107673)\n", "│ Q: -49.30\n", "│ N: 1\n", "\n", "│ └── 0x42296dd0a8b08f0f\n", "│ N: 0\n", "\n", "├──x => -1.2306384057749218 (-1.6761739760887933)\n", "│ Q: -48.99\n", "│ N: 1\n", "\n", "│ └── 0x881d93db482ffb05\n", "│ N: 0\n", "\n", "├──x => 0.015327970235574946 (-0.9190560065404442)\n", "│ Q: -31.59\n", "│ N: 614\n", "\n", "│ └── 0xa84af8bcce6b1094\n", "│ N: 613\n", "\n", "│ ├──x => 0.2883796869367133 (-0.9605199551235312)\n", "│ │ Q: -28.69\n", "│ │ N: 542\n", " (1 children)\n", "│ ├──x => 1.8325984592511813 (-2.5981470896295744)\n", "│ │ Q: -45.61\n", "│ │ N: 6\n", " (1 children)\n", "│ ├──x => 0.6395487029672866 (-1.1234498049382422)\n", "│ │ Q: -54.57\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -1.1060939425975684 (-1.5306604381301891)\n", "│ │ Q: -48.26\n", "│ │ N: 2\n", " (1 children)\n", "│ ├──x => -0.5089814823057989 (-1.0484696078697768)\n", "│ │ Q: -45.60\n", "│ │ N: 8\n", " (1 children)\n", "│ ├──x => 0.16904803779256003 (-0.9332271527454302)\n", "│ │ Q: -46.72\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -1.269000883524785 (-1.7241201543980154)\n", "│ │ Q: -47.67\n", "│ │ N: 2\n", " (1 children)\n", "│ ├──x => 0.28421827614654394 (-0.9593285474525294)\n", "│ │ Q: -45.91\n", "│ │ N: 8\n", " (1 children)\n", "│ ├──x => -0.7187268347699434 (-1.1772226647138835)\n", "│ │ Q: -49.21\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => 0.16770176342854473 (-0.9330004739331945)\n", "│ │ Q: -47.73\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => 0.1967044719067061 (-0.9382848578387208)\n", "│ │ Q: -46.20\n", "│ │ N: 3\n", " (1 children)\n", "│ ├──x => -0.32336045578937933 (-0.9712195253888304)\n", "│ │ Q: -44.68\n", "│ │ N: 23\n", " (1 children)\n", "│ ├──x => 0.5493725900479413 (-1.0698436545526644)\n", "│ │ Q: -49.91\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => 1.2673078436963172 (-1.7219731185517775)\n", "│ │ Q: -46.65\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -0.47182399740053543 (-1.030247475466183)\n", "│ │ Q: -49.20\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -0.3197933117802765 (-0.9700724143343713)\n", "│ │ Q: -44.83\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => 0.3901146826852874 (-0.995033266027994)\n", "│ │ Q: -48.39\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => 0.5346932758645702 (-1.0618869828320654)\n", "│ │ Q: -46.59\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -0.3271662891547708 (-0.9724574235843243)\n", "│ │ Q: -44.14\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -0.521805641783363 (-1.0550790971031465)\n", "│ │ Q: -47.36\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -1.2956257318513944 (-1.7582615517224034)\n", "│ │ Q: -43.83\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => 0.26309684096512437 (-0.9535485070675868)\n", "│ │ Q: -38.65\n", "│ │ N: 3\n", " (1 children)\n", "│ ├──x => 0.1491204905260218 (-0.9300569935520334)\n", "│ │ Q: -45.22\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => 0.49788641449389204 (-1.0428839740734646)\n", "│ │ Q: -47.11\n", "│ │ N: 1\n", " (1 children)\n", "│ └──x => 0.013527412110745842 (-0.9190300286438797)\n", "│ Q: -45.62\n", "│ N: 1\n", " (1 children)\n", "├──x => 0.7130819988506892 (-1.1731815017471199)\n", "│ Q: -47.91\n", "│ N: 2\n", "\n", "│ └── 0xeab8c542b30781bd\n", "│ N: 1\n", "\n", "│ └──x => 0.5639333746513899 (-1.0779489587275253)\n", "│ Q: -47.10\n", "│ N: 1\n", " (1 children)\n", "├──x => -1.3987113420550896 (-1.8971352424014478)\n", "│ Q: -52.33\n", "│ N: 1\n", "\n", "│ └── 0x1b911fedd64f73cd\n", "│ N: 0\n", "\n", "├──x => -1.015082133923219 (-1.4341344025097307)\n", "│ Q: -46.52\n", "│ N: 38\n", "\n", "│ └── 0xa9f28cb31a6a02d0\n", "│ N: 37\n", "\n", "│ ├──x => 0.4916848380459647 (-1.039815523186816)\n", "│ │ Q: -44.45\n", "│ │ N: 20\n", " (1 children)\n", "│ ├──x => 0.06354263112393073 (-0.9209573661897488)\n", "│ │ Q: -46.90\n", "│ │ N: 2\n", " (1 children)\n", "│ ├──x => -0.8046166038047953 (-1.2426424727638543)\n", "│ │ Q: -47.18\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -1.4747783023583352 (-2.0064240537581393)\n", "│ │ Q: -48.26\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -0.5356388455826091 (-1.0623930196532079)\n", "│ │ Q: -46.13\n", "│ │ N: 2\n", " (1 children)\n", "│ ├──x => 0.028176419621367223 (-0.9193354885160124)\n", "│ │ Q: -45.05\n", "│ │ N: 10\n", " (1 children)\n", "│ └──x => -0.9642895267320096 (-1.3838656788871944)\n", "│ Q: -51.22\n", "│ N: 1\n", " (1 children)\n", "├──x => 0.03704271762565007 (-0.9196246146692196)\n", "│ Q: -57.95\n", "│ N: 1\n", "\n", "│ └── 0x7554a1eecc45fb8d\n", "│ N: 0\n", "\n", "├──x => -0.29033871940559913 (-0.9610868191977144)\n", "│ Q: -46.31\n", "│ N: 145\n", "\n", "│ └── 0xfe1f6b988a22bdfa\n", "│ N: 144\n", "\n", "│ ├──x => 0.28400934906284725 (-0.9592691883822239)\n", "│ │ Q: -44.91\n", "│ │ N: 115\n", " (1 children)\n", "│ ├──x => 1.6983019083249304 (-2.361053219114723)\n", "│ │ Q: -47.35\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -0.6302529150486066 (-1.1175479016683059)\n", "│ │ Q: -46.10\n", "│ │ N: 5\n", " (1 children)\n", "│ ├──x => 0.46263829116630084 (-1.0259556274313102)\n", "│ │ Q: -53.41\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -0.2574679887137543 (-0.9520834158108258)\n", "│ │ Q: -49.80\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -1.1066512219546896 (-1.5312769967315765)\n", "│ │ Q: -47.07\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -1.3758168787276899 (-1.8653745751006743)\n", "│ │ Q: -45.59\n", "│ │ N: 13\n", " (1 children)\n", "│ ├──x => 0.5459542850689012 (-1.0679715738972204)\n", "│ │ Q: -46.97\n", "│ │ N: 3\n", " (1 children)\n", "│ ├──x => 0.8093178275762165 (-1.246436206221016)\n", "│ │ Q: -51.15\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -0.14979321534836382 (-0.9301575368868734)\n", "│ │ Q: -52.46\n", "│ │ N: 1\n", " (1 children)\n", "│ ├──x => -0.0059888012657099135 (-0.9189564660749728)\n", "│ │ Q: -47.33\n", "│ │ N: 1\n", " (1 children)\n", "│ └──x => 0.13216953121102368 (-0.9276729256949436)\n", "│ Q: -52.95\n", "│ N: 1\n", " (1 children)\n", "├──x => -0.6770807571762424 (-1.1481577090738497)\n", "│ Q: -50.78\n", "│ N: 1\n", "\n", "│ └── 0x2f247e8d54085e87\n", "│ N: 0\n", "\n", "├──x => -0.061791259617204795 (-0.9208476130872132)\n", "│ Q: -47.22\n", "│ N: 7\n", "\n", "│ └── 0x8e6b199cb45a7da0\n", "│ N: 6\n", "\n", "│ ├──x => 0.691535563162225 (-1.1580492507637206)\n", "│ │ Q: -46.57\n", "│ │ N: 2\n", " (1 children)\n", "│ ├──x => 1.450887714420541 (-1.9714761131329035)\n", "│ │ Q: -46.06\n", "│ │ N: 2\n", " (1 children)\n", "│ └──x => -0.14848821673686177 (-0.9299629084595193)\n", "│ Q: -46.94\n", "│ N: 2\n", " (1 children)\n", "├──x => -0.7048020349991141 (-1.167311487474119)\n", "│ Q: -46.88\n", "│ N: 26\n", "\n", "│ └── 0xfb1b5a1172f05c70\n", "│ N: 25\n", "\n", "│ ├──x => -0.8395277530942583 (-1.2713419573124198)\n", "│ │ Q: -46.81\n", "│ │ N: 6\n", " (1 children)\n", "│ ├──x => 0.861716195882513 (-1.2902159343277875)\n", "│ │ Q: -45.58\n", "│ │ N: 14\n", " (1 children)\n", "│ ├──x => 1.1616563583027963 (-1.5936612805973303)\n", "│ │ Q: -46.97\n", "│ │ N: 2\n", " (1 children)\n", "│ ├──x => 0.5922262010954422 (-1.0943044698366424)\n", "│ │ Q: -46.63\n", "│ │ N: 2\n", " (1 children)\n", "│ └──x => -1.4623566409429036 (-1.9881820058595792)\n", "│ Q: -54.56\n", "│ N: 1\n", " (1 children)\n", "├──x => -0.5277104555061772 (-1.0581776956299414)\n", "│ Q: -53.42\n", "│ N: 1\n", "\n", "│ └── 0xbfb08fa2554f02fa\n", "│ N: 0\n", "\n", "├──x => 0.62496716595239 (-1.1142305124639538)\n", "│ Q: -47.35\n", "│ N: 5\n", "\n", "│ └── 0xc1a4c959088300ac\n", "│ N: 4\n", "\n", "│ ├──x => 0.5381765363193993 (-1.0637555253270456)\n", "│ │ Q: -49.67\n", "│ │ N: 3\n", " (1 children)\n", "│ └──x => 1.3601267166403703 (-1.8439108758641298)\n", "│ Q: -51.58\n", "│ N: 1\n", " (1 children)\n", "├──x => 0.4704383491749407 (-1.0295946533918945)\n", "│ Q: -57.80\n", "│ N: 1\n", "\n", "│ └── 0xcc4064b192a85e60\n", "│ N: 0\n", "\n", "├──x => -0.6022829221270974 (-1.1003108923476503)\n", "│ Q: -47.98\n", "│ N: 4\n", "\n", "│ └── 0x29c1d7b9fe456faa\n", "│ N: 3\n", "\n", "│ ├──x => -0.30459168097326883 (-0.9653265792637336)\n", "│ │ Q: -46.16\n", "│ │ N: 1\n", " (1 children)\n", "│ └──x => -0.62064989872778 (-1.1115416816000745)\n", "│ Q: -47.27\n", "│ N: 2\n", " (1 children)\n", "├──x => 1.4208741935574731 (-1.9283802701634727)\n", "│ Q: -48.85\n", "│ N: 1\n", "\n", "│ └── 0xf6085a10eb47bfbc\n", "│ N: 0\n", "\n", "├──x => -0.47276869189203136 (-1.030693651221324)\n", "│ Q: -58.41\n", "│ N: 1\n", "\n", "│ └── 0x102fdbbd140c801a\n", "│ N: 0\n", "\n", "├──x => -0.6656225817432575 (-1.1404652438679526)\n", "│ Q: -48.07\n", "│ N: 4\n", "\n", "│ └── 0x73b8ec463bdf613a\n", "│ N: 3\n", "\n", "│ ├──x => -1.1421302029865765 (-1.571169233491752)\n", "│ │ Q: -43.97\n", "│ │ N: 2\n", " (1 children)\n", "│ └──x => 1.2108445450508705 (-1.6520107893443976)\n", "│ Q: -53.37\n", "│ N: 1\n", " (1 children)\n", "├──x => 0.42577405526861617 (-1.009580306274614)\n", "│ Q: -51.78\n", "│ N: 2\n", "\n", "│ └── 0xcd96a67f2b5c7b41\n", "│ N: 1\n", "\n", "│ └──x => -1.7044121997636352 (-2.37144900655623)\n", "│ Q: -56.26\n", "│ N: 1\n", " (1 children)\n", "├──x => -0.43427643915839903 (-1.013236546008722)\n", "│ Q: -52.64\n", "│ N: 1\n", "\n", "│ └── 0x9bbfda20e3398a4c\n", "│ N: 0\n", "\n", "├──x => 1.3869054170898998 (-1.8806918511813273)\n", "│ Q: -52.02\n", "│ N: 1\n", "\n", "│ └── 0xa7224a3baff98445\n", "│ N: 0\n", "\n", "├──x => 0.11888647519216419 (-0.9260055301964814)\n", "│ Q: -54.34\n", "│ N: 1\n", "\n", "│ └── 0xbadb81648580836b\n", "│ N: 0\n", "\n", "├──x => -0.7448282047113072 (-1.1963230604714072)\n", "│ Q: -48.08\n", "│ N: 1\n", "\n", "│ └── 0xeeb621e6e29fd186\n", "│ N: 0\n", "\n", "├──x => 1.0017190159190716 (-1.4206590266316095)\n", "│ Q: -52.21\n", "│ N: 1\n", "\n", "│ └── 0x73288ae67f441f37\n", "│ N: 0\n", "\n", "├──x => 0.48530661684259846 (-1.0366997893802772)\n", "│ Q: -51.37\n", "│ N: 1\n", "\n", "│ └── 0xbcd7c01969998f57\n", "│ N: 0\n", "\n", "├──x => -1.0029048541997476 (-1.4218476064933814)\n", "│ Q: -58.39\n", "│ N: 1\n", "\n", "│ └── 0x3f91f512c0fc36aa\n", "│ N: 0\n", "\n", "├──x => -0.04316891889255016 (-0.9198703109838485)\n", "│ Q: -47.47\n", "│ N: 1\n", "\n", "│ └── 0x737a3299c072cfd1\n", "│ N: 0\n", "\n", "└──x => 0.9630825959205871 (-1.3827025764872412)\n", " Q: -48.45\n", " N: 1\n", "\n", " └── 0x4438553a40cbbaae\n", " N: 0\n", "\n" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d3tree = visualize(planner) # re-runs the search to output the tree, then visualizes it" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "# Solvers\n", "POMDPStressTesting.jl comes with a variety of solvers:\n", "* **Reinforcement learning**\n", " * [`MCTSPWSolver`](https://github.com/mossr/POMDPStressTesting.jl/blob/master/src/solvers/mcts.jl): Monte Carlo tree search with action progressive widening\n", "\n", "* **Deep reinforcement learning**\n", " * [`TRPOSolver`](https://github.com/mossr/POMDPStressTesting.jl/blob/master/src/solvers/drl/trpo.jl): Trust region policy optimization\n", " * [`PPOSolver`](https://github.com/mossr/POMDPStressTesting.jl/blob/master/src/solvers/drl/ppo.jl): Proximal policy optimization\n", "\n", "* **Stochastic optimization**\n", " * [`CEMSolver`](https://github.com/mossr/POMDPStressTesting.jl/blob/master/src/solvers/cem.jl): Cross-entropy method\n", "\n", "* **Baselines**\n", " * [`RandomSearchSolver`](https://github.com/mossr/POMDPStressTesting.jl/blob/master/src/solvers/random_search.jl): Standard/naive Monte Carlo randomized search" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Solver: Cross-entropy method example (`CEMSolver`)\n", "We can easily take our `ASTMDP` object (`planner.mdp`) and re-solve the MDP using a different solver." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\u001b[32mProgress: 100%|█████████████████████████████████████████| Time: 0:00:05\u001b[39m\n" ] }, { "data": { "text/plain": [ "7-element Array{ASTAction,1}:\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n", "\n", " ASTSampleAction\n", " sample: Dict{Symbol,POMDPStressTesting.AST.GrayBox.Sample}\n" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mdp = planner.mdp # reused from above `setup_ast()`\n", "solver = CEMSolver(n_iterations=1000, episode_length=mdp.sim.params.endtime)\n", "planner = solve(solver, mdp)\n", "action_trace = search!(planner)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Again, playing back the best action trace and printing out metrics (but this time for the `CEMSolver`)." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.0\n", "-1.4681565073056968\n", "-2.8790682106764236\n", "-4.5318598317096015\n", "-6.002385457333659\n", "-7.38293658747257\n", "-8.641661367101024\n", "-10.000020551648118\n", "First failure: 23 of 840947\n", "Number of failures: 100793\n", "Failure rate: 11.98565%\n" ] }, { "data": { "text/plain": [ "11.985654268342714" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "final_state = playback(planner, action_trace, sim->sim.x)\n", "failure_rate = print_metrics(planner)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "---\n", "# Plots/Figures\n", "\n", "### Episodic metric plots\n", "Plots the episodic metrics, including running miss distance mean, minimum miss distance, and cumulative failures all over episode (i.e. iteration).\n", "\n", "> **Note** we use Requires.jl to handle the PyPlot and Seaborn dependencies. So to plot, first install those two pacakges, then load them." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "using Pkg\n", "Pkg.add(\"PyPlot\")\n", "Pkg.add(\"Seaborn\")" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "using PyPlot\n", "using Seaborn" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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sPzQoUNo166drt00apwhS0RERKQ5nRPZqVOn4rvvvsOBAwcU2+RTDD766CPs27cPzzzzjK7dNEqcIUtERESkPSNdG1iyZAkOHDiAYcOGoWXLlpBIJFiwYAEyMzORmZmJwYMH48UXX9RHrERERERECjqPyJqYmODAgQP4+OOPYWVlBTMzM1y7dg3NmjXDRx99hJ9//hkGBryBGBERERHpl84jsgBgZGSERYsWYdGiRfpojoiIiIioShwqrUPyucS8IQIRERGR5nROZJcvXw5/f/8Kyzt06ID33ntP43a9vLwgkUhUHvPmzVNbPzY2Vm39y5cva9w3EREREdV/OieyO3bswODBgyssHzx4MLZt26Zxu2fOnEF6erriIV8VYeLEiZXul5CQoLRfy5YtNe6biIiIiOo/nefIJiUloU2bNhWWt27dGuvWrdO4XUdHR6XnH3zwAXx9fdGvX79K93NycoKdnZ3G/RERERFRw6KXObL379+vsOzevXsoKSnRqf3CwkJs2rQJYWFham+DW1bnzp3h4uKCQYMG4ciRI5XWLSgogEwmU3rUJvkr4QxZIiIiIs3pnMj6+flhz549asuEENi9e3elI7bVsXPnTty/fx8zZ86ssI6LiwvWrl2LmJgYbN++Ha1bt8agQYNw7NixCveJiIiAra2t4uHh4aFTnERERERUe3ROZGfPno3ff/8ds2bNwu3btxXbb9++jVmzZuH06dOYPXu2Tn2sX78eISEhcHV1rbBO69at8dxzz6FLly4ICgrCmjVrMGLECKxcubLCfZYtWwapVKp4pKSk6BQnEREREdUenefIPvfcczh69Cg2btyI6OhoODk5AQDu3LkDIQQmT56MF154Qev2b968iYMHD2L79u0a79ujRw9s2rSpwnJTU1OYmppqHRsRERER1R293BBh06ZNGD16NL7//ntcvXoVQgj06NEDTz/9NCZMmKBT21FRUXBycsKIESM03vfcuXNwcXHRqf+apJgjy3VkiYiIiDSml0QWACZNmoRJkybpqzkAQGlpKaKiojBjxgwYGSmHumzZMqSmpiI6OhoAsGrVKnh5ecHPz09xcVhMTAxiYmL0GhMRERER1Q96S2RrwsGDB5GcnIywsDCVsvT0dCQnJyueFxYWYsmSJUhNTYW5uTn8/Pzwyy+/YPjw4bUZMhERERHVEonQw/faeXl52Lx5MxITE5Gdna3yVblEIsH69et17abGyWQy2NraQiqVwsbGpsb7679lC47euoWtI0diko4rOxARERE1BprkYzqPyP75558YMWIEsrOzK6zTUBLZ2iZfE5czZImIiIg0p/PyW4sWLUJRURF+/PFHZGVlobS0VOWh6w0RiIiIiIjK03lENi4uDm+88YbOqxMQEREREWlC5xFZGxsbNG3aVB+xEBERERFVm86J7OjRo/Hbb7/pI5YnFufIEhEREWlO50T2448/xu3btzF//nxcu3aNi/trQFJ1FSIiIiKqgM5zZB0cHCCRSHDmzBmsWbNGbR2JRILi4mJduyIiIiIiUtA5kZ0+fbpiGSkiIiIiotqicyK7YcMGPYRBRERERKQZnefIkvYUN0TgvGIiIiIijek8IltWbm4u7t+/j9LSUpUyT09PfXZFRERERE84vSSyW7ZswXvvvYdLly5VWId39yIiIiIifdJ5asHOnTsxdepUFBcXY86cORBCIDQ0FBMnToSxsTG6dOmCt99+Wx+xEhEREREp6Dwiu3LlSrRt2xZxcXHIzc1FZGQkwsLCMHDgQFy4cAG9evVCp06d9BFroyNf64EzZImIiIg0p/OI7D///IMZM2bAzMwMBgaPmpNPI/D398fzzz+PiIgIXbshIiIiIlKicyJbUlKCJk2aAADMzc0BAFKpVFHeunVrXLhwQdduiIiIiIiU6JzIuru749atWwAeJbJOTk44e/asojwhIQGWlpa6dkNEREREpETnObI9e/bEgQMHsHz5cgDA6NGjsXr1alhYWKC0tBRffvklRo0apXOgjRHXkSUiIiLSns6J7IsvvogdO3YgPz8f5ubm+O9//4s//vgD4eHhAAA/Pz+sXLlS126IiIiIiJTonMh27doVXbt2VTx3dHREfHw8zp8/D0NDQ7Rt21ZxERgRERERkb7onGEeO3YMmZmZStskEgk6dOgAPz8/3L17F8eOHdO1GyIiIiIiJTonsgMGDMCBAwcqLD906BAGDBigazeNEteRJSIiItKezolsVRcqFRUVcWoBEREREemdXjJM+dX35UmlUuzduxdOTk766IaIiIiISEGrRHbFihUwNDSEoaEhJBIJpk2bpnhe9uHg4IAtW7ZgypQp+o6biIiIiJ5wWq1a0KlTJ0yfPh1CCERHR6NPnz7w8fFRqiORSGBlZYXu3bsjNDRUL8E2NlxHloiIiEh7WiWyY8aMwZgxYwAAR48exeLFizF69Gi9BkZEREREVBmd15FNSkrSRxxERERERBrR+WKv27dv49y5c0rbLl++jFmzZmHMmDHYvn27Vu2Gh4dDIpEoPZo1a1bpPkePHkVAQADMzMzg4+ODyMhIrfomIiIiovpP5xHZhQsXIjk5Gb///jsAICcnBwMHDkRGRgYMDAzw888/Y9++fQgODta4bT8/Pxw8eFDx3NDQsMK6SUlJGD58OJ577jls2rQJJ0+exIsvvghHR0eMHz9e8xdWC9Sv9UBERERE1aHziOypU6cwdOhQxfMtW7YgIyMDsbGxyM7ORvv27fHJJ59o1baRkRGaNWumeDg6OlZYNzIyEp6enli1ahXatm2LZ599FmFhYVi5cqVWfdcmXupFREREpDmdE9msrCx4eHgonu/duxfdunVD3759YWtri+nTp+Pvv//Wqu3ExES4urrC29sbU6ZMwfXr1yuse+rUKQwZMkRp29ChQ3H27FkUFRWp3aegoAAymUzpQUREREQNg86JrKmpKR48eKB4fvz4cfTr10/x3NbWFvfu3dO43e7duyM6Ohr79u3DN998g4yMDPTs2RPZ2dlq62dkZMDZ2Vlpm7OzM4qLi5GVlaV2n4iICNja2ioeZRNyIiIiIqrfdE5kW7ZsiZiYGAghsGvXLty9e1dpPmxKSgocHBw0bjckJATjx49H+/btERwcjF9++QUAsHHjxgr3KX+HMfn6rBXdeWzZsmWQSqWKR0pKisZx6oJzZImIiIi0p/PFXi+99BJmzJgBBwcH5OXloUWLFhgwYICi/NixY2jfvr2u3cDS0hLt27dHYmKi2vJmzZohIyNDadudO3dgZGSEJk2aqN3H1NQUpqamOsemK94QgYiIiEhzOieyzzzzDCQSCXbs2AE7Ozu8+eabMDJ61Gx2djakUinmzZunc6AFBQW4dOkS+vTpo7Y8KCgIe/bsUdq2f/9+BAYGwtjYWOf+iYiIiKh+0TmRBYBp06Zh2rRpKtubNGmCuLg4rdpcsmQJRo0aBU9PT9y5cwfvvfceZDIZZsyYAeDRtIDU1FRER0cDAObOnYsvvvgCixYtwnPPPYdTp05h/fr1+OGHH7R/YURERERUb+klka0Jt27dQmhoKLKysuDo6IgePXrg9OnTaN68OQAgPT0dycnJivre3t749ddf8corr+DLL7+Eq6srPv/883q7hixQ8dxdIiIiIqqaxonsO++8A4lEgjfffBMGBgZ45513qtxHIpHgrbfe0qifLVu2VFq+YcMGlW39+vXDX3/9pVE/9QFnyBIRERFpTiI0vNLIwMAAEokE+fn5MDExgYFB1QsfSCQSlJSUaB1kbZHJZLC1tYVUKoWNjU2N9zc8JgZ7k5IQNWwYZvr713h/RERERPWdJvmYxiOySUlJAAATExOl50REREREtUnjRFY+R7Wi50REREREtUHnGyKQ9uSXenEdWSIiIiLN6ZTIymQyREREoFevXnB0dISpqSkcHR3Rp08ffPTRR8jJydFXnERERERESrRefuvChQsICQlBWloahBCwtraGk5MTZDIZTp48iZMnT2LNmjX47bff0KZNG33GTERERESk3YhsQUEBxo8fj4yMDLz22mu4fv06pFIpUlJSIJVKce3aNbz66qtITU3FuHHjUFhYqO+4iYiIiOgJp1Ui++OPPyIxMREbN27E+++/Dy8vL6Vyb29vfPDBB4iKisLly5fx008/6SPWRkd+QwTOkCUiIiLSnFaJ7K5du9ClSxdMnTq10nrTpk1D586dsXPnTq2CIyIiIiKqiFaJ7N9//42hQ4dWq+6wYcMQHx+vTTdERERERBXSKpG9c+eOynSCinh5eeHOnTvadENEREREVCGtEtnc3FxYWlpWq66FhQXy8vK06abRk1RdhYiIiIgqoFUiq+kC/lzwv3I8OkRERESa03od2aioKJw4caLKeomJidp2QURERERUIa0T2UOHDuHQoUPVqitfZoqIiIiISF+0SmSTkpL0HccTiQk+ERERkfa0SmSbN2+u7zieaJxDTERERKQ5rS72IiIiIiKqa0xkiYiIiKhBYiJbhzhDloiIiEh7TGTrAc6QJSIiItIcE1kiIiIiapCYyBIRERFRg6T1DREqU1BQgC1btuDu3bsYN24cl+uqANeRJSIiItKeziOyCxcuRKdOnRTPhRAYMGAAwsLCsHjxYnTs2BEJCQm6dtOocR1ZIiIiIs3pnMju378fgwcPVjzftWsXTp8+jeXLl2PXrl0wMzPDBx98oGs3RERERERKdJ5akJaWBl9fX8Xzn3/+GS1atMDbb78NAJgzZw6io6N17YaIiIiISInOI7LFxcUwMPj/Zo4cOYKB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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "episodic_figures(planner.mdp.metrics; gui=false)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Distribution plots\n", "Plots miss distance distribution and log-likelihood distribution." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "Figure(PyObject
)" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "distribution_figures(planner.mdp.metrics; gui=false)" ] } ], "metadata": { "@webio": { "lastCommId": null, "lastKernelId": null }, "kernelspec": { "display_name": "Julia 1.5.2", "language": "julia", "name": "julia-1.5" }, "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }